Spring-boot:运行有效,但java-jar没有

时间:2018-05-28 09:31:10

标签: java spring web-services

应用程序是集成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有什么区别?

由于

1 个答案:

答案 0 :(得分:1)

解决方案:在执行java命令时将-D放在-jar之前