|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 1377
|
[J2EE] Axis: passaggio array ?
ho un problema nella mia piccola applicazione e credo proprio che sia
riconducibile alla serializzazione di un array in soap.Il fatto è che l'array ritorna dal server della lunghezza giusta, ma ogni singolo elemento mi risulta null :_( In particolare, ho una classe Portafoglio che rappresenta un comunissimo bean: variabili private (tutte intere o stringhe) e i metodi set e get per accedervi. Il web service offre un metodo che dovrebbe ritornare un array di Portafoglio. Portafoglio [] portafogli = chiamataAlWS.getTuttiPortafogli(...) Mi sono affidato al tool WSDL2Java per creare stub,skeleton, file deploy.wsdd e undeploy.wsdd. Ho notato che nel file deploy.wsdd vi è, tra le altre cose, il tag type mapping (utile proprio per risolvere la serializzazione dei tipi complessi, giusto? ). Potreste farmi capire dove sbaglio? Cosa do per scontato? Quali passaggi ho trascurato Dalla guida di Axis non sono riuscito a trovare la soluzione. Se serve vi condivido il file wsdl e le classi bean (od ogni altra cosa utile per risolvere il problema). Auguro un buon proseguimento a tutti. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
Forse dico una stupidaggine, ma Portafoglio e' serializzabile?
__________________
|Java Base| |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 1377
|
Quote:
Codice:
public class Portafoglio implements java.io.Serializable {
private int ID;
private java.lang.String created;
private int id;
private java.lang.String nome;
private java.lang.String owner;
private java.lang.String valuta1;
private java.lang.String valuta2;
public Portafoglio() {
}
public Portafoglio(
int ID,
java.lang.String created,
int id,
java.lang.String nome,
java.lang.String owner,
java.lang.String valuta1,
java.lang.String valuta2) {
this.ID = ID;
this.created = created;
this.id = id;
this.nome = nome;
this.owner = owner;
this.valuta1 = valuta1;
this.valuta2 = valuta2;
}
/**
* Gets the ID value for this Portafoglio.
*
* @return ID
*/
public int getID() {
return ID;
}
/**
* Sets the ID value for this Portafoglio.
*
* @param ID
*/
public void setID(int ID) {
this.ID = ID;
}
/**
* Gets the created value for this Portafoglio.
*
* @return created
*/
public java.lang.String getCreated() {
return created;
}
....
Cmq. sia rieseguo l'ennesima prova perchè ho trovato un punto che non mi convince molto. Grazie per l'aiuto. |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 1377
|
Altro che informatica.. qui siamo nella pura magia
Ho eseguito gli stessi passi sul portatile. Lo scambio di messaggi soap va a buon fine e il client preleva e stampa i dati correttamente. Sul fisso, invece, ho sempre il problema di avere un array della lunghezza giusta ma di dati null ! Ad esempio, se chiedo al server di mandarmi tutti i libri affittati da un tizio (ad esempio 2): Libri [] lib = server.getTuttiLibri("Alfredo"); System.out.println(lib.length); // mi stampa correttamente 2 ma lib[0] risulta = null ed anche lib[1] ! Non riesco a capire perchè caspita sul portatile mi riesce a riempire correttamente l'array mentre sul pc-desktop non va
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Mar 2006
Messaggi: 1377
|
Quote:
Trovatoooooooooooo!!!! Roba da impiccarsi! L'errore è nel deploy.wsdd generato automaticamente dal tool WSDL2Java. Chissà perchè sul portatile viene generato correttamente mentre sul desktop no. Per ora non me ne frega nulla... già è tanto che possa proseguire col progettino. Ciauuuu |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:06.











|








