axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yampolsky, Robert" <ryamp...@harris.com>
Subject RE: local client works - remote doesn't
Date Wed, 29 Jun 2005 01:07:19 GMT
I tried running simple_axis_server under gdb and tracing through the
code that looks up the service.

I did this for both my local client and a remote client (using the
soaptest client at http://www.soapclient.org).

When I trace through the 'process' code in ServerAxisEngine.cpp, it gets
the correct service name "HUB_TO_HUB" from the request and then calls
WSDDDeployment::getService to locate the corresponding service.  When
the client is my local axis-based client, it finds this service.  When
the client is the remote soaptest client, it doesn't.  I can't trace
through the m_DeployedServices->find(sServiceName) call, but when I
print *m_DeployedServices, it has an _M_node_count member = 14.  That's
the correct number of entries from my server.wsdd file.

What could possibly be causing it to behave differently with the same
service name based on a local vs. a remote call?  It doesn't look like
I've gotten to the point in the code where it cares about the soapAction
or the Method.  It just seems to be trying to look up the service name,
which is right.

Any ideas on how to debug this further?


Here's the stack trace just before the 'find service' call that fails:

#1  0xb75b3b6c in axiscpp::WSDDDeployment::getService(char const*)
(this=0x804e548,
    sServiceName=0x807bfbc "HUB_T0_HUB") at WSDDDeployment.cpp:197
#2  0xb7559ab2 in
axiscpp::ServerAxisEngine::process(axiscpp::SOAPTransport*)
(this=0x8076f50,
    pStream=0x8059780) at ServerAxisEngine.cpp:106
#3  0xb7558be7 in process_request(axiscpp::SOAPTransport*)
(pStream=0x8059780) at ../Axis.cpp:154
#4  0x0804aee8 in handleTCPClient(int) (clntSocket=8) at
SimpleAxisServer.cpp:123
#5  0x0804b069 in main (argc=2, argv=0xbfffb070) at
SimpleAxisServer.cpp:222

Here's the server.wsdd entry for my HUB_TO_HUB service:

<service name="HUB_TO_HUB" provider="CPP:DOCUMENT" description="TVB
Hub-to-Hub Service">
         <parameter name="allowedMethods" value="HUB_Request "/>
         <parameter name="className"
value="/usr/local/axiscpp_deploy/lib/libhub2hub.so" />
</service>

-----Original Message-----
From: Samisa Abeysinghe [mailto:samisa.abeysinghe@gmail.com] 
Sent: Tuesday, June 28, 2005 3:38 AM
To: Apache AXIS C User List
Subject: Re: local client works - remote doesn't

There is no specific setting that you need to get Axis C++ work
outside local network.

I think the problem here seems to be with the namespace. Can you make
the client to send the request without the namespace?

Samisa...

On 6/27/05, Yampolsky, Robert <ryampols@harris.com> wrote:
> I have a client and server both working on my RHES3.0 box, and I've
been
> trying to work with another organization to get their .NET app to
access
> my service.  I got them to specify the soapAction the way Axis
expects,
> and they still can't connect.  They get the following soapfault:
> 
> SOAP-ENV:Client Requested service is not registerd at the server
server
> name:listen port AxisWsddException:Requested service not found
> 
> Same thing happens whey I try to access my service via the generic
soap
> client at http://www.soapclient.com/soaptest.html
> 
> The SOAP requests (summarized below) generated by my client and theirs
> look pretty similar (at least the parts used to locate the service).
> 
> Could there be a setting required to get the Axis server to work from
> outside my network?
> 
> Is Axis sensitive to the way namespaces are used in a way that would
> service the first request below, but reject the second?
> 
> Thanks,
> Rob
> 
> My working local client generates a request that looks like this:
> 
>         POST /axis/HUB_TO_HUB
>         HTTP/1.1
>         Host: localhost:80
>         Content-Type: text/xml;.
>         charset=UTF-8
>         SOAPAction: "HUB_TO_HUB#HUB_Request"
>         Content-Length: 622
> 
>         <?xml.version='1.0'.encoding='utf-8' ?>
>         <SOAP-ENV:Envelope
>         xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
>         xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>         <SOAP-ENV:Body>
>         <ns1:Hub_Request xmlns:ns1="http://www.ebizformedia.com/hub">
>         <ns1:TO_TP>A</ns1:TO_TP>
>         <ns1:FROM_TP>B</ns1:FROM_TP>
>         <ns1:TO_HUB>C</ns1:TO_HUB>
>         <ns1:FROM_HUB>E</ns1:FROM_HUB>
>         <ns1:UID>F</ns1:UID>
>         <ns1:APIKEY>G</ns1:APIKEY>
>         <ns1:ROUTING>not supported</ns1:ROUTING>
>         <ns1:MESSAGE>&lt;PAYLOAD&gt;contents&lt;/PAYLOAD&gt;
> </ns1:MESSAGE>
>         </ns1:Hub_Request>
>         </SOAP-ENV:Body>
>         </SOAP-ENV:Envelope>
> 
> Their .NET client generates a request that looks like this:
> 
>         POST /axis/HUB_T0_HUB
>         HTTP/1.1
>         Content-Type: text/xml;
>         charset=utf-8
>         SOAPAction: "HUB_TO_HUB#HUB_Request"
>         Content-Length: 394
>         Expect: 100-continue
>         Host: 156.43.4.68
> 
>         100 Continue
> 
>         <?xml.version="1.0".encoding="utf-8"?>
>         <soap:Envelope
>         xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
>         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>         xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>         <soap:Body>
>         <Hub_Request xmlns="http://www.ebizformedia.com/hub">
>         <TO_TP />
>         <FROM_TP /><TO_HUB./>
>         <FROM_HUB />
>         <UID />
>         <APIKEY />
>         <ROUTING />
>         <MESSAGE />
>         </Hub_Request>
>         </soap:Body>
>         </soap:Envelope>
> 
> 
> R o b   Y a m p o l s k y
> Harris Corporation, BCD
> (212) 303 4250
> 
>

Mime
View raw message