应用程序是集成WS(公开其操作调用第三方WS的端点)。该应用程序与http正常工作,但当第三方添加自己的证书并强制使用https时,它就停止了工作。
我创建了jks,并设法生成第三方wsdl类。应用程序编译并执行mvn spring-boot: run -Djavax.net.ssl.trustStore = MiJks.jks
正常工作。另一方面,如果我使用java -jar Miapp.jar -Djavax.net.ssl.trustStore = MiJks.jks
,则无法创建第3个服务的bean。
要生成第3代的wsdl代码,我使用codehaus中的jaxws-maven-plugin。
这是应用程序上下文中bean的定义:
<bean id="teleoptiInternalService"
class="org.springframework.remoting.jaxws.JaxWsPortProxyFactoryBean">
<property name="serviceInterface"
value="com.teleopti.ccc.schemas.sdk._2010._04.TeleoptiCccSdkInternal" />
<property name="wsdlDocumentUrl"
value="https://WTWFMWEB01.comunicaciones.tel/TeleoptiWFM/SDK/TeleoptiCccSdkService.svc?wsdl" />
<property name="serviceName" value="TeleoptiCccSdkService" />
<property name="portName" value="TeleoptiOrganizationService1" />
<!-- TODO Endpoint URL should be in a properties file -->
<property name="endpointAddress"
value="https://WTWFMWEB01.comunicaciones.tel/TeleoptiWFM/SDK/TeleoptiCccSdkService.svc" />
<property name="handlerResolver" ref="wsHandlerResolver" />
<property name="portFeatures">
<bean class="org.apache.cxf.feature.LoggingFeature" />
</property>
</bean>
这是显示的错误:
2018-05-28 10:32:55.623 WARN 2172 --- [ main] o.s.b.f.s.DefaultListableBeanFactory : Bean creation exception on non-lazy FactoryBean type check: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'teleoptiInternalService' defined in class path resource [applicationContext-teleopti-integration.xml]: Invocation of init method failed; nested exception is javax.xml.ws.WebServiceException: org.apache.cxf.service.factory.ServiceConstructionException: Failed to create service.
怎么了?通过maven运行java和直接运行java有什么区别?
由于
答案 0 :(得分:1)
解决方案:在执行java命令时将-D放在-jar之前