3 Replies Latest reply on Feb 27, 2004 6:08 PM by cgjung

    Custom Class Array with Jboss.net

    carcudi

      Well, I've got my custom classes working after a fashion (with some namespace issues that may not be resolvable). See posting: Custom class with Jboss.net

      Now, I would like to make an extension of these methods that return arrays of the custom objects. When I run the methods, the Axis engine creates the Soap envelope just fine, but on the client side, I get the error listed below. It seems a little odd to me that client would need a deserializer for the array as well as the complex type, since the complex type already has a serializer, but I am new to this game, and still learning the ropes

      Any suggestions?

      {http://xml.apache.org/axis/}stackTrace: org.xml.sax.SAXException: No deserializer defined f
      or array type {http://cvs.east.frontiercorp.com/cert}NpaNxxTest
       at org.apache.axis.encoding.ser.ArrayDeserializer.onStartElement(ArrayDeserializer.java:304)
      
       at org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java:428)
       at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextIm
      pl.java:976)
       at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:198)
       at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:722)
       at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:233)
       at org.apache.axis.message.RPCElement.getParams(RPCElement.java:347)
       at org.apache.axis.client.Call.invoke(Call.java:2272)
       at org.apache.axis.client.Call.invoke(Call.java:2171)
       at testNpaNxxObject.main(testNpaNxxObject.java:50)
      
      
      org.xml.sax.SAXException: No deserializer defined for array type {http://cvs.east.frontiercorp.com/c
      ert}NpaNxxTest
       at org.apache.axis.AxisFault.makeFault(AxisFault.java:129)
       at org.apache.axis.client.Call.invoke(Call.java:2275)
       at org.apache.axis.client.Call.invoke(Call.java:2171)
       at testNpaNxxObject.main(testNpaNxxObject.java:50)
      Caused by: org.xml.sax.SAXException: No deserializer defined for array type {http://cvs.east.frontie
      rcorp.com/cert}NpaNxxTest
       at org.apache.axis.encoding.ser.ArrayDeserializer.onStartElement(ArrayDeserializer.java:304)
      
       at org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java:428)
       at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextIm
      pl.java:976)
       at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:198)
       at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:722)
       at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:233)
       at org.apache.axis.message.RPCElement.getParams(RPCElement.java:347)
       at org.apache.axis.client.Call.invoke(Call.java:2272)
       ... 2 more


        • 1. Re: ex06_3
          cgjung

           

          "Martin0" wrote:
          "Martin0" wrote:
          Fails with jboss 3.2.3 aswell.

          For the record the deployment descriptors are included below:
          ejb-jar.xml
          <?xml version="1.0"?>

          <!DOCTYPE ejb-jar PUBLIC
          "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN"
          "http://java.sun.com/dtd/ejb-jar_2_0.dtd">

          <ejb-jar>
          <enterprise-beans>
          <entity>
          <ejb-name>CustomerEJB</ejb-name>
          <home>com.titan.customer.CustomerHomeRemote</home>
          <remote>com.titan.customer.CustomerRemote</remote>
          <ejb-class>com.titan.customer.CustomerBean</ejb-class>
          <persistence-type>Container</persistence-type>
          <prim-key-class>java.lang.Integer</prim-key-class>
          <reentrant>False</reentrant>
          <cmp-version>2.x</cmp-version>
          <abstract-schema-name>Customer</abstract-schema-name>
          <cmp-field><field-name>id</field-name></cmp-field>
          <cmp-field><field-name>lastName</field-name></cmp-field>
          <cmp-field><field-name>firstName</field-name></cmp-field>
          <cmp-field><field-name>hasGoodCredit</field-name></cmp-field>
          <primkey-field>id</primkey-field>
          <security-identity><use-caller-identity/></security-identity>
          </entity>
          <entity>
          <ejb-name>AddressEJB</ejb-name>
          <local-home>com.titan.address.AddressHomeLocal</local-home>
          <local>com.titan.address.AddressLocal</local>
          <ejb-class>com.titan.address.AddressBean</ejb-class>
          <persistence-type>Container</persistence-type>
          <prim-key-class>java.lang.Integer</prim-key-class>
          <reentrant>False</reentrant>
          <cmp-version>2.x</cmp-version>
          <abstract-schema-name>Address</abstract-schema-name>
          <cmp-field><field-name>id</field-name></cmp-field>
          <cmp-field><field-name>street</field-name></cmp-field>
          <cmp-field><field-name>city</field-name></cmp-field>
          <cmp-field><field-name>state</field-name></cmp-field>
          <cmp-field><field-name>zip</field-name></cmp-field>
          <primkey-field>id</primkey-field>
          <security-identity><use-caller-identity/></security-identity>
          </entity>
          </enterprise-beans>

          <relationships>
          <ejb-relation>
          <ejb-relation-name>Customer-Address</ejb-relation-name>
          <ejb-relationship-role>
          <ejb-relationship-role-name>Customer-has-a-Address</ejb-relationship-role-name>
          <multiplicity>One</multiplicity>
          <relationship-role-source>
          <ejb-name>CustomerEJB</ejb-name>
          </relationship-role-source>
          <cmr-field>
          <cmr-field-name>homeAddress</cmr-field-name>
          </cmr-field>
          </ejb-relationship-role>
          <ejb-relationship-role>
          <ejb-relationship-role-name>Address-belongs-to-Customer</ejb-relationship-role-name>
          <multiplicity>One</multiplicity>
          <relationship-role-source>
          <ejb-name>AddressEJB</ejb-name>
          </relationship-role-source>
          </ejb-relationship-role>
          </ejb-relation>
          </relationships>

          <assembly-descriptor>
          <security-role>
          <role-name>Employees</role-name>
          </security-role>
          <method-permission>
          <role-name>Employees</role-name>
          <method>
          <ejb-name>CustomerEJB</ejb-name>
          <method-name>*</method-name>
          </method>
          <method>
          <ejb-name>AddressEJB</ejb-name>
          <method-name>*</method-name>
          </method>
          </method-permission>
          <container-transaction>
          <method>
          <ejb-name>CustomerEJB</ejb-name>
          <method-name>*</method-name>
          </method>
          <method>
          <ejb-name>AddressEJB</ejb-name>
          <method-name>*</method-name>
          </method>
          <trans-attribute>Required</trans-attribute>
          </container-transaction>
          </assembly-descriptor>

          </ejb-jar>



          jboss.xml:
          <?xml version="1.0"?>

          <jboss>
          <enterprise-beans>
          <entity>
          <ejb-name>CustomerEJB</ejb-name>
          <jndi-name>CustomerHomeRemote</jndi-name>
          </entity>
          <entity>
          <ejb-name>AddressEJB</ejb-name>
          <local-jndi-name>AddressHomeLocal</local-jndi-name>
          </entity>
          </enterprise-beans>
          </jboss>

          jbosscmp-jdbc.xml
          <?xml version="1.0" encoding="UTF-8"?>

          <!DOCTYPE jbosscmp-jdbc PUBLIC
          "-//JBoss//DTD JBOSSCMP-JDBC 3.0//EN"
          "http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_3_0.dtd">

          <jbosscmp-jdbc>

          <defaults>
          <datasource>java:/DefaultDS</datasource>
          <datasource-mapping>Hypersonic SQL</datasource-mapping>
          <create-table>true</create-table>
          <remove-table>true</remove-table>
          </defaults>

          <enterprise-beans>
          <entity>
          <ejb-name>CustomerEJB</ejb-name>
          <table-name>Customer</table-name>
          <cmp-field>
          <field-name>id</field-name>
          <column-name>ID</column-name>
          </cmp-field>
          <cmp-field>
          <field-name>lastName</field-name>
          <column-name>LAST_NAME</column-name>
          </cmp-field>
          <cmp-field>
          <field-name>firstName</field-name>
          <column-name>FIRST_NAME</column-name>
          </cmp-field>
          <cmp-field>
          <field-name>hasGoodCredit</field-name>
          <column-name>HAS_GOOD_CREDIT</column-name>
          </cmp-field>
          </entity>
          <entity>
          <ejb-name>AddressEJB</ejb-name>
          <table-name>Address</table-name>
          <cmp-field>
          <field-name>id</field-name>
          <column-name>ID</column-name>
          </cmp-field>
          <cmp-field>
          <field-name>street</field-name>
          <column-name>STREET</column-name>
          </cmp-field>
          <cmp-field>
          <field-name>city</field-name>
          <column-name>CITY</column-name>
          </cmp-field>
          <cmp-field>
          <field-name>state</field-name>
          <column-name>STATE</column-name>
          </cmp-field>
          <cmp-field>
          <field-name>zip</field-name>
          <column-name>ZIP</column-name>
          </cmp-field>
          </entity>
          </enterprise-beans>
          <relationships>
          <ejb-relation>
          <ejb-relation-name>Customer-Address</ejb-relation-name>
          <foreign-key-mapping/>
          <ejb-relationship-role>
          <ejb-relationship-role-name>Customer-has-a-Address</ejb-relationship-role-name>
          <key-fields/>
          </ejb-relationship-role>
          <ejb-relationship-role>
          <ejb-relationship-role-name>Address-belongs-to-Customer</ejb-relationship-role-name>
          <key-fields>
          <key-field>
          <field-name>id</field-name>
          <column-name>HOME_ADDRESS</column-name>
          </key-field>
          </key-fields>
          </ejb-relationship-role>
          </ejb-relation>
          </relationships>
          </jbosscmp-jdbc>




          • 2. Re: Custom Class Array with Jboss.net
            carcudi

            After a search through a series of WS-related sites, I modified my web-service.xml file (not via Xdoclet, unfortunately), to contain a type-def for an ARRAY of the complex type in question. However, the same error seems to occur. I think it may have something to do with the fact that Axis is deploying the complex type without a prefix and the Array of that type with the default ns1: prefix.

            How can I link the two definitions together?
            web-service.xml

             <?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="cert" xmlns="http://xml.apache.org/axis/wsdd/" targetNamespace="http://cvs.east.frontiercorp.com/cert" xmlns:cert="http://cvs.east.frontiercorp.com/cert" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
            - <!--
             The following are declarations of service endpoints targetted to
             session beans
            
             -->
            - <service name="ListProvider" provider="Handler">
             <parameter name="handlerClass" value="org.jboss.net.axis.server.EJBProvider" />
             <parameter name="beanJndiName" value="cap/cert/ejb/ListProviderLocalEjb" />
             <parameter name="allowedMethods" value="getList getListValue" />
            - <requestFlow name="ListProviderRequest">
            - <handler type="java:org.jboss.net.axis.server.JBossAuthenticationHandler">
             <parameter name="securityDomain" value="java:/jaas/cap_hybrid" />
             <parameter name="validateUnauthenticatedCalls" value="false" />
             </handler>
            - <handler type="java:org.jboss.net.axis.server.JBossAuthorizationHandler">
             <parameter name="securityDomain" value="java:/jaas/cap_hybrid" />
             <parameter name="allowedRoles" value="Cert_Admin, Cert_User, Cert_ReadOnly" />
             </handler>
            - <!-- this is a temporary solution to allow immediate (de-)serialization of entity beans in the web service layer
             -->
             <handler type="java:org.jboss.net.axis.server.TransactionRequestHandler" />
             </requestFlow>
            - <responseFlow name="ListProviderResponse">
            - <!-- this is a temporary solution to allow immediate (de-)serialization of entity beans in the web service layer
             -->
             <handler type="java:org.jboss.net.axis.server.SerialisationResponseHandler" />
             <handler type="java:org.jboss.net.axis.server.TransactionResponseHandler" />
             </responseFlow>
             </service>
            - <service name="NpaNxxTest" provider="Handler">
             <parameter name="handlerClass" value="org.jboss.net.axis.server.EJBProvider" />
             <parameter name="beanJndiName" value="cap/cert/ejb/NpaNxxTestEjbLocal" />
             <parameter name="allowedMethods" value="getNpaNxxTest getNpaNxxObjectTest" />
            - <operation name="getNpaNxxTest" returnQName="MapGreeting">
             <parameter name="npa" />
             <parameter name="nxx" />
             </operation>
            - <operation name="getNpaNxxObjectTest" returnQName="NpaNxxGreeting">
             <parameter name="npa" />
             <parameter name="nxx" />
             </operation>
            - <requestFlow name="NpaNxxTestRequest">
            - <handler type="java:org.jboss.net.axis.server.JBossAuthenticationHandler">
             <parameter name="securityDomain" value="java:/jaas/cap_hybrid" />
             <parameter name="validateUnauthenticatedCalls" value="false" />
             </handler>
            - <handler type="java:org.jboss.net.axis.server.JBossAuthorizationHandler">
             <parameter name="securityDomain" value="java:/jaas/cap_hybrid" />
             <parameter name="allowedRoles" value="Cert_Admin, Cert_User, Cert_ReadOnly" />
             </handler>
            - <!-- this is a temporary solution to allow immediate (de-)serialization of entity beans in the web service layer
             -->
             <handler type="java:org.jboss.net.axis.server.TransactionRequestHandler" />
             </requestFlow>
            - <responseFlow name="NpaNxxTestResponse">
            - <!-- this is a temporary solution to allow immediate (de-)serialization of entity beans in the web service layer
             -->
             <handler type="java:org.jboss.net.axis.server.SerialisationResponseHandler" />
             <handler type="java:org.jboss.net.axis.server.TransactionResponseHandler" />
             </responseFlow>
             </service>
            - <service name="WebServiceTest" provider="Handler">
             <parameter name="handlerClass" value="org.jboss.net.axis.server.EJBProvider" />
             <parameter name="beanJndiName" value="cap/cert/ejb/WebServiceTestEjbLocal" />
             <parameter name="allowedMethods" value="getName" />
            - <operation name="getName" returnQName="Greeting">
             <parameter name="Name" />
             </operation>
            - <requestFlow name="WebServiceTestRequest">
            - <handler type="java:org.jboss.net.axis.server.JBossAuthenticationHandler">
             <parameter name="securityDomain" value="java:/jaas/cap_hybrid" />
             <parameter name="validateUnauthenticatedCalls" value="false" />
             </handler>
            - <handler type="java:org.jboss.net.axis.server.JBossAuthorizationHandler">
             <parameter name="securityDomain" value="java:/jaas/cap_hybrid" />
             <parameter name="allowedRoles" value="Cert_Admin, Cert_User, Cert_ReadOnly" />
             </handler>
            - <!-- this is a temporary solution to allow immediate (de-)serialization of entity beans in the web service layer
             -->
             <handler type="java:org.jboss.net.axis.server.TransactionRequestHandler" />
             </requestFlow>
            - <responseFlow name="WebServiceTestResponse">
            - <!-- this is a temporary solution to allow immediate (de-)serialization of entity beans in the web service layer
             -->
             <handler type="java:org.jboss.net.axis.server.SerialisationResponseHandler" />
             <handler type="java:org.jboss.net.axis.server.TransactionResponseHandler" />
             </responseFlow>
             </service>
            - <service name="ComplexWebServiceTest" provider="Handler">
             <parameter name="handlerClass" value="org.jboss.net.axis.server.EJBProvider" />
             <parameter name="beanJndiName" value="cap/cert/ejb/ComplexWebServiceTestEjbLocal" />
             <parameter name="allowedMethods" value="getName getMap getUser" />
            - <operation name="getName" returnQName="Greeting">
             <parameter name="Name" />
             </operation>
            - <operation name="getMap" returnQName="MapGreeting">
             <parameter name="someData" />
             </operation>
            - <operation name="getUser" returnQName="UserGreeting">
             <parameter name="name" />
             </operation>
            - <requestFlow name="ComplexWebServiceTestRequest">
            - <handler type="java:org.jboss.net.axis.server.JBossAuthenticationHandler">
             <parameter name="securityDomain" value="java:/jaas/cap_hybrid" />
             <parameter name="validateUnauthenticatedCalls" value="false" />
             </handler>
            - <handler type="java:org.jboss.net.axis.server.JBossAuthorizationHandler">
             <parameter name="securityDomain" value="java:/jaas/cap_hybrid" />
             <parameter name="allowedRoles" value="Cert_Admin, Cert_User, Cert_ReadOnly" />
             </handler>
            - <!-- this is a temporary solution to allow immediate (de-)serialization of entity beans in the web service layer
             -->
             <handler type="java:org.jboss.net.axis.server.TransactionRequestHandler" />
             </requestFlow>
            - <responseFlow name="ComplexWebServiceTestResponse">
            - <!-- this is a temporary solution to allow immediate (de-)serialization of entity beans in the web service layer
             -->
             <handler type="java:org.jboss.net.axis.server.SerialisationResponseHandler" />
             <handler type="java:org.jboss.net.axis.server.TransactionResponseHandler" />
             </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="cert:User" type="java:com.frontiercorp.bss.cap.cert.webservice.User" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
             <typeMapping qname="cert:NpaNxxTest" type="java:com.frontiercorp.bss.cap.cert.webservice.NpaNxxTest" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
             <typeMapping qname="cert:ArrayOfNpaNxxTest" type="java:com.frontiercorp.bss.cap.cert.webservice.NpaNxxTest[]" serializer="org.apache.axis.encoding.ser.ArraySerializerFactory" deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://cvs.east.frontiercorp.com/cert" />
            - <!-- There follow merged custom web service descriptions
             -->
             </deployment>


            WSDL for NpaNxxTest service:
            <?xml version="1.0" encoding="UTF-8" ?>
            - <wsdl:definitions targetNamespace="http://localhost:8080/jboss-net/services/NpaNxxTest" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:8080/jboss-net/services/NpaNxxTest" xmlns:intf="http://localhost:8080/jboss-net/services/NpaNxxTest" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns1="http://cvs.east.frontiercorp.com/cert" xmlns:tns2="http://net.jboss.org/jmx" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            - <wsdl:types>
            - <schema targetNamespace="http://cvs.east.frontiercorp.com/cert" xmlns="http://www.w3.org/2001/XMLSchema">
             <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
            - <complexType name="User">
            - <sequence>
             <element name="name" nillable="true" type="xsd:string" />
             </sequence>
             </complexType>
            - <complexType name="NpaNxxTest">
            - <sequence>
             <element name="BILLING_CODE" nillable="true" type="xsd:string" />
             <element name="PRODUCT_NM" nillable="true" type="xsd:string" />
             <element name="TARIFF_AMT" nillable="true" type="xsd:string" />
             <element name="TARIFF_PRODUCT_DESC" nillable="true" type="xsd:string" />
             </sequence>
             </complexType>
            - <complexType name="ArrayOfNpaNxxTest">
            - <complexContent>
            - <restriction base="soapenc:Array">
             <attribute ref="soapenc:arrayType" wsdl:arrayType="tns1:NpaNxxTest[]" />
             </restriction>
             </complexContent>
             </complexType>
             </schema>
            - <schema targetNamespace="http://net.jboss.org/jmx" xmlns="http://www.w3.org/2001/XMLSchema">
             <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
            - <simpleType name="ObjectNameType">
            - <simpleContent>
             <extension base="xsd:string" />
             </simpleContent>
             </simpleType>
             </schema>
            - <schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema">
             <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
            - <complexType name="mapItem">
            - <sequence>
             <element name="key" nillable="true" type="xsd:string" />
             <element name="value" nillable="true" type="xsd:string" />
             </sequence>
             </complexType>
            - <complexType name="Map">
            - <sequence>
             <element maxOccurs="unbounded" minOccurs="0" name="item" type="apachesoap:mapItem" />
             </sequence>
             </complexType>
             </schema>
            - <schema targetNamespace="http://localhost:8080/jboss-net/services/NpaNxxTest" xmlns="http://www.w3.org/2001/XMLSchema">
             <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
            - <complexType name="ArrayOf_apachesoap_Map">
            - <complexContent>
            - <restriction base="soapenc:Array">
             <attribute ref="soapenc:arrayType" wsdl:arrayType="apachesoap:Map[]" />
             </restriction>
             </complexContent>
             </complexType>
             </schema>
             </wsdl:types>
            - <wsdl:message name="getNpaNxxTestResponse">
             <wsdl:part name="MapGreeting" type="impl:ArrayOf_apachesoap_Map" />
             </wsdl:message>
            - <wsdl:message name="getNpaNxxTestRequest">
             <wsdl:part name="npa" type="xsd:int" />
             <wsdl:part name="nxx" type="xsd:int" />
             </wsdl:message>
            - <wsdl:message name="getNpaNxxObjectTestResponse">
             <wsdl:part name="NpaNxxGreeting" type="tns1:ArrayOfNpaNxxTest" />
             </wsdl:message>
            - <wsdl:message name="getNpaNxxObjectTestRequest">
             <wsdl:part name="npa" type="xsd:int" />
             <wsdl:part name="nxx" type="xsd:int" />
             </wsdl:message>
            - <wsdl:portType name="NpaNxxTestEjbLocal">
            - <wsdl:operation name="getNpaNxxTest" parameterOrder="npa nxx">
             <wsdl:input message="impl:getNpaNxxTestRequest" name="getNpaNxxTestRequest" />
             <wsdl:output message="impl:getNpaNxxTestResponse" name="getNpaNxxTestResponse" />
             </wsdl:operation>
            - <wsdl:operation name="getNpaNxxObjectTest" parameterOrder="npa nxx">
             <wsdl:input message="impl:getNpaNxxObjectTestRequest" name="getNpaNxxObjectTestRequest" />
             <wsdl:output message="impl:getNpaNxxObjectTestResponse" name="getNpaNxxObjectTestResponse" />
             </wsdl:operation>
             </wsdl:portType>
            - <wsdl:binding name="NpaNxxTestSoapBinding" type="impl:NpaNxxTestEjbLocal">
             <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
            - <wsdl:operation name="getNpaNxxTest">
             <wsdlsoap:operation soapAction="NpaNxxTest" />
            - <wsdl:input name="getNpaNxxTestRequest">
             <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/jboss-net/services/NpaNxxTest" use="encoded" />
             </wsdl:input>
            - <wsdl:output name="getNpaNxxTestResponse">
             <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/jboss-net/services/NpaNxxTest" use="encoded" />
             </wsdl:output>
             </wsdl:operation>
            - <wsdl:operation name="getNpaNxxObjectTest">
             <wsdlsoap:operation soapAction="NpaNxxTest" />
            - <wsdl:input name="getNpaNxxObjectTestRequest">
             <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/jboss-net/services/NpaNxxTest" use="encoded" />
             </wsdl:input>
            - <wsdl:output name="getNpaNxxObjectTestResponse">
             <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/jboss-net/services/NpaNxxTest" use="encoded" />
             </wsdl:output>
             </wsdl:operation>
             </wsdl:binding>
            - <wsdl:service name="NpaNxxTestEjbLocalService">
            - <wsdl:port binding="impl:NpaNxxTestSoapBinding" name="NpaNxxTest">
             <wsdlsoap:address location="http://localhost:8080/jboss-net/services/NpaNxxTest" />
             </wsdl:port>
             </wsdl:service>
             </wsdl:definitions>
            



            • 3. Re: Custom Class Array with Jboss.net
              carcudi

              And the answer is: Register the serializers and deserializers programmatically through the client:

              call.registerTypeMapping
              
              (com.frontiercorp.bss.cap.cert.webservice.NpaNxxTest[].class,
              
              new javax.xml.namespace.QName("http://cvs.east.frontiercorp.com/cert","NpaNxxTest"),
              
              new org.apache.axis.encoding.ser.ArraySerializerFactory(),
              
              new org.apache.axis.encoding.ser.ArrayDeserializerFactory());
              
              
              
              


              Next up, figuring out how to modify the jboss-net xdoclet generator to default the registration of Arrays of complex types whenever a complex type is registered.