Как решить проблему 400 Простой HTTP-запрос был отправлен на проблему порта HTTPS в Apache Camel?
Как разрешить 400 Простой HTTP-запрос был отправлен на проблему порта HTTPS?
from: empValidation
to: myhost:443/EmpValidation/EmpValidationAPIService
rules.getRules().forEach(x->{
final LoadBalanceDefinition lb = from("jetty:http://0.0.0.0:"+rules.getPort()+"/"+x.getFrom()+"??matchOnUriPrefix=true").log(LoggingLevel.DEBUG, "Processing ${id}").log("Incoming Context Request :"+x.getFrom())
.loadBalance().roundRobin();
x.getTo().forEach(z->lb.to("http4://"+z+"?bridgeEndpoint=true&throwExceptionOnFailure=true").log("Outgoing mapping urls :"+z)) ;
});
если я использую компонент "https4", он работает выше URL (empValidation), но он не работает для ниже URL.
Url: myhost:9008/emp-web-service/services/addEmp
Error:
javax.net.ssl.SSLHandshakeException: Remote host closed connection during
handshake
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:396)
Я думаю, что если мы используем порт по умолчанию, он не работает, каково решение для вышеупомянутого сценария?
1 ответ
Ну, это зависит от того, является ли конечная точка http
или же https
конечная точка (с сертификатом сервера для шифрования трафика между клиентом и сервером). Не важно, под каким номером порта он опубликован.
- Если конечная точка
https
включен, вам нужно использовать такие URI, какhttps4://hostname...
- Если конечная точка является простой
http
конечная точка, вам нужно использовать такие URI, какhttp4://hostname...