Как решить проблему 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...
Другие вопросы по тегам