axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Prout <jcpr...@gmail.com>
Subject Problem deploying a service returning an array of name-value pairs
Date Thu, 17 Nov 2005 02:28:24 GMT
This is my attempt to build a service that returns a Map, but follows the
WS-I rules
 When I deploy the service I get the following error (abbreviated):
 java.lang.NoSuchMethodException:
org.apache.axis.encoding.ser.ArraySerializerFactory.create(java.lang.Class,
javax.xml.namespace.QName)
at java.lang.Class.getMethod(Class.java:986)
at org.apache.axis.encoding.ser.BaseSerializerFactory.createFactory(
BaseSerializerFactory.java:254)
at org.apache.axis.deployment.wsdd.WSDDService.deployTypeMapping(
WSDDService.java:542)
at org.apache.axis.deployment.wsdd.WSDDService.initTMR(WSDDService.java:253)
at org.apache.axis.deployment.wsdd.WSDDService.<init>(WSDDService.java:233)
at org.apache.axis.deployment.wsdd.WSDDDeployment.<init>(WSDDDeployment.java
:192)
at org.apache.axis.deployment.wsdd.WSDDDocument.setDocument(
WSDDDocument.java:139)
at org.apache.axis.deployment.wsdd.WSDDDocument.<init>(WSDDDocument.java:65)
at org.apache.axis.configuration.FileProvider.configureEngine(
FileProvider.java:179)
 I've looked at the source and it's right, ArraySerializerFactory doesn't
have a create method, but that's what BaseSerializerFactory is trying to
call via reflection.
 This is using Axis 1.3, running on JBoss 4.0.3 (tomcat 5.5.9). I thought
there might be some conflict between the Axis that JBoss ships with and the
Axis I deployed in my war file, but JBoss has changed the package names, so
this shouldn't be a problem.
 Does anyone know what's happening here?
 My WSDL and server-config.wsdd files follow.
 Thanks in advance
 John
 <?xml version="1.0" encoding="UTF-8"?>
<definitions
name="API.wsdl"
targetNamespace="http://api.ws.digitalimpact.com"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://api.ws.digitalimpact.com"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<documentation>Digital Impact API</documentation>
<types>
<xsd:schema
targetNamespace="http://api.ws.digitalimpact.com"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xsd:element name="GetMemberProfile" type="tns:GetMemberProfileType"/>
<xsd:element name="GetMemberProfileResponse"
type="tns:GetMemberProfileResponseType"/>
<xsd:complexType name="NVPairType">
<xsd:sequence>
<xsd:element name="NVname" type="xsd:string"/>
<xsd:element name="NVvalue" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="NVPairArrayType">
<xsd:sequence>
<xsd:element name="NVPair" minOccurs="0" maxOccurs="unbounded"
type="tns:NVPairType"/>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="GetMemberProfileType">
<xsd:sequence>
<xsd:element name="emailAddress" type="xsd:string"/>
<xsd:element name="vendorId" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GetMemberProfileResponseType">
<xsd:sequence>
<xsd:element name="retValues" type="tns:NVPairArrayType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</types>
<message name="GetMemberProfileRequest">
<part element="tns:GetMemberProfile" name="parameters"/>
</message>
<message name="GetMemberProfileResponse">
<part element="tns:GetMemberProfileResponse" name="response"/>
</message>
<portType name="ApiService">
<operation name="GetMemberProfile">
<input message="tns:GetMemberProfileRequest"/>
<output message="tns:GetMemberProfileResponse"/>
</operation>
</portType>
<binding name="ApiBinding" type="tns:ApiService">
<soap:binding style="document" transport="
http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetMemberProfile">
<soap:operation soapAction=""/>
<input>
<soap:body namespace="http://api.ws.digitalimpact.com" use="literal"/>
</input>
<output>
<soap:body namespace="http://api.ws.digitalimpact.com" use="literal"/>
</output>
</operation>
</binding>
<service name="ApiEndPoint">
<port binding="tns:ApiBinding" name="ApiService">
<soap:address location="http://localhost"/>
</port>
</service>
</definitions>

<?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">

<!-- Services from ApiEndPoint WSDL service -->

<service name="ApiService" provider="java:RPC" style="wrapped"
use="literal">
<parameter name="wsdlTargetNamespace" value="
http://api.ws.digitalimpact.com"/>
<parameter name="wsdlServiceElement" value="ApiEndPoint"/>
<parameter name="schemaQualified" value="http://api.ws.digitalimpact.com"/>
<parameter name="wsdlServicePort" value="ApiService"/>
<parameter name="className" value="
com.digitalimpact.ws.api.ApiBindingSkeleton"/>
<parameter name="wsdlPortType" value="ApiService"/>
<parameter name="typeMappingVersion" value="1.2"/>
<parameter name="allowedMethods" value="*"/>

<typeMapping
xmlns:ns="http://api.ws.digitalimpact.com"
qname="ns:NVPairType"
type="java:com.digitalimpact.ws.api.NVPairType"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle=""
/>
<arrayMapping
xmlns:ns="http://api.ws.digitalimpact.com"
qname="ns:NVPairArrayType"
type="java:com.digitalimpact.ws.api.NVPairType[]"
innerType="cmp-ns:NVPairType" xmlns:cmp-ns="http://api.ws.digitalimpact.com"
encodingStyle=""
/>
</service>
</deployment>

Mime
View raw message