Title: RE: How to use DateSerializer?
Hi,
 
I wanted to use BeanSerializer and had only problems.
So I had a look at the example 5 (BeanService) of axis userguide and it works when a serialized Bean-Instance was sent to server.
 
Then I extended a method to Service that should give me an instance of the Order-Bean, but this doesn't work!
Has anybody seen this problem? I think this is a BUG of axis, isn't it?
 
Regards
Christian
 
 
If anybody wants to view my changes, here they are:
 
BeanServicve.java:
 
    public Order getOrder()
    {
       
        Order order = new Order();
        order.setCustomerName("Glen Daniels");
        order.setShippingAddress("275 Grove Street, Newton, MA");
       
        String [] items = new String[] { "mp3jukebox", "1600mahBattery" };
        int [] quantities = new int [] { 1, 4, 5 };
       
        order.setItemCodes(items);
        order.setQuantities(quantities);   
       
        return order;
    }
 
Client.java:
 
        Service  service = new Service();
        Call     call    = (Call) service.createCall();
        QName    qn      = new QName( "urn:BeanService", "Order" );
 
        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));       
        //String result;
        Order result;
        try {
            call.setTargetEndpointAddress( new java.net.URL(options.getURL()) );
            //call.setOperationName( new QName("OrderProcessor", "processOrder") );
            call.setOperationName( new QName("OrderProcessor", "getOrder") );
            //call.addParameter( "arg1", qn, ParameterMode.IN );
            call.addParameter( "arg1", qn, ParameterMode.OUT );
            call.setReturnType( qn );
 
            //result = (String) call.invoke( new Object[] { order } );
            //System.out.println(result);
            result = (Order) call.invoke( new Object[] {} );
            System.out.println(result.getCustomerName());
        } catch (AxisFault fault) {
            System.out.println("Error : " + fault.toString());
        }
 
deploy.wsdd
 
  <parameter name="allowedMethods" value="*"/>

Reply via email to