John,
I see an error in your typeMapping:
>> <typeMapping
qname="dmbc:User"
type="java:tv.dmbc.user.User"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
Since you're using doc/literal, you don't want to use the SOAP encoding
encodingStyle.
I suspect this is the reason why Axis generated the tns5 array element using
the soap encoding "ArrayOf" convention. It's definitely a bug, though, that
Axis generated an invalid WSDL, so please file a bug report.
Anne
-----Original Message-----
From: John D'Ausilio [mailto:[EMAIL PROTECTED]
Sent: Tuesday, August 03, 2004 3:26 PM
To: [EMAIL PROTECTED]
Subject: Re: M$ interoperability and Arrays
So, at this point I have a number of remaining issues ..
1. WSDL below references tns5 namespace, which is not defined anywhere
2. Accessing any service which references "User" object throws serializer
not
found in registry exceptions
Any clues/hints/directions greatly appreciated .. at least now I've got a
complete build environment to play with for both Jboss-3.2.5 and Axis :)
jd
WSDL and WSDD below
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
targetNamespace="http://localhost:8080/jboss-net/services/userService"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="http://localhost:8080/jboss-net/services/userService"
xmlns:intf="http://localhost:8080/jboss-net/services/userService"
xmlns:tns1="http://beans.dmbc.tv" xmlns:tns2="http://user.dmbc.tv"
xmlns:tns3="http://dmbc.tv" xmlns:tns4="http://www.w3.org/1999/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--WSDL created by Apache Axis version: 1.2beta3
Built on Aug 03, 2004 (01:51:12 EDT)-->
<wsdl:types>
<schema elementFormDefault="qualified"
targetNamespace="http://beans.dmbc.tv"
xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://dmbc.tv"/>
<import namespace="http://user.dmbc.tv"/>
<import
namespace="http://localhost:8080/jboss-net/services/userService"/>
<element name="setName">
<complexType>
<sequence>
<element name="in0" type="xsd:string"/>
<element name="in1" type="xsd:string"/>
<element name="in2" type="xsd:string"/>
<element name="in3" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="setNameResponse">
<complexType/>
</element>
<element name="setTimezone">
<complexType>
<sequence>
<element name="in0" type="xsd:string"/>
<element name="in1" type="xsd:string"/>
<element name="in2" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="setTimezoneResponse">
<complexType/>
</element>
<element name="getUser">
<complexType>
<sequence>
<element name="in0" type="xsd:string"/>
<element name="in1" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="getUserResponse">
<complexType>
<sequence>
<element name="getUserReturn" type="tns2:User"/>
</sequence>
</complexType>
</element>
<element name="setUser">
<complexType>
<sequence>
<element name="in0" type="xsd:string"/>
<element name="in1" type="xsd:string"/>
<element name="in2" type="xsd:string"/>
<element name="in3" type="xsd:string"/>
<element name="in4" type="xsd:string"/>
<element name="in5" type="xsd:string"/>
<element name="in6" type="xsd:string"/>
<element name="in7" type="xsd:string"/>
<element name="in8" type="xsd:string"/>
<element name="in9" type="xsd:string"/>
<element name="in10" type="xsd:string"/>
<element name="in11" type="xsd:string"/>
<element name="in12" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="setUserResponse">
<complexType/>
</element>
<element name="createUser">
<complexType>
<sequence>
<element name="in0" type="xsd:string"/>
<element name="in1" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="createUserResponse">
<complexType>
<sequence>
<element name="createUserReturn" type="tns2:User"/>
</sequence>
</complexType>
</element>
<element name="setAddress">
<complexType>
<sequence>
<element name="in0" type="xsd:string"/>
<element name="in1" type="xsd:string"/>
<element name="in2" type="xsd:string"/>
<element name="in3" type="xsd:string"/>
<element name="in4" type="xsd:string"/>
<element name="in5" type="xsd:string"/>
<element name="in6" type="xsd:string"/>
<element name="in7" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="setAddressResponse">
<complexType/>
</element>
<element name="getAllUsers">
<complexType/>
</element>
<element name="getAllUsersResponse">
<complexType>
<sequence>
<element name="getAllUsersReturn" type="impl:ArrayOf_tns4_anyType"/>
</sequence>
</complexType>
</element>
<element name="setEmail">
<complexType>
<sequence>
<element name="in0" type="xsd:string"/>
<element name="in1" type="xsd:string"/>
<element name="in2" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="setEmailResponse">
<complexType/>
</element>
<element name="setPhone">
<complexType>
<sequence>
<element name="in0" type="xsd:string"/>
<element name="in1" type="xsd:string"/>
<element name="in2" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="setPhoneResponse">
<complexType/>
</element>
</schema>
<schema elementFormDefault="qualified" targetNamespace="http://dmbc.tv"
xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://user.dmbc.tv"/>
<import
namespace="http://localhost:8080/jboss-net/services/userService"/>
<complexType name="DMBCObject">
<sequence/>
</complexType>
<complexType abstract="true" name="Persistent">
<complexContent>
<extension base="tns3:DMBCObject">
<sequence>
<element name="created" nillable="true" type="xsd:dateTime"/>
<element name="id" type="xsd:int"/>
<element name="version" type="xsd:int"/>
</sequence>
</extension>
</complexContent>
</complexType>
</schema>
<schema elementFormDefault="qualified"
targetNamespace="http://user.dmbc.tv"
xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://dmbc.tv"/>
<import
namespace="http://localhost:8080/jboss-net/services/userService"/>
<complexType name="User">
<complexContent>
<extension base="tns3:Persistent">
<sequence>
<element name="city" nillable="true" type="xsd:string"/>
<element name="country" nillable="true" type="xsd:string"/>
<element name="detail1" nillable="true" type="xsd:string"/>
<element name="detail2" nillable="true" type="xsd:string"/>
<element name="email" nillable="true" type="xsd:string"/>
<element name="givenName" nillable="true" type="xsd:string"/>
<element name="phone" nillable="true" type="xsd:string"/>
<element name="state" nillable="true" type="xsd:string"/>
<element name="surName" nillable="true" type="xsd:string"/>
<element name="userDomain" nillable="true" type="xsd:string"/>
<element name="userId" nillable="true" type="xsd:string"/>
<element name="zip" nillable="true" type="xsd:string"/>
<element name="zone" nillable="true" type="xsd:string"/>
</sequence>
</extension>
</complexContent>
</complexType>
</schema>
<schema elementFormDefault="qualified"
targetNamespace="http://localhost:8080/jboss-net/services/userService"
xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://dmbc.tv"/>
<import namespace="http://user.dmbc.tv"/>
<complexType name="ArrayOf_tns4_anyType">
<complexContent>
<restriction base="tns5:Array">
<attribute ref="tns5:arrayType" wsdl:arrayType="tns4:anyType[]"/>
</restriction>
</complexContent>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="setPhoneResponse">
<wsdl:part element="tns1:setPhoneResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="getAllUsersResponse">
<wsdl:part element="tns1:getAllUsersResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="setTimezoneResponse">
<wsdl:part element="tns1:setTimezoneResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="setAddressRequest">
<wsdl:part element="tns1:setAddress" name="parameters"/>
</wsdl:message>
<wsdl:message name="setUserRequest">
<wsdl:part element="tns1:setUser" name="parameters"/>
</wsdl:message>
<wsdl:message name="getAllUsersRequest">
<wsdl:part element="tns1:getAllUsers" name="parameters"/>
</wsdl:message>
<wsdl:message name="createUserRequest">
<wsdl:part element="tns1:createUser" name="parameters"/>
</wsdl:message>
<wsdl:message name="setEmailResponse">
<wsdl:part element="tns1:setEmailResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="setPhoneRequest">
<wsdl:part element="tns1:setPhone" name="parameters"/>
</wsdl:message>
<wsdl:message name="setAddressResponse">
<wsdl:part element="tns1:setAddressResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="setEmailRequest">
<wsdl:part element="tns1:setEmail" name="parameters"/>
</wsdl:message>
<wsdl:message name="setTimezoneRequest">
<wsdl:part element="tns1:setTimezone" name="parameters"/>
</wsdl:message>
<wsdl:message name="createUserResponse">
<wsdl:part element="tns1:createUserResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="setNameRequest">
<wsdl:part element="tns1:setName" name="parameters"/>
</wsdl:message>
<wsdl:message name="getUserResponse">
<wsdl:part element="tns1:getUserResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="getUserRequest">
<wsdl:part element="tns1:getUser" name="parameters"/>
</wsdl:message>
<wsdl:message name="setUserResponse">
<wsdl:part element="tns1:setUserResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="setNameResponse">
<wsdl:part element="tns1:setNameResponse" name="parameters"/>
</wsdl:message>
<wsdl:portType name="UserManagerLocal">
<wsdl:operation name="setName">
<wsdl:input message="impl:setNameRequest" name="setNameRequest"/>
<wsdl:output message="impl:setNameResponse"
name="setNameResponse"/>
</wsdl:operation>
<wsdl:operation name="setTimezone">
<wsdl:input message="impl:setTimezoneRequest"
name="setTimezoneRequest"/>
<wsdl:output message="impl:setTimezoneResponse"
name="setTimezoneResponse"/>
</wsdl:operation>
<wsdl:operation name="getUser">
<wsdl:input message="impl:getUserRequest" name="getUserRequest"/>
<wsdl:output message="impl:getUserResponse"
name="getUserResponse"/>
</wsdl:operation>
<wsdl:operation name="setUser">
<wsdl:input message="impl:setUserRequest" name="setUserRequest"/>
<wsdl:output message="impl:setUserResponse"
name="setUserResponse"/>
</wsdl:operation>
<wsdl:operation name="createUser">
<wsdl:input message="impl:createUserRequest"
name="createUserRequest"/>
<wsdl:output message="impl:createUserResponse"
name="createUserResponse"/>
</wsdl:operation>
<wsdl:operation name="setAddress">
<wsdl:input message="impl:setAddressRequest"
name="setAddressRequest"/>
<wsdl:output message="impl:setAddressResponse"
name="setAddressResponse"/>
</wsdl:operation>
<wsdl:operation name="getAllUsers">
<wsdl:input message="impl:getAllUsersRequest"
name="getAllUsersRequest"/>
<wsdl:output message="impl:getAllUsersResponse"
name="getAllUsersResponse"/>
</wsdl:operation>
<wsdl:operation name="setEmail">
<wsdl:input message="impl:setEmailRequest" name="setEmailRequest"/>
<wsdl:output message="impl:setEmailResponse"
name="setEmailResponse"/>
</wsdl:operation>
<wsdl:operation name="setPhone">
<wsdl:input message="impl:setPhoneRequest" name="setPhoneRequest"/>
<wsdl:output message="impl:setPhoneResponse"
name="setPhoneResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="userServiceSoapBinding" type="impl:UserManagerLocal">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="setName">
<wsdlsoap:operation soapAction="userService"/>
<wsdl:input name="setNameRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="setNameResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="setTimezone">
<wsdlsoap:operation soapAction="userService"/>
<wsdl:input name="setTimezoneRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="setTimezoneResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getUser">
<wsdlsoap:operation soapAction="userService"/>
<wsdl:input name="getUserRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getUserResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="setUser">
<wsdlsoap:operation soapAction="userService"/>
<wsdl:input name="setUserRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="setUserResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="createUser">
<wsdlsoap:operation soapAction="userService"/>
<wsdl:input name="createUserRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="createUserResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="setAddress">
<wsdlsoap:operation soapAction="userService"/>
<wsdl:input name="setAddressRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="setAddressResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getAllUsers">
<wsdlsoap:operation soapAction="userService"/>
<wsdl:input name="getAllUsersRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getAllUsersResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="setEmail">
<wsdlsoap:operation soapAction="userService"/>
<wsdl:input name="setEmailRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="setEmailResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="setPhone">
<wsdlsoap:operation soapAction="userService"/>
<wsdl:input name="setPhoneRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="setPhoneResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="UserManagerLocalService">
<wsdl:port binding="impl:userServiceSoapBinding" name="userService">
<wsdlsoap:address
location="http://localhost:8080/jboss-net/services/userService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
-->>> WSDD
<?xml version="1.0" encoding="UTF-8"?>
<!-- -->
<!-- This JBoss.Net Web Service Descriptor has been generated by XDoclet
-->
<!-- and is brought to you by F. M. Brier, C. G. Jung and J. Essington
-->
<!-- -->
<deployment
name="dmbcServices"
xmlns="http://xml.apache.org/axis/wsdd/"
targetNamespace="http://dmbc.tv/dmbcServices"
xmlns:dmbc="http://dmbc.tv/dmbcServices"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<!-- The following are declarations of service endpoints targetted to
session beans -->
<service name="userService" provider="Handler">
<parameter name="handlerClass"
value="org.jboss.net.axis.server.EJBProvider"/>
<parameter name="beanJndiName" value="UserManagerLocal"/>
<parameter name="allowedMethods" value="getUser createUser setUser
getAllUsers setName setEmail setPhone setTimezone setAddress "/>
<requestFlow name="userServiceRequest">
</requestFlow>
<responseFlow name="userServiceResponse">
</responseFlow>
</service>
<!-- The following are typemappings for entity beans for implementing
the implicit web-service value-object pattern -->
<!-- The following are typemappings for bean-type value-objects -->
<typeMapping
qname="dmbc:User"
type="java:tv.dmbc.user.User"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<!-- There follow merged custom web service descriptions -->
</deployment>