your epr was
"http://127.0.0.1:8080/swa/services/RCService"

In Axis2 the EPR should contain <protocol>://<ip>:<port>/axis2/services/<serviceName>

but I can see your EPR contains "swa", without "axis2". Did you change the mapping in Struts ? Or can this be the problem. Change it to axis2 and check.

trebor iksrazal wrote:
Hi Eran, 

The server is Axis2 - its an existing
spring/hibernate/struts app with Axis2 v.92 added in.
Here's the stacktrace - I run the client via the
commandline with ant: 

 [echo] Starting rc client...
     [java] org.apache.axis2.AxisFault: Read timed
out; nested exception is:
     [java]     java.net.SocketTimeoutException: Read
timed out; nested exception is:
     [java]     org.apache.axis2.AxisFault: Read timed
out; nested exception is:
     [java]     java.net.SocketTimeoutException: Read
timed out; nested exception is:
     [java]     org.apache.axis2.AxisFault: Read timed
out; nested exception is:
     [java]     java.net.SocketTimeoutException: Read
timed out; nested exception is:
     [java]     org.apache.axis2.AxisFault: Read timed
out; nested exception is:
     [java]     java.net.SocketTimeoutException: Read
timed out
     [java]     at
org.apache.axis2.clientapi.InOutMEPClient.invokeNonBlocking(InOutMEPClient.java:255)
     [java]     at
org.apache.axis2.clientapi.Call.invokeNonBlocking(Call.java:136)
     [java]     at
com.siemens.swa.plugins.clients.RCServiceClient.main(RCServiceClient.java:61)
     [java]     at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
     [java]     at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     [java]     at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java]     at
java.lang.reflect.Method.invoke(Method.java:585)
     [java]     at
org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:193)
     [java]     at
org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:130)
     [java]     at
org.apache.tools.ant.taskdefs.Java.run(Java.java:705)
     [java]     at
org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:177)
     [java]     at
org.apache.tools.ant.taskdefs.Java.execute(Java.java:83)
     [java]     at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
     [java]     at
org.apache.tools.ant.Task.perform(Task.java:364)
     [java]     at
org.apache.tools.ant.Target.execute(Target.java:341)
     [java]     at
org.apache.tools.ant.Target.performTasks(Target.java:369)
     [java]     at
org.apache.tools.ant.Project.executeTarget(Project.java:1214)
     [java]     at
org.apache.tools.ant.Project.executeTargets(Project.java:1062)
     [java]     at
org.apache.tools.ant.Main.runBuild(Main.java:673)
     [java]     at
org.apache.tools.ant.Main.startAnt(Main.java:188)
     [java]     at
org.apache.tools.ant.launch.Launcher.run(Launcher.java:196)
     [java]     at
org.apache.tools.ant.launch.Launcher.main(Launcher.java:55)
     [java] Caused by: org.apache.axis2.AxisFault:
Read timed out; nested exception is:
     [java]     java.net.SocketTimeoutException: Read
timed out; nested exception is:
     [java]     org.apache.axis2.AxisFault: Read timed
out; nested exception is:
     [java]     java.net.SocketTimeoutException: Read
timed out
     [java]     at
org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:154)
     [java]     at
org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:100)
     [java]     at
org.apache.axis2.clientapi.InOutMEPClient.invokeNonBlocking(InOutMEPClient.java:245)
     [java]     ... 21 more
     [java] Caused by: org.apache.axis2.AxisFault:
Read timed out; nested exception is:
     [java]     java.net.SocketTimeoutException: Read
timed out
     [java]     at
org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:204)
     [java]     at
org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:123)
     [java]     ... 23 more
     [java] Caused by:
java.net.SocketTimeoutException: Read timed out
     [java]     at
java.net.SocketInputStream.socketRead0(Native Method)
     [java]     at
java.net.SocketInputStream.read(SocketInputStream.java:129)
     [java]     at
java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
     [java]     at
java.io.BufferedInputStream.read(BufferedInputStream.java:235)
     [java]     at
org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:77)
     [java]     at
org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:105)
     [java]     at
org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1110)
     [java]     at
org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1832)
     [java]     at
org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1592)
     [java]     at
org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:995)
     [java]     at
org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:393)
     [java]     at
org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:168)
     [java]     at
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
     [java]     at
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:324)
     [java]     at
org.apache.axis2.transport.http.CommonsHTTPTransportSender.transportConfigurationPOST(CommonsHTTPTransportSender.java:502)
     [java]     at
org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:182)
     [java]     ... 24 more

BUILD SUCCESSFUL
Total time: 1 minute 7 seconds

As stated, I'm probably doing something wrong or
weird, somewhere ;-) . Please let me know if there is
any more  info I can provide or any hints on what else
I can try.

I'll be looking at
EchoRawXMLOnTwoChannelsTest.testEchoXMLCompleteASync().

 after this emial, thanks for the tip. 
 
Thanks!
iksrazal

--- Eran Chinthaka <[EMAIL PROTECTED]> wrote:

  
Can you please send me the stacktrace too ?

And are u calling a service hosted in a non-Axis2
server ? Seems so, as
your target epr seems its not in an Axis2 server.
But since it seems you
have done the code well, its a rare chance that the
epr u set it wrong.

BTW, did you look at the code in

    
EchoRawXMLOnTwoChannelsTest.testEchoXMLCompleteASync().
  
It has the same
code as what you are trying to do.

Chinthaka

trebor iksrazal wrote:

    
Hi Eran, thanks for the reply. I think I'm already
doing everything you mentioned - my client code is 
basically the same as the EchoNonBlockingClient
example, which I believe has useSeparateListener
      
equal
    
true and passes a callback into invokeNonBlocking. 

Of course, I'm sure I'm missing something simple.
Could you please give a look at the code below? 

public class RCServiceClient {
   private static EndpointReference targetEPR =
      
new

EndpointReference("http://127.0.0.1:8080/swa/services/RCService");
    
   public static void main(String[] args) {
       try {
           OMElement payload =
ClientUtil.getEchoOMElement();

           Call call = new Call();
           call.setTo(targetEPR);

           // The boolean flag informs the axis2
engine to use two separate transport connection
           // to retrieve the response.
           call.engageModule(new
QName(Constants.MODULE_ADDRESSING));
          
call.setTransportInfo(Constants.TRANSPORT_HTTP,
                   Constants.TRANSPORT_HTTP,
                   true);

           //Callback to handle the response
           Callback callback = new Callback() {
               public void onComplete(AsyncResult
result) {
                   try {
                       System.out.println("inside
onComplete...");
                       StringWriter writer = new
StringWriter();
                      
      
result.getResponseEnvelope().serializeWithCache(XMLOutputFactory.newInstance()
    
                              
.createXMLStreamWriter(writer));
                       writer.flush();
                      
System.out.println(writer.toString());


                   } catch (XMLStreamException e)
      
{
    
                       reportError(e);
                   }
               }

               public void reportError(Exception
      
e) {
    
                   e.printStackTrace();
               }
           };

           //Non-Blocking Invocation
           call.invokeNonBlocking("rcExecute",
payload, callback);
                      

           //Wait till the callback receives the
response.
           System.out.println("RC Service
      
executed,
    
sleeping until completion...");
           while (!callback.isComplete()) {
               Thread.sleep(1000);
           }
           //Need to close the Client Side
      
Listener.
    
           call.close();
           System.out.println("RC Service
completed");

       } catch (AxisFault axisFault) {
           axisFault.printStackTrace();
       } catch (Exception ex) {
           ex.printStackTrace();
       }

   }
}

public class ClientUtil {
   public static OMElement getEchoOMElement() {
       OMFactory fac =
OMAbstractFactory.getOMFactory();
       OMNamespace omNs = fac.createOMNamespace(
               "http://example1.org/example1",
"example1");
           
       OMElement method =
fac.createOMElement("rcExecute", omNs);
       OMElement value =
      
fac.createOMElement("Text",
    
omNs);
       value.addChild(fac.createText(value, "Axis2
Echo String "));
       method.addChild(value);

       return method;
   }
}

Thanks a lot,
trebor iksrazal

--- Eran Chinthaka <[EMAIL PROTECTED]> wrote:

 

      
Hi Trebor,

trebor iksrazal wrote:

   

        
Hi all, 

I've succesfully wrote a web service based off of
     

          
the
   

        
EchoNonBlockingClient example in the user guide.
     

          
I'm
   

        
using spring on the server side, if anyone needs
     

          
help.
   

        
     

          
Excellent, thanks for offering to help. I saw
        
there
    
are some people
struggling to do the samething. If you have time,
just explain what you
did and how you did as a small tutorial and mail
        
it
    
here. If its good,
we can put it in our Axis2 site.

   

        
However, the task I execute on the web service
          
side
    
can take between 6 and 20 minutes. Its why I
     

          
choosed
   

        
axis2, so I can execute it asynchronously. Yet it
gives me: 

java.net.SocketTimeoutException: Read timed out


     

          
The reason for this is that the socket which you
used to invoke server
has timed out. What you can do is to use a
        
separate
    
listener and a pass
a Callback, as Srinath has stated.
        
=== message truncated ===


"None are more hopelessly enslaved than those who falsely believe they are free. -- Goethe"


		
__________________________________ 
Yahoo! FareChase: Search multiple travel sites in one click.
http://farechase.yahoo.com


  

Reply via email to