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 Klaus Wolfmaier <kl...@scch.at> on 2002/04/25 14:05:51 UTC

Client Side Request/Response Handler

Hi all!

I am currently working of following scenario:

I have deployed a service to Axis beta1 (running on tomcat 3.3) that returns
a Long object. Additionally, I defined request and response handler on
server side that simply output a message to the console.

I used following wsdd file to deploy the service:

<deployment xmlns="http://xml.apache.org/axis/wsdd/"
            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

 <handler name="TestRequest" type="java:TestRequestHandler"/>
 <handler name="TestResponse" type="java:TestResponseHandler"/>

 <service name="TestService" provider="java:RPC">
  <parameter name="className" value="TestService"/>
  <parameter name="methodName" value="*"/>

  <requestFlow>
    <handler type="TestRequest"/>
  </requestFlow>

  <responseFlow>
    <handler type="TestResponse"/>
  </responseFlow>
 </service>

</deployment

So far this works fine. Additionally, I would like to call the same request
and response handlers on client side. For this, I created a
client-config.wsdd based on the above deployment file (used
org.apache.axis.utils.Admin client). When I now call the client progam, i
get a null pointer exception in the invoke method of the call object (See
stack trace). I simply put the client-config.wsdd file in the directory were
I start my test driver.

java.lang.NullPointerException:
at java.util.Hashtable.get(Hashtable.java:320)
at org.apache.axis.utils.cache.JavaClass.getMethod(Unknown Source)
at org.apache.axis.message.RPCElement.deserialize(Unknown Source)
at org.apache.axis.message.RPCElement.getParams(Unknown Source)
at org.apache.axis.client.Call.invoke(Unknown Source)
at org.apache.axis.client.Call.invoke(Unknown Source)
at org.apache.axis.client.Call.invoke(Unknown Source)
at TestDriverRemote.main(TestDriverRemote.java:41)

My code works fine, if i don't use the client-config.wsdd file. When I use
tcpmon to track the messages between client and server, I see a valid
response message sent back to the client.

The implementation of the request / response handlers only checks whether
the handler is called on client side or not ( msgContext.isClient() ) and
prints a respective console message. Later, I would like to do some
encryption and decryption in these handlers.

Has anybody experienced the same problems and found a solution?

Any help would by highly apprechiated!


regards

Klaus