Turns out that the client-config.wsdd was being read (I'm sure no-one is surprised by that) but that the <typeMapping> was in the wrong place in the file...

Why the client was loading server side codes, I still have no idea.

Linus Kamb wrote:
I seem to be having some trouble getting my client to notice and read my client-config.wsdd file that has a required type mapping.

I have the file available in the current working directory, and also in the root of the classes build tree and in the package classes directory.

Here is the mystery:

Running properly isolated, the client runs fine, invoking several methods on the server, until it needs to invoke the appropriate deserializer (in this case, the ElementDeserializer that is mapped to handle xsd:anyType) at which point it throws an exception saying it doesn't know how to handle xsd:anyType.

Now, what I find strange, is that if I include in the classpath the path to my server-side classes (no other changes), it works. EXCEPT that I get an exception thrown saying that it can't find the log4j properties file it (the server codes) is expecting, which is reasonable.

I have tried running from ant, from a jar (with classpath in the manifest,) and from the command line setting the path explicitly. Same resultes. The file exists as I check it's existence explicitly in the client.

SOOO....

Why would be client be loading any server side codes?
Why would it run if it can't load them?
Why doesn't the client find my client-config.wsdd?
Can I specify at runtime (without resorting to the whole Call interface) either
  a) where to find the client-config.wsdd, or
  b) the TypeMapping to the Stub?


Thanks for any insight.


Attached is my wsdd.

Below is the exception on startup when the client is trying to load the server class.

[java] Mon Aug 08 11:46:34 PDT 2005: UPDS: UPDS_Service static initialization.
     [java] UPDS: logging properties file: conf/upds/upds_log4j.properties
     [java] UPDS: Could not find log file: conf/upds/upds_log4j.properties
[java] java.io.FileNotFoundException: conf/upds/upds_config.properties (No such file or directory)
     [java]     at java.io.FileInputStream.open(Native Method)
     [java]     at java.io.FileInputStream.<init>(FileInputStream.java:106)
     [java]     at java.io.FileInputStream.<init>(FileInputStream.java:66)
[java] at edu.iris.dmc.upds.UPDS_Service._ReadConfiguration(UPDS_Service.java:65) [java] at edu.iris.dmc.upds.UPDS_Service.<clinit>(UPDS_Service.java:55)
     [java]     at java.lang.Class.forName0(Native Method)
     [java]     at java.lang.Class.forName(Class.java:219)
[java] at org.apache.axis.utils.ClassUtils$1.run(ClassUtils.java:127) [java] at java.security.AccessController.doPrivileged(Native Method) [java] at org.apache.axis.utils.ClassUtils.forName(ClassUtils.java:122) [java] at org.apache.axis.utils.cache.ClassCache.lookup(ClassCache.java:85) [java] at org.apache.axis.providers.java.JavaProvider.getServiceClass(JavaProvider.java:428) [java] at org.apache.axis.providers.java.JavaProvider.initServiceDesc(JavaProvider.java:461) [java] at org.apache.axis.handlers.soap.SOAPService.getInitializedServiceDesc(SOAPService.java:285) [java] at org.apache.axis.deployment.wsdd.WSDDService.makeNewInstance(WSDDService.java:500) [java] at org.apache.axis.deployment.wsdd.WSDDDeployableItem.getNewInstance(WSDDDeployableItem.java:274) [java] at org.apache.axis.deployment.wsdd.WSDDDeployableItem.getInstance(WSDDDeployableItem.java:260) [java] at org.apache.axis.deployment.wsdd.WSDDDeployment.getService(WSDDDeployment.java:427) [java] at org.apache.axis.configuration.FileProvider.getService(FileProvider.java:231) [java] at org.apache.axis.AxisEngine.getService(AxisEngine.java:311) [java] at org.apache.axis.MessageContext.setTargetService(MessageContext.java:755)
     [java]     at org.apache.axis.client.Call.invoke(Call.java:2671)
     [java]     at org.apache.axis.client.Call.invoke(Call.java:2424)
     [java]     at org.apache.axis.client.Call.invoke(Call.java:2347)
     [java]     at org.apache.axis.client.Call.invoke(Call.java:1804)
[java] at edu.iris.dmc.upds.UPDS_QueryServiceSoapBindingStub.getProductTypes(UPDS_QueryServiceSoapBindingStub.java:218) [java] at edu.iris.dmc.qryclient.QryPanel.qryProductsBtnActionPerformed(Unknown Source)

 [... swing  stuff ...]


Thanks,
Linus


------------------------------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/"; 
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>
 <globalConfiguration>
  <parameter name="adminPassword" value="admin"/>
  <parameter name="enableNamespacePrefixOptimization" value="true"/>
  <parameter name="disablePrettyXML" value="true"/>
  <parameter name="attachments.implementation" 
value="org.apache.axis.attachments.AttachmentsImpl"/>
  <parameter name="sendXsiTypes" value="true"/>
  <parameter name="sendMultiRefs" value="true"/>
  <parameter name="sendXMLDeclaration" value="true"/>
 </globalConfiguration>
 <service name="UPDS_QueryService" provider="java:RPC" style="wrapped" 
use="literal">
  <operation returnQName="ns1:getProductTypesReturn" returnType="xsd:string" name="getProductTypes" 
qname="ns1:getProductTypes" soapAction="" xmlns:ns1="http://www.iris.edu/upds"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>
  <operation returnQName="ns2:getFieldListReturn" returnType="ns2:QueryParameterDescription" name="getFieldList" 
qname="ns2:getFieldList" soapAction="" xmlns:ns2="http://www.iris.edu/upds";>
   <parameter qname="ns2:productType" type="xsd:string" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>
  </operation>
  <operation returnQName="ns3:getAvailableProductsReturn" returnType="ns3:ProductListing" 
name="getAvailableProducts" qname="ns3:getAvailableProducts" soapAction="" 
xmlns:ns3="http://www.iris.edu/upds";>
   <parameter qname="ns3:product" type="xsd:string" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>
   <parameter qname="ns3:queryParam" type="ns3:QueryParameter"/>
  </operation>
  <operation returnQName="ns4:getProductsByIdReturn" returnType="xsd:anyType" name="getProductsById" 
qname="ns4:getProductsById" soapAction="" xmlns:ns4="http://www.iris.edu/upds"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
   <parameter qname="ns4:productId" type="ns4:ProductIdentifier"/>
  </operation>
  <parameter name="allowedMethods" value="getProductsById getAvailableProducts 
getProductTypes getFieldList"/>
  <parameter name="typeMappingVersion" value="1.2"/>
  <parameter name="wsdlPortType" value="UPDS_Query"/>
  <parameter name="className" value="edu.iris.dmc.upds.UPDS_QueryServer"/>
  <parameter name="wsdlServicePort" value="UPDS_QueryService"/>
  <parameter name="wsdlTargetNamespace" value="http://www.iris.edu/upds"/>
  <parameter name="wsdlServiceElement" value="UPDS_QueryService"/>
  <parameter name="schemaUnqualified" value="http://www.iris.edu/upds"/>
  <typeMapping encodingStyle="" serializer="org.apache.axis.encoding.ser.EnumSerializerFactory" 
deserializer="org.apache.axis.encoding.ser.EnumDeserializerFactory" type="java:edu.iris.dmc.upds.ValueComparator" 
qname="ns5:ValueComparator" xmlns:ns5="http://www.iris.edu/upds"/>
  <typeMapping encodingStyle="" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" 
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" type="java:edu.iris.dmc.upds.QueryParameterDescription" 
qname="ns6:QueryParameterDescription" xmlns:ns6="http://www.iris.edu/upds"/>
  <typeMapping encodingStyle="" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" 
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" type="java:edu.iris.dmc.upds.ProductIdentifier" 
qname="ns7:ProductIdentifier" xmlns:ns7="http://www.iris.edu/upds"/>
  <typeMapping encodingStyle="" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" 
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" type="java:edu.iris.dmc.upds.QueryParameter" 
qname="ns8:QueryParameter" xmlns:ns8="http://www.iris.edu/upds"/>
  <typeMapping encodingStyle="" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" 
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" type="java:edu.iris.dmc.upds.ProductListing" 
qname="ns9:ProductListing" xmlns:ns9="http://www.iris.edu/upds"/>
  <typeMapping encodingStyle="" serializer="org.apache.axis.encoding.ser.ElementSerializerFactory" 
deserializer="org.apache.axis.encoding.ser.ElementDeserializerFactory" type="java:org.w3c.dom.Element" 
qname="xsd:anyType" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>
 </service>
 <transport name="java" pivot="java:org.apache.axis.transport.java.JavaSender"/>
 <transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"/>
 <transport name="local" 
pivot="java:org.apache.axis.transport.local.LocalSender"/>
</deployment>

Reply via email to