I've got object Order with an array of OrderOwner objects.
All objets are BeanPatterns.
I would like to send them beetwen Client and WebService useing 
org.apache.axis.encoding.ser.BeanSerializer.
 
when I deploy WS in Tomcat with Axis everything is OK. 
I can send Order with array od OrderOwners.

But when I trying deploy WS in JBoss-4.0.0 I've got errors during deserializing.

Could You help me?

---------------------- error --------------------------------

call.invoke() throws: IllegalArgumentException: array element type mismatch

jboss console:
15:12:36,343 ERROR [BeanPropertyTarget] Could not convert 
[Lcom.myapp.OrderOwner; to bean field 'owner[0]', type [Lcom.myapp.OrderOwner;
15:12:36,343 ERROR [RPCInvocation] java.lang.IllegalArgumentException: array 
element type mismatch
java.lang.IllegalArgumentException: array element type mismatch



--------------- client: -------------------
        
...
        Order order =  new Order();
        order.setCustomerName("Glen Daniels");
        OrderOwner[] oo = {new OrderOwner()};
        oo[0].setName("Mikey Mouse");
        order.setOrderName("TESTTEST-2");
        order.setOwner((OrderOwner[])oo);
...
        Service  service = new Service();
        Call     call    = (Call) service.createCall();
        QName    qn      = new QName( "urn:BeanService", "Order" );
        QName    qn2      = new QName( "urn:BeanService", "OrderOwner" );

        call.registerTypeMapping(Order.class, qn,
                      new 
org.apache.axis.encoding.ser.BeanSerializerFactory(Order.class, qn),        
                      new 
org.apache.axis.encoding.ser.BeanDeserializerFactory(Order.class, qn));        

        call.registerTypeMapping(OrderOwner.class, qn2,
                      new 
org.apache.axis.encoding.ser.BeanSerializerFactory(OrderOwner.class, qn2 ),     
   
                      new 
org.apache.axis.encoding.ser.BeanDeserializerFactory(OrderOwner.class, qn2));   
     
 
        Order result = null;
        String endpoint = "http://localhost:8080/simple-ws4ee/exactpath/jse";;
        try {
            call.setTargetEndpointAddress( new java.net.URL(endpoint) );
            call.setOperationName( new QName("OrderProcessor", "processOrder") 
);
            call.addParameter( "arg1", qn, ParameterMode.IN );
            call.setReturnType( qn, Order.class);
            result = (Order) call.invoke( new Object[] { new Order[] { order } 
} );
        } catch (AxisFault fault) {
            //result = "Error : " + fault.toString();
            System.out.println("er = "+fault.toString());
        }

---------------- classes --------------------

public class Order extends SimpleOrder
{
    
    private String customerName;

    private String shippingAddress;
    
    private OrderOwner[] owner;
    
    public Order() {}
    
    public void setOwner(OrderOwner[] owner) {
        this.owner = owner;
    }
    public OrderOwner[] getOwner() {
        return this.owner;
    }
    public String getCustomerName() { return customerName; }
    
    public void setCustomerName(String name) { customerName = name; }
    
    public String getShippingAddress() { return shippingAddress; }
    
    public void setShippingAddress(String address) { shippingAddress = address; 
}

}
public class OrderOwner {
    private String name = "";

    public OrderOwner() {
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String toString() {
        return this.name;
    }
}
public class SimpleOrder {
    private String orderName = "";
 
    public SimpleOrder() {}

    public void setOrderName(String orderName) {
        this.orderName = orderName;
    }

    public String getOrderName() {
        return this.orderName;
    }    
}

--------- WS implements interface (nothing special)----------------
public interface BeanService extends java.rmi.Remote {
    public Order processOrder(Order []orders) throws 
         java.rmi.RemoteException;
}

---------jaxrpc-mapping.xml -------------------
<?xml version='1.0' encoding='UTF-8' ?>
<java-wsdl-mapping
  xmlns="http://java.sun.com/xml/ns/j2ee";
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
               http://www.ibm.com/webservices/xsd/j2ee_jaxrpc_mapping_1_1.xsd";
  version="1.1">

  <package-mapping>
    <package-type>com.myapp</package-type>
    http://myapp.com
  </package-mapping>

</java-wsdl-mapping>

------------------ ws4ee-deployment.xml--------------------
  <deployment
    xmlns='http://xml.apache.org/axis/wsdd/'
    xmlns:java='http://xml.apache.org/axis/wsdd/providers/java'
    xmlns:soap='http://schemas.xmlsoap.org/soap/encoding/'
    xmlns:xsi='http://www.w3.org/2000/10/XMLSchema-instance'
    xmlns:xsd='http://www.w3.org/2001/XMLSchema'>

     <typeMapping 
        qname="myNS:Order" 
        xmlns:myNS="urn:BeanService" 
        serializer='org.apache.axis.encoding.ser.BeanSerializerFactory'
        deserializer='org.apache.axis.encoding.ser.BeanDeserializerFactory'
        type="java:com.myapp.Order"
        encodingStyle=''
     />
     <typeMapping 
        qname="myNS:OrderOwner" 
        xmlns:myNS="urn:BeanService" 
        serializer='org.apache.axis.encoding.ser.BeanSerializerFactory'
        deserializer='org.apache.axis.encoding.ser.BeanDeserializerFactory'
        type="java:com.myapp.OrderOwner"
        encodingStyle=''
     />

 
---------------------- generated by Java2WSDL file .wsdl --------------------

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://myapp.com"; 
xmlns:impl="http://myapp.com"; xmlns:intf="http://myapp.com"; 
xmlns:apachesoap="http://xml.apache.org/xml-soap"; 
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns="http://schemas.xmlsoap.org/wsdl/";>
 <wsdl:types>
  
   
   
    
     
    
   
   
    
     
    
   
   
    
     
      <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:OrderOwner[]"/>
     
    
   
   
    
     
      
       
       
       
      
     
    
   
   
    
     
      <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:Order[]"/>
     
    
   
  
 </wsdl:types>

   <wsdl:message name="processOrderRequest">

      <wsdl:part name="in0" type="impl:ArrayOfOrder"/>

   </wsdl:message>

   <wsdl:message name="processOrderResponse">

      <wsdl:part name="processOrderReturn" type="impl:Order"/>

   </wsdl:message>

   <wsdl:portType name="BeanService">

      <wsdl:operation name="processOrder" parameterOrder="in0">

         <wsdl:input name="processOrderRequest" 
message="impl:processOrderRequest"/>

         <wsdl:output name="processOrderResponse" 
message="impl:processOrderResponse"/>

      </wsdl:operation>

   </wsdl:portType>

   <wsdl:binding name="BeanServiceSoapBinding" type="impl:BeanService">

      <wsdlsoap:binding style="rpc" 
transport="http://schemas.xmlsoap.org/soap/http"/>

      <wsdl:operation name="processOrder">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="processOrderRequest">

            <wsdlsoap:body use="literal" namespace="http://myapp.com"/>

         </wsdl:input>

         <wsdl:output name="processOrderResponse">

            <wsdlsoap:body use="literal" namespace="http://myapp.com"/>

         </wsdl:output>

      </wsdl:operation>

   </wsdl:binding>

   <wsdl:service name="BeanServiceService">

      <wsdl:port name="BeanService" binding="impl:BeanServiceSoapBinding">

         <wsdlsoap:address 
location="http://localhost:8080/ws4ee/services/BeanService"/>

      </wsdl:port>

   </wsdl:service>

</wsdl:definitions>

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


View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3860744#3860744

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3860744


-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
JBoss-Development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to