Humberto

 

the best way to understand interoperation issues between foreign client
and server architectures is as such

 

1.     build your ASP.NET service and make your ASP.NET client
connecting to it, make it work well.

2.     build your axis2 service and have your axis2 client connecting to
it, make it work well

3.     if you are satisfied with each take WireShark (TCP Monitor) to
see how ASP.net works and then how AXIS2 works on the wire

4.     think wire and protocol and seek independence on this level

5.     notice the difference in protocol

6.     then take your axis2 client and try to make it understand your
ASP.net service

7.     or take your ASP.net client and make it work with your axis2
service

8.     you will learn a lot

 

That is what I always do when I have to make client services work in
heterogeneous environments

 

Josef

 

Von: Humberto Costa de Santana [mailto:humbe...@reitoria.unesp.br] 
Gesendet: Mittwoch, 7. November 2012 11:54
An: java-user@axis.apache.org
Betreff: Re: AW: AW: Connection reset when not using tcpmonitor

 

Hello Josef, thanks a lot for your help.

I'll explain exactly what I am trying to do.
The company where I work has an equipment to make video conferences.
This equipment has a webservice made in ASP.net that is used to arrange
rooms and systems to realize the conferences. So I don't have the server
side source code. I can't make any change in it.

I'm trying to consume the above mentioned webservice with axis2 (I tried
with axis 1 as well and got the same error). I generated all the client
beans using Eclipse tool and it works perfectly when I use TCP/IP
monitor tool (that comes with Eclipse) to see the xml flow.
But the same client does not work when I run it right to the webservice.

Example: 
When I run the client with the address
http://localhost:8081/tms/external/Booking/BookingService.asmx
everything works, because this is the address to TCP/IP monitor, and
TCP/IP Monitor is responsible to connect with the server.
But when I use the right address, that is
http://serverhostname/tms/external/Booking/BookingService.asmx, the same
client does not work.

My client doesn't have axis2.xml configuration. I'll try to adjust the
transport according to your tip.
I'll tell you if it works.

Thanks a lot



Humberto Costa de Santana
Grupo de Desenvolvimento de Sistemas - AI - Reitoria

Em 06-11-2012 13:49, Stadelmann Josef escreveu:

        Humberto,
         
        can you check at your server
/catalina_home/webapps/WEB-INF/conf/axis2.xml 
        for proper Transport Ins selection.
         
        the default configuration assumes that Axis2Servlet only
receives request through HTTP.
         
        in case you have uncommented for tcp, comment it out and make
sure only http is engaged!
            <!--Uncomment if you want to have TCP transport support-->
            <!--transportReceiver name="tcp"
        
class="org.apache.axis2.transport.tcp.TCPServer">
                <parameter name="port">6060</parameter-->>
        make sure you comment out as shown above the tcp transport.
         
         
        Also check that the proper Transport Outs are enabled!
        i.e. uncomment as shown below for not having any TCP outgoing
transports selected 
            <!--Uncomment if you want to have TCP transport support-->
            <!--
            <transportSender name="tcp"
        
class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
            -->
         
        outgoing and incoming is sometime confusing. 
        it depends what your axis2.xml configurations are.
         
        if your axis2.xml configures a service 
        or 
        if your axis2.xml configures your client, 
        the meanings are different. 
         
        So given you have an axis2.xml to configure your client, look at
this as well.
        And may you can show me your service.xml content.
         
        Also, how is your client configuring done  for startup?
         
        Josef
         
         
         
         
        Von: Humberto Costa de Santana
[mailto:humbe...@reitoria.unesp.br] 
        Gesendet: Montag, 5. November 2012 19:17
        An: java-user@axis.apache.org
        Betreff: Re: AW: Connection reset when not using tcpmonitor
         
        Hi Josef, thanks for your reply.
         
        I tested with Wireshark and it seems that my client is sending
exactly the same xml with or without tcpmonitor.
        I really don't know why when I use the same client using
tcpmonitor it works, while when I try directly to webservice it does not
work.
         
        But I found a strange thing. When I configure tcpmonitor to tcp
instead off http I get the same error.
         
        So. It seems that my client is sending message throught tcp and
the server accepts only http.
         
        Is it possible that my client is using tcp instead of http to
send the messages to the server?
        If so how can I solve it?
         
        Thanks in advance
         
        PS: The server is ASP .net and the client is axis and the beans
were made using Eclipse
         
         
        Humberto Costa de Santana
        Grupo de Desenvolvimento de Sistemas - AI - Reitoria
        Em 01-11-2012 07:18, Stadelmann Josef escreveu:
        1.  I would look at the stack trace below; 
        faultCode:
{http://schemas.xmlsoap.org/soap/envelope/}Server.userException
        "Server.userException", so the origin is somewhat clear! It is
generated at the server/service side of the pond for whatever reason. 
        If this happens at the service, then it has potentially nothing
to do with your client code.
        Try to find the condition and place in code where this
Server.userException is generated?
         
        2. I would use a Network Protocol Analyzer like Wireshark and
lookout for a TCP RST issued sometimes by Windows.
         
        3. In the past we observed this TCP RST signal may times with
Wireshark, and we could see a distributed NetBeans plugin fail, loosing
connection as FTP client to its remote FTP server. Then engineering hat
to deal with that and make a new plugin which was able to recover from
this situation on a TCP RST. 
         
         
        4. if TCP RST (RESET) is not observed then it might be one of
the many time outs one can adjust i.e. for Tomcat.
         
        Josef
         
         
        Von: Humberto Costa de Santana
[mailto:humbe...@reitoria.unesp.br] 
        Gesendet: Mittwoch, 31. Oktober 2012 17:19
        An: java-user@axis.apache.org
        Betreff: Connection reset when not using tcpmonitor
         
        I'm facing a very strange problem when consuming a webservice.
         
        When I consume the webservice using tcpmonitor it works fine.
But when I use the real url I have the following problem:
         
        Exception in thread "main" AxisFault
         faultCode:
{http://schemas.xmlsoap.org/soap/envelope/}Server.userException
         faultSubcode: 
         faultString: java.net.SocketException: Connection reset
         faultActor: 
         faultNode: 
         faultDetail: 
        
{http://xml.apache.org/axis/}stackTrace:java.net.SocketException:
Connection reset
            at
java.net.SocketInputStream.read(SocketInputStream.java:189)
            at
java.net.SocketInputStream.read(SocketInputStream.java:121)
            at
java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
            at
java.io.BufferedInputStream.read(BufferedInputStream.java:254)
            at
org.apache.axis.transport.http.HTTPSender.readHeadersFromSocket(HTTPSend
er.java:583)
            at
org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:143)
            at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.j
ava:32)
            at
org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
            at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
            at
org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
            at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
            at org.apache.axis.client.Call.invoke(Call.java:2767)
            at org.apache.axis.client.Call.invoke(Call.java:2443)
            at org.apache.axis.client.Call.invoke(Call.java:2366)
            at org.apache.axis.client.Call.invoke(Call.java:1812)
            at
net.tandberg._2004._02.tms.external.booking.BookingServiceSoapStub.saveC
onference(BookingServiceSoapStub.java:681)
            at test.client.TesteBooking.main(TesteBooking.java:51)
         
        Does somebody know what is happening?
         
        Thanks in advance

 

Reply via email to