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 Michael Thompson <mt...@uplogix.com> on 2004/07/26 15:56:40 UTC

client-config.wsdd

Using Axis 1.2 beta (the one off the web site).

I'm doing a bit of research with handlers.  I'm attempting to write a 
CompressionHandler which will gzip compress the request/response and 
ungzip it on the other side.  So in my server-config.wsdd I have 
declared a request/response flow element as such:

  <requestFlow>
   <handler type="java:org.apache.axis.handlers.JWSHandler">
    <parameter name="scope" value="session"/>
   </handler>
   <handler type="java:org.apache.axis.handlers.JWSHandler">
    <parameter name="scope" value="request"/>
    <parameter name="extension" value=".jwr"/>
   </handler>
   <handler type="java:foo.bar.CompressionHandler"/>
  </requestFlow>

  <responseFlow>
   <handler type="java:foo.bar.CompressionHandler"/>
  </responseFlow>

I'm not sure about all the stuff in the JWSHandler in the request flow, 
but it was generated based in the deploy.wsdd from wsdltojava.

Where I've hit a bit of a stumbling block is the client-config.wsdd.  
I've created on based on my server-config.wsdd:

java org.apache.axis.utils.Admin client server-config.wsdd

This puts a lot of stuff in the client-config.wsdd that I'm not so sure 
is necessary, as I was running just fine without it, but now things have 
started acting flakey.

If I put the generated client-config.wsdd in my classpath, it complains 
with a ClassNotFoundException for my service implementation class (which 
would be expected becuase it is in another jar not distributed with the 
client):

 <service ... >
      <other parameters here/>
      <parameter name="className" value="foo.bar.ServiceImpl"/>

    <type-mappings-here/>
</service>

So if I remove that one parameter, the client stops complaining(throwing 
exceptions), but I'm not so sure it is sending anything to the server.

If I remove the client-config.wsdd all together, it sends the message to 
my server (I get debug logging on the server).

So some of the debug from the log for axis:
java.lang.NoSuchMethodException: 
org.apache.axis.encoding.ser.BeanSerializerFactory.create(java.lang.Class, 
javax.xml.namespace.QName)
    at java.lang.Class.getMethod(Class.java:978)
    at 
org.apache.axis.encoding.ser.BaseSerializerFactory.createFactory(BaseSerializerFactory.java:234)
    at 
org.apache.axis.deployment.wsdd.WSDDService.deployTypeMapping(WSDDService.java:517)
    at 
org.apache.axis.deployment.wsdd.WSDDService.initTMR(WSDDService.java:235)
    at 
org.apache.axis.deployment.wsdd.WSDDService.<init>(WSDDService.java:215)
    at 
org.apache.axis.deployment.wsdd.WSDDDeployment.<init>(WSDDDeployment.java:204)
    at 
org.apache.axis.deployment.wsdd.WSDDDocument.setDocument(WSDDDocument.java:121)
    at 
org.apache.axis.deployment.wsdd.WSDDDocument.<init>(WSDDDocument.java:60)
    at 
org.apache.axis.configuration.FileProvider.configureEngine(FileProvider.java:171)
    at org.apache.axis.AxisEngine.init(AxisEngine.java:155)
    at org.apache.axis.AxisEngine.<init>(AxisEngine.java:139)
    at org.apache.axis.client.AxisClient.<init>(AxisClient.java:49)
    at org.apache.axis.client.Service.getAxisClient(Service.java:104)
    at org.apache.axis.client.Service.<init>(Service.java:113)

I'm seeing lots of this from the initialization of my 
ServiceLocator(generated by wsdl2java).

I'm also seeing this:
No service class was found!  Are you missing a className option?

So if you are still reading this ;), how do I include a 
client-config.wsdd to just specify that I want to us a global handler in 
the request/response flows?

Thanks in advance!
  --m