Hi,

I use the code below to access an axis WebService. 
If I create one instance of these class and call the get method (more than once), all 
results (Flight[]) aren't garbage collected.
What am I doing wrong or what could be done in another way?

Thanks for your help, 
Manuel




public class Flights implements FlightsIF {

        private Call call;

        public Flights(ConfigFile conf) {
                this.conf = conf;
                try {
                        String endpoint = "URL://Flights";
                        Service service = new Service();
                        call = (Call) service.createCall();
                        call.setTargetEndpointAddress(new java.net.URL(endpoint));
                        QName qn = new QName( "urn:Flights", "Flight" );
                        BeanSerializerFactory bsf=new 
BeanSerializerFactory(Flight.class, qn);
                        BeanDeserializerFactory bsdf=new 
BeanDeserializerFactory(Flight.class,qn);
                        call.registerTypeMapping(Flight.class, qn, bsf, bsdf);
                        call.setOperationName( new QName("Flights", "get"));
                        call.setReturnType( XMLType.SOAP_ARRAY );
                } 
                catch (Exception e) {
                        e.printStackTrace();
                }
                
        }

        public Flight[] get() {
                return this.get(this.defaultBase);
        }

        public synchronized Flight[] get(String boarding) {
                Flight[] flights=null;
                try {
                        flights = (Flight[]) call.invoke(new Object[] 
{boarding.toUpperCase()});
                } 
                catch (RemoteException e) {
                        e.printStackTrace();
                }
                return flights;
        }

}

Reply via email to