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的定義 –