Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    far ritornare un Vector a un WS

    Ciao, scusate ma sono nuova di web service. Ho provato i classici esempi (Hallo, Somma, ecc.) e finche faccio ritornare tipi primitivi tutto ok. Ora però vorrei far restituire un Vector (o anche qualche altro tipo di dato, purchè non sia primitivo), ma ho delle difficoltà.
    Per ora sto usando la modalità + semplice, ossia creare la classe con il mio metodo che restiuisce il vettore, rinominarlo in .jws e poi metterlo in axis. Se creo una classe client con il main, funziona, ma se creo una classe client che poi viene richiamata da una jsp mi va in errore:

    org.xml.sax.SAXException: No deserializer for {http://schemas.xmlsoap.org/soap/encoding/}string
    org.apache.axis.AxisFault.makeFault(AxisFault.java :101)
    org.apache.axis.client.Call.invoke(Call.java:2470)
    org.apache.axis.client.Call.invoke(Call.java:2366)
    org.apache.axis.client.Call.invoke(Call.java:1812)
    proveWS.ClientJsp.callVettore(ClientJsp.java:61)
    org.apache.jsp.chiamaWS_jsp._jspService(org.apache .jsp.chiamaWS_jsp:71)
    org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:99)
    javax.servlet.http.HttpServlet.service(HttpServlet .java:802)
    org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:325)
    org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:295)
    org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:245)
    javax.servlet.http.HttpServlet.service(HttpServlet .java:802)

    Mi aiutate, x favore

  2. #2

    up

    Nessuno mi sa dare una mano???
    L'errore lo da proprio sulla riga dove invoco: lista=(Vector)call.invoke((Object[])null);

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    69
    Premessa: prendi quello che ti dico con le pinze perché non ne sono sicuro!

    Uno dei vantaggi dei web services è l'interoperabilità. Quindi significa che possono essere richiamati in modo indipendente dal client (php, java, .net, ...).
    Ora il Vector è una classe java (credo non serializzabile). Quindi mi dici come farebbe un client php a richiamare un web services che ritorna un Vector? Perderesti l'interoperabilità! In questo caso dovresti sostituire il Vector con un array di tipi primitivi o con classi serializzabili.

    Se non sbaglio nelle nuove specifiche dei webservices dovrebbero esserci dei sistemi per far ritornare liste o mappe, prova ad informarti!

  4. #4

    sto usando array di stringhe

    Ora sto usando gli array di stringhe, ma ho cumunque un problema... quando lancio il main mi da l'errore che vi riporto di seguito.
    Qualcuno sa dirmi cosa devo modificare x usare gli array di stringhe.
    GRAZIE

    GRAVE: Exception:
    org.xml.sax.SAXException: No deserializer defined for array type {urn:Salve}ArrayOf_soapenc_string
    at org.apache.axis.encoding.ser.ArrayDeserializer.onS tartElement(ArrayDeserializer.java:276)

    at org.apache.axis.encoding.DeserializerImpl.startEle ment(DeserializerImpl.java:393)
    at org.apache.axis.encoding.DeserializationContext.st artElement(DeserializationContext.java:
    1048)
    at org.apache.axis.message.SAX2EventRecorder.replay(S AX2EventRecorder.java:165)
    at org.apache.axis.message.MessageElement.publishToHa ndler(MessageElement.java:1141)
    at org.apache.axis.message.RPCElement.deserialize(RPC Element.java:345)
    at org.apache.axis.message.RPCElement.getParams(RPCEl ement.java:384)
    at org.apache.axis.client.Call.invoke(Call.java:2467)
    at org.apache.axis.client.Call.invoke(Call.java:2366)
    at org.apache.axis.client.Call.invoke(Call.java:1812)
    at ProvaClient.main(ProvaClient.java:30)
    Exception in thread "main" AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
    faultSubcode:
    faultString: org.xml.sax.SAXException: No deserializer defined for array type {urn:Salve}ArrayOf_so
    apenc_string
    faultActor:
    faultNode:
    faultDetail:
    {http://xml.apache.org/axis/}stackTracerg.xml.sax.SAXException: No deserializer defined fo
    r array type {urn:Salve}ArrayOf_soapenc_string
    at org.apache.axis.encoding.ser.ArrayDeserializer.onS tartElement(ArrayDeserializer.java:276)

    at org.apache.axis.encoding.DeserializerImpl.startEle ment(DeserializerImpl.java:393)
    at org.apache.axis.encoding.DeserializationContext.st artElement(DeserializationContext.java:
    1048)
    at org.apache.axis.message.SAX2EventRecorder.replay(S AX2EventRecorder.java:165)
    at org.apache.axis.message.MessageElement.publishToHa ndler(MessageElement.java:1141)
    at org.apache.axis.message.RPCElement.deserialize(RPC Element.java:345)
    at org.apache.axis.message.RPCElement.getParams(RPCEl ement.java:384)
    at org.apache.axis.client.Call.invoke(Call.java:2467)
    at org.apache.axis.client.Call.invoke(Call.java:2366)
    at org.apache.axis.client.Call.invoke(Call.java:1812)
    at ProvaClient.main(ProvaClient.java:30)

    {http://xml.apache.org/axis/}hostname:ANDROMEDA

    org.xml.sax.SAXException: No deserializer defined for array type {urn:Salve}ArrayOf_soapenc_string
    at org.apache.axis.AxisFault.makeFault(AxisFault.java :101)
    at org.apache.axis.client.Call.invoke(Call.java:2470)
    at org.apache.axis.client.Call.invoke(Call.java:2366)
    at org.apache.axis.client.Call.invoke(Call.java:1812)
    at ProvaClient.main(ProvaClient.java:30)
    Caused by: org.xml.sax.SAXException: No deserializer defined for array type {urn:Salve}ArrayOf_soape
    nc_string
    at org.apache.axis.encoding.ser.ArrayDeserializer.onS tartElement(ArrayDeserializer.java:276)

    at org.apache.axis.encoding.DeserializerImpl.startEle ment(DeserializerImpl.java:393)
    at org.apache.axis.encoding.DeserializationContext.st artElement(DeserializationContext.java:
    1048)
    at org.apache.axis.message.SAX2EventRecorder.replay(S AX2EventRecorder.java:165)
    at org.apache.axis.message.MessageElement.publishToHa ndler(MessageElement.java:1141)
    at org.apache.axis.message.RPCElement.deserialize(RPC Element.java:345)
    at org.apache.axis.message.RPCElement.getParams(RPCEl ement.java:384)
    at org.apache.axis.client.Call.invoke(Call.java:2467)
    ... 3 more

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 © 2026 vBulletin Solutions, Inc. All rights reserved.