Problema application json

di Anonimizzato19206 il
6 risposte
Buonasera,
da alcuni giorni sono alle prese con un problema, non riesco a passare un oggetto tramite una chiamata client-server utilizzando APPLICATION_JSON,
sto utilizzando netbeans, stampo l'errore che ottengo:

Grave: MessageBodyWriter not found for media type=application/json, type=class java.util.ArrayList, genericType=java.util.List<newpackage.Impiegati>.

Questo è il client (Servlet), il problema avviene alla riga di codice prima del return, infatti mettendo dei System.out ho potuto verificare che l'esecuzione arriva fino a List<Impiegati> nameList = ... e si blocca stampando l'errore sopra citato

public List<Impiegati> RESTfulList() {
        Client client = Client.create();
        url = "http://localhost:8080/Gestione_Azienda_5.1/webresources/Utility/List";
        WebResource myResource = client.resource(url);
        List<Impiegati> nameList = myResource.accept(MediaType.APPLICATION_JSON).get(new GenericType<List<Impiegati>>(){});
        return nameList;
    }
Servizio RESTful, ho provato a stampare entity, e ho potuto osservare che carica correttamente i dati contenuti in nameList, quindi questo lato funziona, infatti, il client chiama questo servizio, entra qui, carica i dati del database, e ritorna, ma quando cede il controllo al client si blocca

@Path("List")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public GenericEntity<List<Impiegati>> listEmployee() {
        ...
        collegamento a database
        ...
        List<Impiegati> nameList = new ArrayList<>();
        GenericEntity<List<Impiegati>> entity = new  GenericEntity <List<Impiegati>>(nameList){};
        ...
        carico gli impiegati sul nameList
        ...
        return entity;
    }
pero che potete essermi di aiuto

6 Risposte

  • manuel__89 ha scritto:


    Grave: MessageBodyWriter not found for media type=application/json, type=class java.util.ArrayList, genericType=java.util.List<newpackage.Impiegati>.
    Cosa stai usando per i servizi? (ad occhio direi una implementazione di JAX-RS). Cosa stai usando per la (de)serializzazione JSON?
    Non abbiamo la sfera di cristallo ....
  • Sto utilizzando JAX RS e per la (de) serializzazione nulla (ho la libreria genson, dovrebbe essere automatica)

    Grazie
  • manuel__89 ha scritto:


    Sto utilizzando JAX RS
    Sì ma quale implementazione? (JAX-RS è solo una specifica .. esistono N implementazioni)

    manuel__89 ha scritto:


    e per la (de) serializzazione nulla (ho la libreria genson, dovrebbe essere automatica)
    Come "nulla"? "genson"? E che roba è? Forse volevi dire GSON? (quella di Google) O la Jackson?
  • Io ho studiato solo JAX RS per web service, forse l'implementazione che dici è jersey. Utilizzo jersey per chiamate client.
    No volevo dire genson, fa il data-binding risolvendo le dipendenze dei messagebodywriter e reader.
  • L'ho letto, ma non è per il mio caso.
    Infatti se lavoro con le stringhe, funziona tutto, il problema è che io gli passo un oggetto, si blocca quando jersey lo invoca come valore di ritorno.
    Dovrebbe essere un problema di serializzazione, ho cercato nei manuali, ma c'è scritto un mondo e non so quale faccia al mio caso.

    P.S il problema del Messagebodywriter che ho postato sopra l'ho risolto inserendo la libreria genson.jar, ho compila, non mostra errori, ma si blocca sempre allo stesso punto (al ritorno dell'oggetto).
Devi accedere o registrarti per scrivere nel forum
6 risposte