within my wsdl, I define a complex array type as followed, )to be used as a parameter and/or return value for a method):
<xsd:complexType name="NameValuePairArray">
<xsd:complexContent>
<xsd:restriction base="soapenc:Array">
<xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="typens:NameValuePair[]"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
then I use "wscompile -import" command (sun java webservices pack) to create all the boilerplate java code and mapping file. However, the wscompile command doesn't create a com.test.NameValuePairArray class, it uses the com.test.NameValuePair[] instead within the java source and mapping file.
Additionally, deploying the service to JBoss 4.0 results in the following message:
WARN [TypeMappingDescription] Class not found: com.test.NameValuePairArray.
Of course, when I execute a client I get the following stack from JBoss
[AxisServlet] AxisFault:
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client
faultSubcode:
faultString: javax.xml.rpc.JAXRPCException: org.xml.sax.SAXException: No deserializer defined for array type {urn:XXX}NameValuePair
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace: javax.xml.rpc.JAXRPCException: org.xml.sax.SAXException: No deserializer defined for array type {urn:XXX}NameValuePair
at org.apache.axis.providers.java.RPCInvocation.prepareFromRequestEnvelope(RPCInvocation.java:401)
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:104)
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:360)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:73)