Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java -  eccezione per
Forum - Java - eccezione per "serializer" in Web Service

Avatar
Pete (Normal User)
Newbie


Messaggi: 3
Iscritto: 17/02/2010

Segnala al moderatore
Postato alle 23:16
Martedì, 15/06/2010
Ciao a tutti, sono uno studente alle prime armi con i Web Services. Nel corso di una prova ho scritto un WS che riceve un oggetto "Persona" e ne ritorna il codice fiscale; la classe persona è definita dello stesso file del WS ed implementa Serializable.

Ho scritto il wsdd, eseguito il deploy con AdminClient (che mi segnala procedura corretta), controllato nella lista di servizi sulla pagina di axis se il servizio è stato pubblicato (affermativo) e ho scritto un client che dovrebbe usufrirne.

Mi viene generata la seguente eccezione :

exception in thread main Axis Fault [...]
[...] no serializer found for class Persona in registry org.apache.axis.encoding.TypeMappingDelegate

Potreste darmi spiegazioni al riguardo, perchè brancolo nel buio.

Di seguito copio il codice, e vi faccio notare che gli algoritmi interni (tipo il calcolo del codice fiscale) o la gestione delle eccezioni sono scritti male (direi *a caso*) perchè , come detto sopra, era una prova.

Grazie in anticipo!

//file Test.java

public class Test{

//esporta un servizio
//dato un oggetto Persona ne ritorna il codice fiscale

public String codiceFiscale (Persona p){
StringBuilder sb=new StringBuilder();
for(int i=0;i<3;i++) sb.append(p.getNome().charAt(i));
for(int i=0;i<3;i++) sb.append(p.getCognome().charAt(i));
sb.append(p.getData());
return sb.toString();
}
}

class Persona implements Serializable{
String nome,cognome,data;

public String getNome(){return nome;}
public String getCognome(){return cognome;}
public String getData(){return data;}
public Persona(String nome, String cognome, String data){
this.nome=nome; this.cognome=cognome;this.data=data;
}//class Persona

}//class Test


//file ClientTest.java
public class ClientTest {

public static void main(String [] args)throws Exception{

Persona p=new Persona("mario","rossi","12-12-2012");


Call call=(Call) new Service().createCall();

call.setTargetEndpointAddress("http://localhost:8080/axis/services/");

call.setOperationName(new QName("Test","codiceFiscale"));

Object [] obj={p};

String risp=(String) call.invoke(obj);

System.out.println(risp);

}//main

}//class ClientTest

PM Quote