That IOException is actually generally caused by a 404 error where the URL is wrong. It looks like the client is hitting the wrong URL or the service isn't deployed/running.

I would try hitting the URL, but add the ?wsdl flag with your browser and see if the WSDL come's up from.

Dan


On May 6, 2008, at 10:49 AM, BillRowell wrote:


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.


Daniel Kulp
[EMAIL PROTECTED]
http://www.dankulp.com/blog



Reply via email to