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

    proxy per web service java

    Ciao a tutti, sto cercando di interrogare un web service (scritto in java) da Javascript, attraverso la WebServiceProxyFactory. Ho provato qualcuno dei tanti esempi in giro, ed effettivamente l'approccio funziona, interrogando per esempio qualche web service di http://www.xmethods.net.
    Felice di questi risultati ho provato ad applicarli al mio WS locale, creato appunto in java. Ho utilizzato praticamente lo stesso codice javascript, con gli opportuni adattamenti (wsdl e port). Il problema è che sembra non riuscire a processare correttamente il wsdl che gli passo. Premetto che il wsdl è generato automaticamente.
    L'errore che ottendo nella createProxyAsync è:
    -->failure processing WSDL, element is not schema
    seguito da:
    -->Failure processing WSDL cannot find schema element "http://test/:getData"

    Il wsdl è molto semplice:

    -----------------------------------------------------------------------
    <?xml version="1.0" encoding="UTF-8"?><definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://test/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="http://test/" name="MulticastListenerService">
    <types>
    <xsd:schema>
    <xsd:import schemaLocation="http://localhost:8080/multicastlistener?xsd=1" namespace="http://test/"></xsd:import>
    </xsd:schema>
    </types>
    <message name="getData">
    <part element="tns:getData" name="parameters"></part>
    </message>

    <message name="getDataResponse">
    <part element="tns:getDataResponse" name="parameters"></part>
    </message>
    <portType name="MulticastListener">
    <operation name="getData">
    <input message="tns:getData"></input>
    <output message="tns:getDataResponse"></output>
    </operation>
    </portType>

    <binding name="MulticastListenerPortBinding" type="tns:MulticastListener">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"></soap:binding>
    <operation name="getData">
    <soapperation soapAction=""></soapperation>
    <input>
    <soap:body use="literal"></soap:body>
    </input>
    <output>
    <soap:body use="literal"></soap:body>

    </output>
    </operation>
    </binding>
    <service name="MulticastListenerService">
    <port name="MulticastListenerPort" binding="tns:MulticastListenerPortBinding">
    <soap:address location="http://localhost:8080/multicastlistener"></soap:address>
    </port>
    </service>
    </definitions>
    -----------------------------------------------------------------------

    Sembra dunque che non riesca a trovare il metodo interessato...qualcuno ha già avuto modo di far interagire javascript con un we service java? ll Browser di riferimento è Firefox.

    Grazie
    Listen the noise of deep sea......
    --Powered by Debian GNU/Linux Sid on 2.6.12.3--
    albz.altervista.org

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Scusa l'ignoranza, ma non vedo una sola riga di codice javascript in quello che hai postato... cosa mi sfugge?

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Ops sorry, lo davo talmente per scontato che l'ho omesso..
    Come dicevo comunque il codice dovrebbe essere coretto, con i web service pubblici sopra citati funziona...
    In debug l'errore viene generato nella createProxyAsync

    <html>
    <body>

    <script type='text/javascript'>

    var oProxy = null;
    var sWSDL = "http://localhost:8080/multicastlistener?wsdl";
    var sPort = "MulticastListenerPort";

    var oProxyCreateCallback =
    {
    onLoad: function(oCreatedProxy)
    {
    oProxy = oCreatedProxy;
    oProxy.setListener(oGetDataCallback);
    alert("Create proxy:done");
    },
    onError: function(sError)
    {
    alert("err: " + sError.message);
    }
    };

    var oGetDataCallback = {
    getDataCallback: function (sUpdate) {
    alert(sUpdate);
    }
    }

    function createProxy()
    {
    try
    {
    var oFactory = new WebServiceProxyFactory();
    oFactory.createProxyAsync(sWSDL, sPort, "", true, oProxyCreateCallback);
    } catch (oError)
    {
    //alert("Errore creando il proxy");
    //alert("errore:" + oError.message);
    }
    }


    function callWebService()
    {
    if(oProxy)
    {
    oProxy.getData();
    } else
    {
    alert("Proxy not available");
    }
    }

    </script>
    <input type="button" value="Create Proxy" onclick="createProxy()" />
    <input type="button" value="Call" onclick="callWebService()" />

    </body>
    </html>
    Listen the noise of deep sea......
    --Powered by Debian GNU/Linux Sid on 2.6.12.3--
    albz.altervista.org

  4. #4
    Up!
    Listen the noise of deep sea......
    --Powered by Debian GNU/Linux Sid on 2.6.12.3--
    albz.altervista.org

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