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 Joel Carklin <jo...@innoforge.com> on 2004/07/29 12:25:31 UTC

Help Please

Hi, 

I'm trying to setup a message style service. I have a test client
developed by someone else which is sending soap xml to my tomcat
service.

My deploy.wsdd looks like this (taken from sample):
<deployment xmlns="http://xml.apache.org/axis/wsdd/"           
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance">

<service name="MessageService" style="message">
    <parameter name="className" value="path.to.MessageService" />
    <parameter name="allowedMethods" value="processRequest" />
</service>

</deployment>

and the single method in my MessageService class looks like this:

public Document processRequest(Document doc) {
        Document res_dom_doc = null;
        try {
            My_Message msg = new My_Message(doc);
            MyConnectionToExternalSystem conn =
newMyConnectionToExternalSystem("<ip_address>",8686,"comm1");
            My_Message res = conn.sendAndReceiveMessage(msg, 45000);
            res_dom_doc = res.getMsgAsDOMDocument();
        }
        catch( Exception e ) {
            logger.error("Error getting bytes to send to External
System", e );
        }
        return res_dom_doc;
    }

I am getting a javax.servlet.ServletException: Unable to Log In:
java.lang.reflect.InvocationTargetException,
seemingly caused by the client calling a method on it's stub class which
is not named 'processRequest'. I thought that, for messaging style, the
client can do whatever it likes, because the service is unaware of
everything except the xml soap message it receives, so the fact that the
client calls a method called login_method, shouldn't really make a
difference to me. But if the client must send a Document and receive a
Document as in my implementation class above, then I guess I can't use
this. 

Please help explain this to me. The axis documentation is sparse and I
need to get the actual xml for all requests sent to the web service, not
the java object created by axis. I need to send this xml through to
another non rpc service.

Thanks
Joel