Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    5

    WebServices Tomcat+Axis+soap

    Salve a tutti,
    sto creando un Web service in java e ho un piccolo problema quando mando in esecuzione il client che mi interroga un server in locale...
    Nel momento in cui provo a fare il login mi viene catturata una eccezione java.lang.NullPointerException su un cast...il codice è:

    try {
    URL url = new URL("http://localhost:8080/soap/servlet/rpcrouter");
    //COSTRUZIONE DELLA CHIAMATA
    Call call = new Call();
    call.setTargetObjectURI("urn:Server");
    call.setMethodName("verifica"); //nome del metodo che restituisce una stringa
    call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC );

    //CREAZIONE PARAMETRI
    Vector<Parameter> parametri = new Vector<Parameter>();

    String user = UserCliente.getText();
    String pass = String.valueOf(PasswordCliente.getPassword());

    parametri.removeAllElements();
    parametri.addElement(new Parameter("nome_utente", String.class, user, null));
    parametri.addElement(new Parameter("password", String.class, pass, null));
    parametri.addElement(new Parameter("tabella", String.class, "Amministratori", null));

    call.setParams(parametri);//AGGIUNTA DEI PARAMETRI DA PASSARE

    try {
    //INVOCO L'RPC
    Response risp = call.invoke(url, "");

    //OTTENGO LA RISPOSTA DAL SERVER
    //CONTROLLO SE HA GENERATO UNA FAULT
    if (risp.generatedFault()) {
    Fault fault = risp.getFault();
    System.err.println("Call failed");
    System.err.println("Code: " + fault.getFaultCode());
    System.err.println("Description: " + fault.getFaultString());
    } else {
    Parameter par = risp.getReturnValue();
    String msg = (String) par.getValue(); //QUI MI VIENE GENERATA L'ECCEZIONE...
    new MainAmministratori().setVisible(true);
    }
    } catch (SOAPException e) {
    System.out.println("Errore causato: (" + e.getFaultCode() + "):" + e.getMessage());
    msg ="errore";
    }
    } catch (MalformedURLException ex) {
    System.out.println("H1 " + ex.getMessage());
    }

    L'eccezione generata è:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at LoginAmministratori.jButton1ActionPerformed(LoginA mministratori.java:269)
    at LoginAmministratori.access$000(LoginAmministratori .java:24)
    at LoginAmministratori$1.actionPerformed(LoginAmminis tratori.java:86)
    at javax.swing.AbstractButton.fireActionPerformed(Abs tractButton.java:1995)
    at javax.swing.AbstractButton$Handler.actionPerformed (AbstractButton.java:2318)
    at javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultB uttonModel.java:242)
    at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(BasicButtonListener.java:236)
    at java.awt.Component.processMouseEvent(Component.jav a:6041)
    at javax.swing.JComponent.processMouseEvent(JComponen t.java:3265)
    at java.awt.Component.processEvent(Component.java:580 6)
    at java.awt.Container.processEvent(Container.java:205 8)
    at java.awt.Component.dispatchEventImpl(Component.jav a:4413)
    at java.awt.Container.dispatchEventImpl(Container.jav a:2116)
    at java.awt.Component.dispatchEvent(Component.java:42 43)
    at java.awt.LightweightDispatcher.retargetMouseEvent( Container.java:4322)
    at java.awt.LightweightDispatcher.processMouseEvent(C ontainer.java:3986)
    at java.awt.LightweightDispatcher.dispatchEvent(Conta iner.java:3916)
    at java.awt.Container.dispatchEventImpl(Container.jav a:2102)
    at java.awt.Window.dispatchEventImpl(Window.java:2440 )
    at java.awt.Component.dispatchEvent(Component.java:42 43)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java: 599)
    at java.awt.EventDispatchThread.pumpOneEventForFilter s(EventDispatchThread.java:273)
    at java.awt.EventDispatchThread.pumpEventsForFilter(E ventDispatchThread.java:183)
    at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:173)
    at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:168)
    at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:160)
    at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:121)

    Mi potreste spiegare come posso risolvere questo problema..io non so proprio dove mettere più le mani....Utilizzo Netbeans 6.0 con Jdk 1.4 Tomcat 5.5.9 Soap 2.1 Axis 1.4....
    Grazie in anticipo a tutti...
    Splair

  2. #2
    Ad occhio direi che l'eccezione e' lanciata dal codice dell'interfaccia grafica, non dalla logica per la gestione del WS, dai un'occhiata a quello e verifica che l'oggetto che lancia la null exception sia valorizzato in qualche modo.
    Saluti,
    Pasquale Congiustì.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    5
    ciao, secondo me l'errore è dovuto al fatto che il server non è up...(lo deduco anche dal fatto che monitor di SOAP non mi registra nessuna chiamata verso il server) e mi vieni restituito quindi un oggetto nullo....

    forse sbaglio qualche passaggio nel fare il deploy...io faccio così..

    1) Copia della classe server in soap/WEB-INF/classes

    2) deploy dal soap admin in cui inserisco nome del servizio, metodi, tipo statico e applicazione.

    3) in axis copio il file del server .java in WEB-INF/ e lo rinomino il jws per ottenere il WSDL con *.jws?WSDL

    Allegati: Immagine del soap Admin....

    [img=http://img174.imageshack.us/img174/7099/soapadminmo0.th.jpg]

    forse qualcosa la sbaglio sicuramente....
    ad alcuni miei amici funziona cosi ma io non mi sono mai fidato più di tanto quindi...potreste darmi una mano??? grazie mille in anticipo a tutti voi...
    Splair

  4. #4
    Il null pointer exception e' lanciato qui:

    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at LoginAmministratori.jButton1ActionPerformed(LoginA mministratori.java:269)

    posta quelle righe di codice (classe LoginAmministratori.java), cosi' vediamo.
    Saluti,
    Pasquale Congiustì.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    5
    Il codice l'ho postato sopra....questo è praticamente tutto il codice del tasto di login.....

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    try {
    URL address= new URL("http://localhost:8080/soap/servlet/rpcrouter");

    //Costruzione della chiamata
    Call chiamata = new Call();
    chiamata.setTargetObjectURI("urn:Server");
    chiamata.setMethodName("verifica");
    chiamata.setEncodingStyleURI(Constants.NS_URI_SOAP _ENC);

    //creazione parametri che dovro' passare al soap
    Vector<Parameter> params = new Vector<Parameter>();
    String u = UserCliente.getText();
    String p = String.valueOf(PasswordCliente.getPassword());

    params.addElement(new Parameter("utente", String.class, u, null));
    params.addElement(new Parameter("password", String.class, p, null));
    params.addElement(new Parameter("tabella", String.class, "Cliente", null));

    chiamata.setParams(params);//parametri passati al soap

    try {
    //Invocazione RPC
    Response respons = chiamata.invoke(address, "");

    //qui ho la risposta inviata dal server
    Parameter par = respons.getReturnValue();
    String value = (String) par.getValue();
    if (value.equals("si")) {
    new MainCliente(UserCliente.getText());
    this.dispose();
    } else if (value.equals("no")) {
    JOptionPane.showMessageDialog(null, "I dati inseriti non sono corretti", "Errore", JOptionPane.ERROR_MESSAGE);
    PasswordCliente.setText("");
    UserCliente.setText("");
    }
    } catch (SOAPException e) {
    System.out.println("Errore causato: ("+e.getFaultCode()+"):"+e.getMessage());
    }
    } catch (MalformedURLException ex) {
    System.out.println("H1 "+ex.getMessage());
    }
    }

    grazie ancora...
    Splair

  6. #6
    Il problema potrebbe essere sul server in quanto ti restiutisce un oggetto di tipo Parameter non inizializzato (da risp.getReturnValue(); )

    secondo me dovresti controllare il server x vedere cose ti restiuisce

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    5
    Ho risolto l'eccezione facendo così....
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    String msg="";
    try {
    URL url = new URL("http://localhost:8888/soap/servlet/rpcrouter");
    //COSTRUZIONE DELLA CHIAMATA
    Call call = new Call();
    call.setTargetObjectURI("urn:Server");
    call.setMethodName("verifica");
    call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC );

    //CREAZIONE PARAMETRI
    Vector<Parameter> parametri = new Vector<Parameter>();

    String user = UserCliente.getText();
    String pass = String.valueOf(PasswordCliente.getPassword());

    parametri.removeAllElements();
    parametri.addElement(new Parameter("nome_utente", String.class, user, null));
    parametri.addElement(new Parameter("password", String.class, pass, null));
    parametri.addElement(new Parameter("tabella", String.class, "Amministratori", null));

    call.setParams(parametri);//AGGIUNTA DEI PARAMETRI DA PASSARE

    try {
    //INVOCO L'RPC
    Response risp = call.invoke(url, "");
    //OTTENGO LA RISPOSTA DAL SERVER
    //CONTROLLO SE HA GENERATO UNA FAULT
    if (risp.generatedFault()) {
    Fault fault = risp.getFault();
    System.err.println("Call failed");
    System.err.println("Code: " + fault.getFaultCode());
    System.err.println("Description: " + fault.getFaultString());
    } else {
    Parameter par = risp.getReturnValue();
    msg = (String) par.getValue();
    new MainAmministratori().setVisible(true);
    }
    } catch (SOAPException e) {
    System.out.println("Errore causato: (" + e.getFaultCode() + "):" + e.getMessage());
    msg ="errore";
    }
    } catch (MalformedURLException ex) {
    System.out.println("H1 " + ex.getMessage());
    }

    Ora il problema è che mi cattura una SOAPException...

    Ripeto che secondo l'errore è nel deployare il servizio...
    mi potresti gentilmente dire come fare???
    grazie
    Splair

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    5
    salve di nuovo,
    ho risolto con il deploy del servizio....
    ora il problema che mi da è questo:

    Code: SOAP-ENV:Server.Exception:
    Description: Server (wrong name: Server/Server)
    Java Result: 1

    Non riesco a capire cosa significhi....
    io ho un servizio che si chiama Server....riporto il codice per una piccola osservazione:

    try {
    URL url = new URL("http://localhost:8080/soap/servlet/rpcrouter");
    //COSTRUZIONE DELLA CHIAMATA
    Call call = new Call();
    call.setTargetObjectURI("urn:Server");
    call.setMethodName("verifica");
    call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC );

    //CREAZIONE PARAMETRI
    Vector<Parameter> parametri = new Vector<Parameter>();

    String user = UserCliente.getText();
    String pass = String.valueOf(PasswordCliente.getPassword());

    parametri.removeAllElements();
    parametri.addElement(new Parameter("nome_utente", String.class, user, null));
    parametri.addElement(new Parameter("password", String.class, pass, null));
    parametri.addElement(new Parameter("tabella", String.class, "Amministratori", null));

    call.setParams(parametri);//AGGIUNTA DEI PARAMETRI DA PASSARE

    try {
    //INVOCO L'RPC
    Response risp = call.invoke(url, "");
    //OTTENGO LA RISPOSTA DAL SERVER
    //CONTROLLO SE HA GENERATO UNA FAULT

    E' qui che mi viene generata la fault...quindi la comunicazione con il Server dovrebbe essere ok... giusto????

    if (risp.generatedFault()) {
    Fault fault = risp.getFault();
    System.err.println("Call failed");
    System.err.println("Code: " + fault.getFaultCode());
    System.err.println("Description: " + fault.getFaultString());
    } else {
    Parameter par = risp.getReturnValue();
    msg = (String) par.getValue();
    new MainAmministratori().setVisible(true);
    }
    } catch (SOAPException e) {
    System.out.println("Errore causato: (" + e.getFaultCode() + "):" + e.getMessage());
    msg ="errore";
    }
    } catch (MalformedURLException ex) {
    System.out.println("H1 " + ex.getMessage());
    }

    Se qualcuno di voi ha una soluzione vi prego aiutatemi perchè devo completarlo entro il 7!!! :-D

    grazie a tutti ciao ciao
    Splair

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.