I am new to CXF. I successfully ran the DoubleIt example on Glen Mazza's
Weblog and then tried to duplicate it with a more complex wsdl
(SpotImdsProxy.wsdl) using CXF 2.1 with Tomcat 6.0-16. I receive the
following stack trace when I perform the run-client Ant task invoking the
default client generated by the CXF wsdl2Java tool:
[java] Invoking orderMaintenanceAsset...
[java] Exception in thread "main" javax.xml.ws.soap.SOAPFaultException:
Could not send Message.
[java] at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy
.java:218)
[java] at $Proxy31.orderMaintenanceAsset(Unknown Source)
[java] at client.WSClient.main(WSClient.java:66)
[java] Caused by: org.apache.cxf.interceptor.Fault: Could not send
Message.
[java] at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
[java] at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
[java] at
org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:276)
[java] at
org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:222)
[java] at
org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
[java] at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:177)
[java] ... 2 more
[java] Caused by: java.io.IOException:
/spotimdsproxy/services/spotimdsproxy
[java] at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1921)
[java] at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1824)
[java] at
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
[java] at
org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:583)
[java] at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
[java] ... 7 more
My cxf-servlet file is:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:soap="http://cxf.apache.org/bindings/soap"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd">
<jaxws:endpoint id="spotimdsproxy"
implementor="server.SpotImdsProxyPortTypeImpl"
address="/SpotImdsProxy"
wsdlLocation="webapps\SpotImdsProxy\WEB-INF\wsdl\SpotImdsProxy.wsdl">
</jaxws:endpoint>
</beans>
My web.xml file is:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" mlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<description>SPOT IMDS Proxy Web Service</description>
<display-name>SPOT IMDS Proxy Web Service</display-name>
<servlet>
<description>SPOT IMDS Proxy Web Service</description>
<display-name>SPOT IMDS Proxy Web Service</display-name>
<servlet-name>WebServicePort</servlet-name>
<servlet-class>
org.apache.cxf.transport.servlet.CXFServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>WebServicePort</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>60</session-timeout>
</session-config>
</web-app>
The non-schema portion of my wsdl is shown below--the schema is fairly large
and complex.
<wsdl:message name="OrderMaintenanceAssetRequest">
<wsdl:part name="request" element="tns:OrderMaintenanceAsset">
</wsdl:part>
</wsdl:message>
<wsdl:message name="OrderMaintenanceAssetResponse">
<wsdl:part name="response"
element="tns:SpotImdsProxyResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="UpdateMaintenanceAssetOrderRequest">
<wsdl:part name="request"
element="tns:UpdateMaintenanceAssetOrder">
</wsdl:part>
</wsdl:message>
<wsdl:message name="UpdateMaintenanceAssetOrderResponse">
<wsdl:part name="response"
element="tns:SpotImdsProxyResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="SBSSInquiryRequest">
<wsdl:part name="request"
element="tns:StandardBaseSupplySystemInquiry">
</wsdl:part>
</wsdl:message>
<wsdl:message name="SBSSInquiryResponse">
<wsdl:part name="response"
element="tns:SpotImdsProxyResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="RequisitionInquiryRequest">
<wsdl:part name="request" element="tns:RequisitionInquiry">
</wsdl:part>
</wsdl:message>
<wsdl:message name="RequisitionInquiryResponse">
<wsdl:part name="response"
element="tns:SpotImdsProxyResponse">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="SpotImdsProxyPortType">
<wsdl:operation name="orderMaintenanceAsset">
<wsdl:input message="tns:OrderMaintenanceAssetRequest">
</wsdl:input>
<wsdl:output
message="tns:OrderMaintenanceAssetResponse">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="updateMaintenanceAssetOrder">
<wsdl:input
message="tns:UpdateMaintenanceAssetOrderRequest">
</wsdl:input>
<wsdl:output
message="tns:UpdateMaintenanceAssetOrderResponse">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="sbssInquiry">
<wsdl:input
message="tns:SBSSInquiryRequest"></wsdl:input>
<wsdl:output message="tns:SBSSInquiryResponse">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="requisitionInquiry">
<wsdl:input
message="tns:RequisitionInquiryRequest"></wsdl:input>
<wsdl:output message="tns:RequisitionInquiryResponse">
</wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="SpotImdsProxySOAPBinding"
type="tns:SpotImdsProxyPortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="orderMaintenanceAsset">
<soap:operation
soapAction="http://www.kelleylog.com/services/SpotImdsProxyService/orderMaintenanceAsset"
/>
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="updateMaintenanceAssetOrder">
<soap:operation
soapAction="http://www.kelleylog.com/services/SpotImdsProxyService/updateMaintenanceAssetOrder"
/>
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="sbssInquiry">
<soap:operation
soapAction="http://www.kelleylog.com/services/SpotImdsProxyService/sbssInquiry"
/>
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="requisitionInquiry">
<soap:operation
soapAction="http://www.kelleylog.com/services/SpotImdsProxyService/requisitionInquiry"
/>
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="SpotImdsProxyService">
<wsdl:port name="SpotImdsProxyPort"
binding="tns:SpotImdsProxySOAPBinding">
<soap:address
location="http://localhost:8080/spotimdsproxy/services/spotimdsproxy" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
I'd really appreciate any ideas you have to get me going. I have seen where
others have used the cxf-servlet.xml without Spring--it doesn't matter to me
whether or not I use Spring.
Thanks for your help!
Bill Rowell
--
View this message in context:
http://www.nabble.com/Could-not-send-Message%3A-CXF-Servlet-in-Tomcat-tp17084341p17084341.html
Sent from the cxf-user mailing list archive at Nabble.com.