cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Kulp <dk...@apache.org>
Subject Re: JAX WS - Dispatch object issue
Date Fri, 22 Feb 2008 20:04:02 GMT

Well, it's a ReadTimeout.   Is it possible that the server is taking a 
really long time?

That said, I think the code is wrong.  You have:
Dispatch<Source> dispatch = svc.createDispatch(
                    portQName, 
                    Source.class, 
                    Service.Mode.MESSAGE);

However, you are only providing the PAYLOAD part, not the entire SOAP 
envelope and body.    I would suggest either flippingto PAYLOAD or 
changing the XML to be the entire soap message you want to send.

Dan



On Thursday 21 February 2008, priya j wrote:
> Hi All,
>
> I am using the JAX WS to create Dispatch object to invoke a remote
> service. The below is my wsdl file and my client code. when i try to
> execute my client i am getting socket time out error. Can any one tell
> me where im doing wrong.
>
> I am very new to web service. Kindly do help me in solving this.
> Thanks in advance.
>
> WSDL:NUSOAP format
>
> <definitions targetNamespace="urn:V3Map">
> 	<types>
> 	<xsd:schema targetNamespace="urn:V3Map">
> <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
> <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/"/>
> </xsd:schema>
> </types>
> 	<message name="mapSearch1Request">
> <part name="mapSearchInput1" type="xsd:string"/>
> </message>
> 	<message name="mapSearch1Response">
> <part name="return" type="xsd:string"/>
> </message>
>
> <portType name="V3MapPortType">
> 	<operation name="mapSearch1">
> <input message="tns:mapSearch1Request"/>
> <output message="tns:mapSearch1Response"/>
> </operation>
> </portType>
>
> <binding name="V3MapBinding" type="tns:V3MapPortType">
> <soap:binding style="rpc"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>
> <operation name="mapSearch1">
> <soap:operation soapAction="urn:V3Map#mapSearch1" style="rpc"/>
>
> <input>
> <soap:body use="encoded" namespace="urn:V3Map"
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
> </input>
>
> <output>
> <soap:body use="encoded" namespace="urn:V3Map"
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
> </output>
> </operation>
> </binding>
>
> <service name="V3Map">
> <port name="V3MapPort" binding="tns:V3MapBinding">
> <soap:address location="http://sample/V3MapService/V3MapService.php"/>
> </port>
> </service>
> </definitions>
>
> This is my client code :
>
> package sg.sphsearch.sfe.cxf.map.client;
>
> import java.io.ByteArrayInputStream;
> import java.io.ByteArrayOutputStream;
> import javax.xml.namespace.QName;
> import javax.xml.transform.Source;
> import javax.xml.transform.Transformer;
> import javax.xml.transform.TransformerFactory;
> import javax.xml.transform.stream.StreamResult;
> import javax.xml.transform.stream.StreamSource;
> import javax.xml.ws.Dispatch;
> import javax.xml.ws.Service;
> import javax.xml.ws.soap.SOAPBinding;
>
> public class HelloWorldClient {
>
>     public static void main(String[] args) {
>         try {
>             // Define the service.
>             QName svcQname = new QName(
>                     "urn:V3Map",
>                     "V3Map");
>             QName portQName = new QName(
>                     "urn:V3Map",
>                     "V3MapPort");
>             Service svc = Service.create(svcQname);
>             svc.addPort(
>                     portQName,
>                     SOAPBinding.SOAP11HTTP_BINDING,
>                    
> "http://sample/mapguide/V3MapService/V3MapService.php");
>
>             // Create the dynamic invocation object from this service.
>             Dispatch<Source> dispatch = svc.createDispatch(
>                     portQName,
>                     Source.class,
>                     Service.Mode.MESSAGE);
>
>             // Build the message.
>             String content =
>                     "<ns2:mapSearch1 xmlns:ns2=\"urn:V3Map\">" +
>
> "<mapSearchInput1><input><password>password</password><username>userid
></username><keywords>368324</keywords></input></mapSearchInput1>"
+
>                     "</ns2:mapSearch1>";
>             ByteArrayInputStream bais = new
> ByteArrayInputStream(content.getBytes());
>             Source input = new StreamSource(bais);
>             System.out.println(input);
>             // Invoke the operation.
>             Source output = dispatch.invoke(input);
>             System.out.println(output);
>             // Process the response.
>             StreamResult result = new StreamResult(new
> ByteArrayOutputStream());
>             Transformer trans =
> TransformerFactory.newInstance().newTransformer();
>             trans.transform(output, result);
>             ByteArrayOutputStream baos = (ByteArrayOutputStream)
> result.getOutputStream();
>
>             // Write out the response content.
>             String responseContent = new String(baos.toByteArray());
>             System.out.println(responseContent);
>         }
>         catch (Throwable t) {
>             t.printStackTrace();
>         }
>     }
> }
>
> Can you please tell me where im going wrong.
> This is my error message
>
> Feb 22, 2008 9:22:46 AM
> org.apache.cxf.configuration.spring.ConfigurerImpl <init>
> INFO: Could not find the configuration file cxf.xml on the classpath.
> Feb 22, 2008 9:22:46 AM
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean
> buildServiceFromClass
> INFO: Creating Service
> {http://sample/mapguide/V3MapService/V3MapService.php}V3Map from class
> org.apache.cxf.jaxws.support.DummyImpl
> Feb 22, 2008 9:22:47 AM
> org.apache.cxf.configuration.spring.ConfigurerImpl getBeanName
> INFO: Could not determine bean name for instance of class
> org.apache.cxf.jaxws.DispatchImpl.
> Feb 22, 2008 9:22:47 AM org.apache.cxf.jaxws.DispatchImpl invoke
> INFO: Dispatch: invoke called
> javax.xml.transform.stream.StreamSource@1250ff2
> Feb 22, 2008 9:23:48 AM org.apache.cxf.phase.PhaseInterceptorChain
> doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Could not send Message.
> 	at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndin
>gInterceptor.handleMessage(MessageSenderInterceptor.java:64) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto
>rChain.java:207) at
> org.apache.cxf.jaxws.DispatchImpl.invoke(DispatchImpl.java:173) at
> org.apache.cxf.jaxws.DispatchImpl.invoke(DispatchImpl.java:122) at
> sg.sphsearch.sfe.cxf.map.client.HelloWorldClient.main(HelloWorldClient
>.java:47) Caused by: java.net.SocketTimeoutException: Read timed out
> 	at java.net.SocketInputStream.socketRead0(Native Method)
> 	at java.net.SocketInputStream.read(Unknown Source)
> 	at java.io.BufferedInputStream.fill(Unknown Source)
> 	at java.io.BufferedInputStream.read1(Unknown Source)
> 	at java.io.BufferedInputStream.read(Unknown Source)
> 	at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source)
> 	at sun.net.www.http.HttpClient.parseHTTP(Unknown Source)
> 	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown
> Source)
> 	at java.net.HttpURLConnection.getResponseCode(Unknown Source)
> 	at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleRe
>sponse(HTTPConduit.java:1863) at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HT
>TPConduit.java:1791) at
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66
>) at
> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
> at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndin
>gInterceptor.handleMessage(MessageSenderInterceptor.java:62) ... 4 more
> javax.xml.ws.soap.SOAPFaultException: Could not send Message.
> 	at org.apache.cxf.jaxws.DispatchImpl.invoke(DispatchImpl.java:184)
> 	at org.apache.cxf.jaxws.DispatchImpl.invoke(DispatchImpl.java:122)
> 	at
> sg.sphsearch.sfe.cxf.map.client.HelloWorldClient.main(HelloWorldClient
>.java:47)



-- 
J. Daniel Kulp
Principal Engineer, IONA
dkulp@apache.org
http://www.dankulp.com/blog

Mime
View raw message