You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Mike Burati <mb...@bowstreet.com> on 2003/02/21 18:25:28 UTC
RE: REPOST - RE: calling gSoap server from Axis client - "method
not implemented" error
QName is simply a holder for qualified names (local name plus namespace
URI).
I don't know anything about gSoap and have never used it, but a quick glance
of their sample source for the magic server, leads me to believe that the
namespace URI that they're using for the "magic" method is
"urn:MagicSquare" , not " <http://soapinterop.org> http://soapinterop.org"
which you were trying to use below.
Try:
call.setOperationName(new QName("urn:MagicSquare", "magic"));
-----Original Message-----
From: Joe Johannsen [mailto:joejo@pobox.com]
Sent: Friday, February 21, 2003 10:37 AM
To: axis-user@ws.apache.org
Subject: REPOST - RE: calling gSoap server from Axis client - "method not
implemented" error
Didn't get any suggestions on this so thought I'd ping one more time. Does
gSoap work well with Axis? What are some debugging tips for me? Where can I
read about QName()?
Thanks,
Joe
At 01:10 PM 2/19/2003 -0800, Joe Johannsen wrote:
What I meant is I'm calling a web service called magic on my test server.
The method name is magic ... this is one of the gSoap examples; here's the
gSoap sample client C++ code snippet:
const char magicserver[] = " http://192.168.0.2:2222/
<http://192.168.0.2:2222/> ";
.
.
.
matrix *A = soap_new_matrix(&soap, -1);
r = rand()%20;
if (soap_call_ns1__magic(&soap, magicserver, NULL, r, A))....
I could understand if I got an error about the parameters, as I think I need
to be accepting a return value that's a matrix, not a string. But the error
"method not implemented" seems to indicate it's not finding it at all. Could
it be that the method signature is different because I have the i/o params
wrong?
-Joe
At 03:47 PM 2/19/2003 -0500, Mike Burati wrote:
Your email description says you're calling a "server" named magic, but in
the code you set the service operation name (eg, RPC method name) to
"magic". Are you sure that operation shouldn't be something like:
call.setOperationName(new QName(" http://soapinterop.org/
<http://soapinterop.org/> ", "echoString"));
-----Original Message-----
From: Joe Johannsen [ mailto:joejo@pobox.com <ma...@pobox.com> ]
Sent: Wednesday, February 19, 2003 3:37 PM
To: axis-user@ws.apache.org
Subject: calling gSoap server from Axis client - "method not implemented"
error
I've looked thru archives and see quite a few questions about compatibility
with gSoap and not too many answers to the questions. I am using Axis 1.1 RC
1 and gSoap 2.2.2, trying to call the example gSoap server named "magic"
from vanilla java code (below). I have verified the server responds using a
gSoap client, but cannot get my Axis client to work with it. The error I get
back is "Method 'ns1:magic' not implemented".
Questions:
1. How compatible are Axis and gSoap?
2. why doesn't it work? How can I look more deeply at this problem?
3. As a newbie to Axis I could also use tips on where I can read something
in detail on QName() - I don't have an understanding of what that is doing
or why http://soapinterop.org <http://soapinterop.org/> is referenced
there.
Thanks,
Joe
-----------------------------------------------------------
TestClient.java:
-----------------------------------------------------------
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;
public class TestClient {
public static void main(String [] args) {
try {
String endpoint =
" http://192.168.0.2:2222 <http://192.168.0.2:2222/> ";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName(new QName(" http://soapinterop.org/
<http://soapinterop.org/> ", "magic"));
String ret = (String) call.invoke( new Object[] { "4" } );
System.out.println("Sent '4', got '" + ret + "'");
} catch (Exception e) {
System.err.println(e.toString());
}
}
}