Hi!

I can't get my service to work with sending arraylist. It works fine sending
just one object but not the list
here is my client code
=============================================
package samples.demo;

import java.util.ArrayList;
import java.util.List;

import javax.xml.namespace.QName;

import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;


public class WeatherRPCClient {

    public static void main(String[] args1) throws AxisFault {

        RPCServiceClient serviceClient = new RPCServiceClient();

        Options options = serviceClient.getOptions();

       EndpointReference targetEPR = new
EndpointReference("http://localhost:8080/axis2-book-1.1/services/WeatherService";);
       options.setTo(targetEPR);

        // Setting the weather
        QName opSetWeather = new QName("http://demo.samples";, "setWeather");

        Weather w = new Weather();

        w.setTemperature((float)39.6);
        w.setForecast("Cloudy with showers");
        w.setRain(true);
        w.setHowMuchRain((float)4.5);
        
        Weather w1 = new Weather();

        w1.setTemperature((float)4.6);
        w1.setForecast("sunny day with showers");
        w1.setRain(true);
        w1.setHowMuchRain((float)2.5);
        
        ArrayList<Weather> l = new ArrayList<Weather>();
        l.add(w);
        l.add( w1 );

        Object[] opSetWeatherArgs = new Object[] { l  };

        //serviceClient.invokeBlocking(opSetWeather, opSetWeatherArgs);
        serviceClient.invokeRobust(opSetWeather, opSetWeatherArgs);
        

        // Getting the weather
        QName opGetWeather = new QName("http://demo.samples";, "getWeather");

        Object[] opGetWeatherArgs = new Object[] { };
        Class[] returnTypes = new Class[] { Weather.class };
        
        
        Object[] response = serviceClient.invokeBlocking(opGetWeather,
                opGetWeatherArgs, returnTypes);
        
        
        Weather result = (Weather) response[0];
        
        if (result == null) {
            System.out.println("Weather didn't initialize!");
            return;
        }
        
        // Displaying the result
        System.out.println("Id               : " +
                result.getId());
        System.out.println("Temperature               : " +
                           result.getTemperature());
        System.out.println("Forecast                  : " +
                           result.getForecast());
        System.out.println("Rain                      : " +
                           result.getRain());
        System.out.println("How much rain (in inches) : " +
                           result.getHowMuchRain());
        
        
        result.setForecast( "hehehe" );
        opSetWeatherArgs = new Object[] { result };

        //serviceClient.invokeBlocking(opSetWeather, opSetWeatherArgs);
        serviceClient.invokeRobust(opSetWeather, opSetWeatherArgs);

        
    }
}
=============================================


And here is my service

=============================================
package samples.demo;

import java.util.ArrayList;

import org.hibernate.Session;

public class WeatherService{
   
    public void setWeather(ArrayList<Weather> weathers){
        
        Session session = HibernateUtil.getSession();
        HibernateUtil.beginTransaction();
        
        for( Weather weather : weathers ){
        
        if( weather.getId() != null ){
                session.update(weather);
        }else{
                session.persist(weather);
        }
        }
        
        HibernateUtil.commitTransaction();
        
        HibernateUtil.closeSession();
        
        
    }

    public Weather getWeather(){
    
        Session session = HibernateUtil.getSession();
        Weather w = ( Weather ) session.get(Weather.class, new Long( 1 ));
        HibernateUtil.closeSession();
        
        
        
        return w;
    }
}
=============================================

When I'm calling setWeather I get this except

ijava.lang.ClassCastException: org.apache.axiom.om.impl.llom.OMElementImpl
cannot be cast to samples.demo.Weather
at samples.demo.WeatherService.setWeather(WeatherService.java:14)


seems like when I put Weather class In arraylist it gets cast?

-- 
View this message in context: 
http://www.nabble.com/RPCServiceClient-and-ArrayList-tf4390198.html#a12517244
Sent from the Axis - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to