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 Sarel Botha <sa...@docuvantage.com> on 2006/01/18 14:19:21 UTC

Debugging Service

Hi

I'm trying to both implement a service and call it with AXIS. The client
code executes and makes the SOAP call. I can see it with tcpmon, but the
code on the server-side is never executed. I've attached pretty much
everything I have.

I have a class that implements these methods:
    public void login(com.dv.store.bean.remote.SessionId sessionId,
String string, String string0) throws java.rmi.RemoteException;
    public void logout(com.dv.store.bean.remote.SessionId _sessionId)
throws java.rmi.RemoteException;

Then, this command is used to generate the wsdl:
java org.apache.axis.wsdl.Java2WSDL -o autoSource\dvstore.wsdl -l
http://localhost:8084/axis/services/DVStoreWebService -n urn:dvstore
-pcom.dv.store.wsauto urn:dvstore com.dv.store.ws.WSEngine

Then this is used to generate the client code:
java org.apache.axis.wsdl.WSDL2Java -o autoSource/ -d Application -s
autosource/dvstore.wsdl

The compiled client classes are also copied to the webapp's classes dir.

This is used to deploy the service:
java org.apache.axis.client.AdminClient -p8084
autosource\dvstore\deploy.wsdd

The client code looks like this:
            url = new
URL("http://localhost:8089/axis/services/DVStoreWebService");
            WSEngine wsEngine = new
WSEngineServiceLocator().getDVStoreWebService(url);
            
            byte[] key = { 5, 5 };
            SessionId sessionId = new SessionId(key);
        
            wsEngine.login(sessionId, "dvstore", "dvstore");

I've tried to get axis to log some debug info, but have been
unsuccessful. I took the axis.jar and changed the first line to the
following and then placed the file in the WEB-INF/classes dir. It
created an axis.log file but it remains empty.
log4j.rootCategory=DEBUG, CONSOLE, LOGFILE

Any other ideas?

Thanks,

Sarel Botha


RE: Debugging Service

Posted by Jarmo Doc <ja...@hotmail.com>.
Here are a few very basic things that I do upfront to diagnose whether or 
not an Axis service is correctly deployed:

1. Is Apache alive? http://hostname
2. Is Tomcat alive? http://hostname:8080
3. Is Axis alive? http://hostname:8080/axis
4. Is Axis happy? http://hostname:8080/axis/happyaxis.jsp
5. Get Axis version 
http://hostname:8080/axis/services/Version?method=getVersion
6. List all Axis services http://hostname:8080/axis/servlet/AxisServlet
7. Is my service deployed and active? 
http://hostname:8080/axis/services/myservice
8. Get WSDL for my service http://hostname:8080/axis/services/myservice?wsdl

You should be aware that there is a bug in Axis (1.3 at least) AdminClient 
where it can fail to deploy a service yet does not indicate any error.  So 
you might think that the service has been deployed but in fact it hasn't.  I 
typically grep for my service name in server-config.wsdd and if not there 
then I assume that AdminClient failed and I check the Tomcat logs which 
usually contain an exception telling me what went wrong.


>From: "Sarel Botha" <sa...@docuvantage.com>
>Reply-To: axis-user@ws.apache.org
>To: <ax...@ws.apache.org>
>Subject: Debugging Service
>Date: Wed, 18 Jan 2006 08:19:21 -0500
>
>Hi
>
>I'm trying to both implement a service and call it with AXIS. The client
>code executes and makes the SOAP call. I can see it with tcpmon, but the
>code on the server-side is never executed. I've attached pretty much
>everything I have.
>
>I have a class that implements these methods:
>     public void login(com.dv.store.bean.remote.SessionId sessionId,
>String string, String string0) throws java.rmi.RemoteException;
>     public void logout(com.dv.store.bean.remote.SessionId _sessionId)
>throws java.rmi.RemoteException;
>
>Then, this command is used to generate the wsdl:
>java org.apache.axis.wsdl.Java2WSDL -o autoSource\dvstore.wsdl -l
>http://localhost:8084/axis/services/DVStoreWebService -n urn:dvstore
>-pcom.dv.store.wsauto urn:dvstore com.dv.store.ws.WSEngine
>
>Then this is used to generate the client code:
>java org.apache.axis.wsdl.WSDL2Java -o autoSource/ -d Application -s
>autosource/dvstore.wsdl
>
>The compiled client classes are also copied to the webapp's classes dir.
>
>This is used to deploy the service:
>java org.apache.axis.client.AdminClient -p8084
>autosource\dvstore\deploy.wsdd
>
>The client code looks like this:
>             url = new
>URL("http://localhost:8089/axis/services/DVStoreWebService");
>             WSEngine wsEngine = new
>WSEngineServiceLocator().getDVStoreWebService(url);
>
>             byte[] key = { 5, 5 };
>             SessionId sessionId = new SessionId(key);
>
>             wsEngine.login(sessionId, "dvstore", "dvstore");
>
>I've tried to get axis to log some debug info, but have been
>unsuccessful. I took the axis.jar and changed the first line to the
>following and then placed the file in the WEB-INF/classes dir. It
>created an axis.log file but it remains empty.
>log4j.rootCategory=DEBUG, CONSOLE, LOGFILE
>
>Any other ideas?
>
>Thanks,
>
>Sarel Botha
>

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today - it's FREE! 
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/