问题描述
div
它正在docker容器中的Wildfly中的一个部署上运行,试图连接到另一个名为System.setProperty("javax.net.ssl.trustStore","/opt/jboss/wildfly/standalone/configuration/server.keystore");
System.setProperty("javax.net.ssl.trustStorePassword","password");
System.setProperty("https.protocols","TLSv1,TLSv1.1,TLSv1.2");
ServiceOrder serviceOrder = new ServiceOrder();
ServiceOrderInterface orderInterface = serviceOrder.getServiceOrderPort(new AddressingFeature());
BindingProvider bindingProvider = (BindingProvider)orderInterface;
bindingProvider.getRequestContext().put(
BindingProvider.ENDPOINT_ADDRESS_PROPERTY,"https://remoteservice:8095/service-order");
SSLContext sc = SSLContext.getInstance("SSLv3");
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType() );
char[] password = "password".tochararray();
ks.load(new FileInputStream("/opt/jboss/wildfly/standalone/configuration/server.keystore"),password );
kmf.init( ks,password );
sc.init( kmf.getKeyManagers(),null,null );
bindingProvider.getRequestContext().put("com.sun.xml.internal.ws.transport.https.client.SSLSocketFactory",sc.getSocketFactory() );
System.out.println("################");
System.out.println(System.getProperty("javax.net.ssl.trustStore"));
System.out.println("################");
orderInterface.createServiceOrder(soapRequest);
的容器。 remoteservice
使用的是自签名证书,该证书已导入remoteservice
当我尝试运行它时,我会得到
server.keystore
如果我采用这段代码并创建一个春季启动的空应用程序,然后将其粘贴并使用
运行2020-10-01 17:19:02,718 INFO [stdout] (externalChangesListenerContainer-1) ################
2020-10-01 17:19:02,718 INFO [stdout] (externalChangesListenerContainer-1) /opt/jboss/wildfly/standalone/configuration/server.keystore
2020-10-01 17:19:02,747 WARNING [org.apache.cxf.phase.PhaseInterceptorChain] (externalChangesListenerContainer-1) Interceptor for {http://group.redacted.com/contract/vbs/service/service-order/v1}ServiceOrder#{http://group.redacted.com/contract/vbs/service/service-order/v1}CreateServiceOrder has thrown exception,unwinding Now: org.apache.cxf.interceptor.Fault: Could not send Message.
...
Caused by: javax.net.ssl.SSLHandshakeException: SSLHandshakeException invoking https://remoteserver:8095/service-order: Remote host closed connection during handshake
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1390)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1374)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:658)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
... 18 more
或者我将其编译并使用java -jar
运行mvn spring-boot:run
它工作正常,没有任何问题,我可以在mvn clean package spring-boot:repackage
java -jar target/demo-0.0.1-SNAPSHOT.jar
上进行验证,它可以毫无问题地进行通信。
remoteservice
我已将其添加到Wildfly,但无济于事
################
/opt/jboss/wildfly/standalone/configuration/server.keystore
################
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.378s
[INFO] Finished at: Thu Oct 01 17:34:36 UTC 2020
[INFO] Final Memory: 26M/495M
[INFO] ------------------------------------------------------------------------
[root@ef99b6ef3b60 demo]# java -jar target/demo-0.0.1-SNAPSHOT.jar
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)