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 <mailto: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 <mailto: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(HTTPSender.java:583)
at
org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:143)
at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java: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.saveConference(BookingServiceSoapStub.java:681)
at test.client.TesteBooking.main(TesteBooking.java:51)
Does somebody know what is happening?
Thanks in advance