Problema application json

di il
6 risposte

Problema application json

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

  • Re: Problema application json

    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 ....
  • Re: Problema application json

    Sto utilizzando JAX RS e per la (de) serializzazione nulla (ho la libreria genson, dovrebbe essere automatica)

    Grazie
  • Re: Problema application json

    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?
  • Re: Problema application json

    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.
  • Re: Problema application json

    manuel__89 ha scritto:


    No volevo dire genson
    Ho visto il suo sito. Ok, non lo conoscevo.

    manuel__89 ha scritto:


    fa il data-binding risolvendo le dipendenze dei messagebodywriter e reader.
    Hai letto http://owlike.github.io/genson/Documentation/Extensions/#jax-rs-jersey--cie ?
  • Re: Problema application json

    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