Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    11

    Problema Web Service Axis

    Salve ho una classe che contiene il mio servizio web:
    public class SimulatorServer {

    private Map<String,Ab> sims = new HashMap<String,Ab>();

    public void addSimulator(String simid, Ab sim) throws InstantiationException, IllegalAccessException{
    sims.put(simid, sim);
    }
    .....
    }
    Quindi quando chiamo il metodo addSimulator devo passargli un oggetto Ab:

    public abstract class Ab implements Serializable {

    private String istance;

    public String getIstance() {
    return istance;
    }

    public void setIstance(String i) {
    istance=i;
    }

    }
    Questo è il mio client che invia un oggetto Ab:
    public static void main(String[] args) throws MalformedURLException, RemoteException, ServiceException {
    String address = "http://localhost:8080/SINPL/services/SimulatorServer";
    URL endPointWS = new URL(address);
    Service service = new Service();

    Call call =(Call)service.createCall();
    call.removeAllParameters();
    call.setTargetEndpointAddress(endPointWS);
    call.addParameter("simid", XMLType.XSD_STRING, ParameterMode.IN);
    QName qname = new QName( "urn:SimulatorServer", "Ab" );
    call.registerTypeMapping(Ab.class, qname,
    new org.apache.axis.encoding.ser.BeanSerializerFactory (Ab.class, qname),
    new org.apache.axis.encoding.ser.BeanDeserializerFacto ry(Ab.class, qname));
    call.addParameter("sim", qname, ParameterMode.IN);
    call.setOperationName("addSimulator");
    call.setReturnType(XMLType.AXIS_VOID);
    Ab dd = new BufferServant();
    dd.setIstance("lll");
    call.invoke(new Object[]{"a",dd});
    }
    Invio un istanza di una sottocalsse di Ab che è BufferServant e mi da errore:
    Deserializing parameter 'sim': could not find deserializer for type {urn:SimulatorServer}Ab

    Non sapete come si passano parametri che non siano tipi standard ? Grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    11

    Alternativa

    In alternativa la classe client in realtà si trova sullo stessa macchina della classe web Service, quindi potrebbe chiamare direttamente il metodo addSimulator sull'oggetto SimulatorServer, ma questo non riesco a farlo funzionare perchè sembra che il web Service non memorizzi le istanze, se qualcuno ha qualche idea...
    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.