0
在jboss上部署应用程序时出现问题。我发现了一些信息woodstox的变化版本可能会有所帮助,但它不是... 日志:在jboss上部署应用程序时无法解析WSDL - 也许Woodstox
16:58:09,079 INFO [stdout] (MSC service thread 1-2) [org.apache.cxf.service.factory.ReflectionServiceFactoryBean] Failed to parse WSDL
16:58:09,080 INFO [stdout] (MSC service thread 1-2) javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: java.lang.RuntimeException: Cannot create a secure XMLInputFactory
16:58:09,080 INFO [stdout] (MSC service thread 1-2) at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:257)
16:58:09,104 INFO [stdout] (MSC service thread 1-2) Caused by: java.lang.RuntimeException: Cannot create a secure XMLInputFactory
16:58:09,104 INFO [stdout] (MSC service thread 1-2) at org.apache.cxf.staxutils.StaxUtils.createXMLInputFactory(StaxUtils.java:312)
16:58:09,514 ERROR [org.springframework.web.context.ContextLoader] (MSC service thread 1-2) Context initialization failed: org.apache.camel.FailedToCreateProducerException: Failed to create Producer for endpoint: Endpoint[cxf://bean:adapter.NotificationService?dataFormat=PAYLOAD]. Reason: org.apache.cxf.service.factory.ServiceConstructionException: No valid WSDL classpath:/interface/adapter/notification-service/v10/NotificationService.wsdl nor service class is specified.
at org.apache.camel.impl.ProducerCache.doGetProducer(ProducerCache.java:409) [camel-core-2.12.3.jar:2.12.3]
at org.apache.camel.impl.ProducerCache.acquireProducer(ProducerCache.java:123) [camel-core-2.12.3.jar:2.12.3]
我已经完全不知道我可以检查还有什么......我的环境:
- SVN 1.7.9(r1462340)的Apache Maven的3.1.1
- (0728685237757ffbf44136acec0402957f723d9a; 2013年9月17日Maven的家:
- Java版本:1.7.0_45,供应商:Oracle公司OS的名字: “LINUX”,
- 版本:“3.11.0-12-generic”,arch:“amd64”,family:“unix”javac
- 1.7.0_45 Java版本“1.7.0_45”Java™SE运行时环境(build 1.7.0_45 -b18)
- Woodstox在JBoss 4.1.1(我将其更改为4.2.1和4.2.0)
我的WSDL定义:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions name="NotificationService"
targetNamespace="http://service/NotificationService/v10"
xmlns:tns="http://service/NotificationService/v10"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<wsdl:types>
<xs:schema
targetNamespace="http://service/NotificationService/v10">
<xs:include schemaLocation="NotificationService.xsd" />
</xs:schema>
</wsdl:types>
<!-- notifyPaymentStatus message-->
<wsdl:message name="notifyPaymentStatusParameters">
<wsdl:part name="notifyPaymentStatusPart" element="tns:notifyPaymentStatusRQ">
</wsdl:part>
</wsdl:message>
<wsdl:message name="notifyPaymentStatusResult">
<wsdl:part name="notifyPaymentStatusPart" element="tns:notifyPaymentStatusRS">
</wsdl:part>
</wsdl:message>
<!-- notifyError message-->
<wsdl:message name="notifyErrorParameters">
<wsdl:part name="notifyErrorPart" element="tns:notifyErrorRQ">
</wsdl:part>
</wsdl:message>
<wsdl:message name="notifyErrorResult">
<wsdl:part name="notifyErrorPart" element="tns:notifyErrorRS">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="NotificationService">
<wsdl:operation name="notifyPaymentStatus">
<wsdl:input name="notifyPaymentStatusParameters" message="tns:notifyPaymentStatusParameters" />
<wsdl:output name="notifyPaymentStatusResult" message="tns:notifyPaymentStatusResult" />
</wsdl:operation>
<wsdl:operation name="notifyError">
<wsdl:input name="notifyErrorParameters" message="tns:notifyErrorParameters" />
<wsdl:output name="notifyErrorResult" message="tns:notifyErrorResult" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="NotificationServiceBinding" type="tns:NotificationService">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="notifyPaymentStatus">
<soap:operation soapAction="" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="notifyError">
<soap:operation soapAction="" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="NotificationService">
<wsdl:port name="NotificationServicePort" binding="tns:NotificationServiceBinding">
<soap:address location="http://www.example.org/" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
和端点:
<cxf:cxfEndpoint id="adapter.NotificationService"
endpointName="s:NotificationServicePort" serviceName="s:NotificationService"
wsdlURL="classpath:/interface/adapter/notification-service/v10/NotificationService.wsdl"
xmlns:s="http://service/NotificationService/v10">
<cxf:properties>
<entry key="schema-validation-enabled"
value="true" />
</cxf:properties>
<cxf:inInterceptors>
<ref bean="logInInterceptor" />
</cxf:inInterceptors>
<cxf:inFaultInterceptors>
<ref bean="logInInterceptor" />
</cxf:inFaultInterceptors>
<cxf:outInterceptors>
<ref bean="logOutInterceptor" />
</cxf:outInterceptors>
<cxf:outFaultInterceptors>
<ref bean="logOutInterceptor" />
</cxf:outFaultInterceptors>
</cxf:cxfEndpoint>
当我调试时,我发现了一些属性,名为: org.apache.cxf.stax.allowInsecureParser。我怎样才能把它设置为真?在这些情况下,我可能在解析wsdl时没有任何问题。
请向我们展示Web服务的配置。 –
我添加了wsdl的定义 –