1.0 Introduzione
2.0 Software supportato e specifiche
3.0 Modifiche rispetto alla versione precedente
4.0 Problemi noti
4.1 Esplora servizi Web
4.2 Registro UDDI privato
4.3 Interoperabilità con il runtime di IBM SOAP
4.4 Generazione di un documento WSDL da un file DAD
4.5 Generazione JSP degli strumenti Web
4.6 Utilizzo del client di test universale
4.7 Casi particolari in cui i servizi Web DADX supportano output multipli
4.8 Le preferenze del driver JDB possono essere utilizzate solo su Linux
4.9 I file di esempio DAD devono essere aggiornati se l'extender XML non è stato installato nella directory principale
4.10 Problemi relativi ai servizi Web DADX
4.11 Supporto per la generazione di DADX
4.12 Errori WSDL dopo l'importazione di un file dei servizi Web da 4.0.x
4.13 Problemi con l'utilizzo della riga comandi dei servizi Web
4.14 Creazione servizi Web senza un server esistente
4.15 Generazione dell'applicazione di esempio dei servizi Web
4.16 Importazione file WSDL con l'autenticazione di base HTTP
4.17 Problema con l'utilizzo del runtime di WebSphere v5.0.2 runtime
4.18 Impostazione di un gruppo DADX
con informazioni sull'origine dati
4.19 Caricamento
dell'indicatore di posizione utilizzando il client di test universale
4.20 Preferenze delle risorse non rispettate
4.21 Problemi con l'utilizzo del runtime
di Apache Axis 1.0
4.22 Impossibile compilare la JSP di esempio dei servizi Web
4.23 Problemi con la riga comandi dei servizi Web in tedesco
4.24 Errore se localhost non è definito
4.25 Limitazioni permanenti con l'utilizzo del runtime di IBM SOAP
4.26 Servizi Web e client che utilizzano runtime diversi
4.27 Selezione di Fine nella
procedura guidata Client dei servizi Web
4.28 Pagina di aiuto dei Servizi Web
La funzione Strumenti servizi Web consente di individuare, creare e pubblicare i servizi Web per i bean Java, DADX, i bean enterprise e gli URL. In questo file Readme vengono descritti i problemi noti, le limitazioni e le soluzioni associate alle seguenti funzioni di Strumenti servizi Web:
- Generazione di un documento WSDL da bean Java, documento DADX, bean enterprise, file ISD e URL.
- Generazione di un proxy o struttura Java da un documento WSDL.
- Creazione e distribuzione di un servizio Web da un bean Java, DADX, bean enterprise o URL.
- Individuazione e pubblicazione di servizi Web
- Generazione di un'applicazione Web di esempio da un proxy Java.
- Elementi di interoperabilità.
Esplora servizi Web supporta i seguenti browser Web:
- Microsoft Internet Explorer 6.0 o versione successiva
- Mozilla 1.2.1 o versione successiva
Questa versione degli strumenti dei servizi Web consente di generare codice conforme alle seguenti specifiche:
- SOAP (Simple Object Access Protocol) versione 1.1
- UDDI (Universal Description, Discovery, and Integration) versione 2.0
- WSDL (Web Services Definition Language) versione 1.1
- WSIL (Web Services Inspection Language) versione 1.0
Questa versione degli strumenti dei servizi Web supporta:
- il runtime dei servizi Web di IBM WebSphere v5.0.2
- gli ambienti di runtime IBM SOAP Versione 2.2 e Versione 2.3.
- il runtime di Apache Axis 1.0
Se si desidera avviare l'ambiente di test WORF esternamente al workbench utilizzando Mozilla, si consiglia di utilizzare almeno la versione 1.3.1 di Mozilla. L'output ottenuto richiamando il servizio Web e la descrizione dei file potrebbe non essere visualizzato correttamente nelle versioni precedenti del browser Mozilla.
Il runtime di DADX richiede DB2 7.2 fix pack 6 o successivo. oppure DB2 8.1 o versione successiva.
Di seguito sono riportate le nuove funzioni aggiunte agli strumenti dei servizi Web nella versione 5.1:
- Supporto del runtime dei servizi Web di IBM WebSphere v5.0.2. Si tratta di un runtime importante che supporta JSR-109 e JAX-RPC.
- Supporto del runtime di Apache Axis 1.0. Questo runtime supporta JAX-RPC e è destinato a quegli utenti che preferiscono sviluppare per la piattaforma Apache Axis.
- Strumento riga comandi per i servizi Web che consente all'utente di creare servizi Web da bean Java, EJB o da file WSDL, e di pubblicare e annullare la pubblicazione di aziende e servizi nei registri UDDI.
- WSDL Explorer completamente integrato in Esplora servizi Web.
- Strumentazione di assemblaggio delle applicazioni dei servizi Web, inclusi:
- Editor dei servizi Web e Editor client dei servizi Web per la modifica dei descrittori di distribuzione JSR-109 e IBM WebSphere v5.0.2.
- Azione a comparsa per il richiamo della funzione EndpointEnabler.
- Azione a comparsa per il richiamo della funzione WebServiceDeploy.
- Guida per la creazione dei servizi Web compatibili con WS-I nelle preferenze. L'utente può impostare la procedura guidata Servizi Web in modo che richieda, suggerisca o ignori la compatibilità con WS-I durante la creazione dei servizi Web.
- Documenti di riferimento per i Servizi Web per-proxy WSIL.
- Possibilità di aggiornamento dei descrittori di distribuzione WebSphere v5.0.2 con configurazioni di protezione di esempio.
- Supporto SOAP su JMS come trasporto per i messaggi SOAP durante la creazione dei servizi Web da EJB.
- Supporto per categorie UDDI definite dall'utente.
- Supporto per la convalida dei servizi Web. Quando questa preferenza viene impostata, lo strumento convalida che l'applicazione enterprise e/o i moduli in essa contenuti rispettino la serie di regole che garantiscono la compatibilità con JSR-109.
- Quando si utilizza Esplora servizi Web con il Registro UDDI privato, Gestisci modulo Asserzioni editori di un nodo aziendale non eseguirà il caricamento nelle seguenti situazioni:
- Non si è registrati nel nodo del registro contenente il nodo aziendale.
- Non si è registrati nel nodo del registro contenente il nodo aziendale, ma il nodo aziendale è di proprietà dell'ID utente e password utilizzati per registrarsi nel registro.
- Non sarà possibile utilizzare Esplora servizi Web per eseguire query o pubblicazioni attraverso un'autenticazione di base abilitata da un registro UDDI. Un esempio di questo tipo di registro è un registro privato distribuito su un server con un'autenticazione di base attivata. Si noti che tutti i registri pubblici (IBM, Microsoft, SAP, NTT e XMethods) non presentano tale problema.
- Non è possibile eseguire una ricerca avanzata con Esplora servizi Web per rilevare aziende in un registro UDDI privato WAS configurato con backend Cloudscape, se una o più interfacce di servizio sono state specificate come parametro; in questo caso la finestra di stato visualizzerà:
com.ibm.uddi4j.wsdl.client.UDDIWSDLProxyException: Could not list all service providers. ------------------------------------------------------------------------------ Nested exception is:E_fatalError (10500) Serious technical error has occurred while processing the request. : Fault code=Client Fault string=Client Error Fault actor=null Detail=null DispositionReport: ErrCode=E_fatalError ErrInfoText=E_fatalError (10500) Serious technical error has occurred while processing the request.
- Il registro XMethods dispone di procedure che consentono di controllare l'eliminazione dei servizi Web pubblicati non accessibili o non funzionanti. Per evitare che venga eliminato un servizio Web pubblicato, assicurarsi che tutti i riferimenti URL all'interno dei file WSDL siano accessibili su Internet.
Il registro di azienda UDDI SAP restituisce un messaggio E_fatalError relativo alla richiesta di ricerca di un'azienda per categoria con findQualifier uguale a "combineCategoryBags" (tModelKey uguale a UUID:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2). Nella finestra di stato verrà visualizzato il messaggio di errore riportato di seguito. Tale problema si verifica solo con questo registro.
com.ibm.uddi4j.wsdl.client.UDDIWSDLProxyException: Could not list all service providers. ------------------------------------------------------------------------------ Nested exception is:A serious technical error has occurred while processing the request. : Fault code=Client Fault string=UDDI Error Fault actor=null Detail=null DispositionReport: ErrCode=E_fatalError ErrInfoText=A serious technical error has occurred while processing the request. at com.ibm.uddi4j.wsdl.client.UDDIWSDLProxy.findAllServiceProviders(UDDIWSDLProxy.java:1626) at FindBusWithQualifier.main(FindBusWithQualifier.java:35)
- I report di asserzione pubblica restituiti dal registro di azienda UDDI SAP non contengono alcuno stato. Allo stesso modo, i report restituiti da SAP vengono eliminati dalla colonna di stato dell'asserzioni editori visualizzata in Gestisci modulo Asserzioni editori di Esplora servizi Web. Tale problema si verifica solo con questo registro.
- Se si desidera pubblicare un'azienda, un servizio o l'interfaccia di un servizio nel registro XMethods UDDI, verrà visualizzato il messaggio di errore "SSL Handshake Failure". Si tratta di un problema noto di cui si stanno occupando IBM e XMethods.
- Le asserzioni di editore del Registro UDDI privato possono essere visibili a tutte le aziende comprese nel registro. Un'azienda può consultare asserzioni di editore a essa associate, ad esempio, entrambi gli elementi Dalla chiave e Alla chiave non appartengono alle chiavi delle asserzioni di editore.
- Quando il registro UDDI del test dell'unità viene configurato con il backend del database Cloudscape, per impostazione predefinita le ricerche dei metodi UDDI in base al nome verranno eseguite rilevando la distinzione tra le lettere minuscole e le lettere maiuscole. Ciò è contrario alle specifiche UDDI e costituisce una limitazione.
- Il registro privato UDDI dovrebbe essere configurato con il backend Cloudscape solo nei casi di test semplici (ad esempio, è sconsigliato l'uso di questo backend per il lavoro di produzione, dal momento che si verificano spesso difficoltà con azioni, come nel caso di query complesse). Per ulteriori informazioni sul registro UDDI privato, vedere la documentazione relativa a Network Deployment nell'InfoCenter V5 WAS.
- Dopo aver creato o aggiornato un registro UDDI di un'unità di test basata su Cloudscape in Linux, è possibile che venga ricevuto+ un messaggio di avviso che riporta:
Cloudscape (istanza <uuid>) sta tentando di avviare il database <percorso UDDI DB> anche se l'istanza Cloudscape (istanza <uuid>) è ancora attiva. Un'istanza di Cloudscape deve avviare un solo database per volta. È possibile che si verifichino o che si siano già verificati errori non ripristinabili.
Si tratta di un falso allarme. Per ulteriori informazioni visitare l'indirizzo:
http://www-1.ibm.com/support/docview.wss?rs=636&context=SSCVRP&q=&uid=swg21051601&loc=en_US&cs=utf-8&lang=en+en
- Quando si utilizza il runtime di IBM SOAP, la generazione di WSDL con parametri complessi potrebbe provocare problemi con gli strumenti Microsoft che utilizzano WSDL. Tali strumenti non gestiscono in modo corretto le istruzioni XSD include e potrebbe quindi essere necessario integrare gli schemi XSD in un WSDL generato. A questo scopo, selezionare
Finestre > Preferenze > Servizi Web > Generazione codice > Utilizza schema integrato.Quando si utilizza il runtime di IBM SOAP, le procedure guidate Servizi Web sono ora completamente abilitate a generare associazioni basate su elementi, oltre alle normali associazioni basate su tipi, sempre che sia selezionata la casella di controllo "Abilita associazione basata su elementi". Tale casella di controllo si trova nella pagina delle preferenze a cui è possibile accedere dal dal menu principale:
Finestre > Preferenze > Servizi Web > Generazione codice.Per impostazione predefinita, tale preferenza non è abilitata; è tuttavia necessario selezionarla se si desidera realizzare l'interoperabilità tra il runtime di Apache/IBM SOAP e i runtime dei servizi Web di altri fornitori che inviano messaggi i cui elementi non dispongono delle proprietà "xsi:type". I runtime dei servizi Web di altri fornitori seguono diversi criteri nell'inclusione di proprietà xsi:type. In alcuni sono sempre incluse, altri mai, in altri ancora è prevista un'opzione di configurazione. Altri, infine, omettono le proprietà xsi:type per determinati tipi, come le matrici.
L'errore tipico generato dal runtime SOAP Apache/IBM è il seguente:
targetException=java.lang.IllegalArgumentException: No Deserializer found to deserialize a ':MyElement' using encoding style 'http://schemas.xmlsoap.org/soap/encoding/'.
Se è stata selezionata la relativa funzione, vengono generate associazioni basate sugli elementi:
- nel file del descrittore di distribuzione per gli scenari bean/EJB Java dal basso verso l'alto e per gli scenari di struttura WSDL
- nel proxy degli scenari del client.
Le associazioni basate sugli elementi hanno la seguente struttura:
<isd:map
encodingStyle="encoding style"
xmlns:x="some-namespace"
qname="x:some-local-name"
xml2JavaClassName="some-deserializer-class-name"/>Le associazioni basate su elementi vengono generate per:
- ciascuna delle parti definite negli input wsdl:message
- ciascuna delle parti definite negli output wsdl:message, solo per gli scenari Struttura e Proxy
- ciascuno degli elementi principali o degli elementi locali dei tipi complessi a cui fanno riferimento le parti nel file WSDL
Le procedure guidate Servizi Web WSAD seguono le specifiche XSD e SOAP per determinare se in un'associazione basata su elementi il nome dell'elemento debba essere qualificato (ad esempio, disporre di uno spazio dei nomi) o non qualificato.
La procedura guidata Servizi Web WSAD segue le regole riportate di seguito per la scelta tra nomi di elementi qualificati e non qualificati:
- I nomi di parte in WSDL producono nomi non qualificati.
- Gli elementi principali in XSD producono nomi qualificati.
- Gli elementi locali in XSD producono nomi non qualificati se lo schema specifica elementFormDefault="unqualified", l'impostazione predefinita se lo schema non possiede un attributo elementFormDefault.
- Gli elementi locali in XSD producono nomi qualificati se lo schema specifica elementFormDefault="qualified".
Alcuni runtime producono elementi non qualificati nei messaggi SOAP, nonostante uno schema abbia specificato l'utilizzo di elementi qualificati mediante l'attributo "elementFormDefault" dello schema XSD. In questi casi, è necessario intervenire manualmente sul WSDL o sul XSD del servizio per modificare l'attributo elementFormDefault in "unqualified".
Di seguito è riportato un esempio di associazione basata su elementi, non qualificata con spazio dei nomi:
<isd:map
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:x=""
qname="x:name"
xml2JavaClassName="org.apache.soap.encoding.soapenc.StringDeserializer"/>L'esempio che segue riporta invece un'associazione basata sugli elementi qualificata con uno spazio dei nomi:
<isd:map
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:x="http://www.ibm.com/"
qname="x:name"
xml2JavaClassName="org.apache.soap.encoding.soapenc.StringDeserializer"/>Si noti che per un dato nome di elemento verrà generato una sola associazione. In altre parole, se lo schema utilizza lo stesso nome di elemento più di una volta per tipi differenti, solo uno degli elementi verrà selezionato, a caso, come elemento base dell'associazione. Gli altri elementi di tipi diversi che utilizzano lo stesso nome non verranno deserializzati. Ciò avviene anche nel caso in cui lo schema utilizzi lo stesso nome per un elemento e per un componente WSDL.
- Quando si inizia con un bean di servizio che restituisce una matrice Map o una matrice di Hashtable ed è attivata l'opzione di "associazione basata su elementi", il Proxy SOAP generato eseguirà un'associazione non corretta del tipo restituito ad una java.lang.String[]. Si verificherà un'eccezione ClassCastException durante il runtime. Per risolvere il problema, eseguire la procedura guidata del client del servizio Web con il WSDL appena creato e ripetere la generazione del proxy SOAP nel progetto del client.
- Per migliorare l'interoperabilità con i servizi Web Microsoft, il runtime DADX è stato aggiornato in modo che possano generare servizi Web in stile documento. Per attivare tale funzione, utilizzare la procedura guidata di configurazione DADX per aprire la pagina delle proprietà relativa a un gruppo DADX da utilizzare. Nella parte inferiore della pagina, verificare che il campo di immissione "Utilizza stile documento" sia impostato su true.
- Non è supportata la generazione di un proxy Java per le operazioni di chiamata DADX con più parametri di output.
- Quando si crea un servizio Web DADX, viene generalmente visualizzato il messaggio "IWAB0177E Errore nella generazione di WSDL da un file DADX" . Nella maggior parte dei casi questo messaggio indica un problema relativo al server e le relative informazioni sono disponibili nel log della console del server. Tenere inoltre presente quanto segue:
- È necessario che i file DAD (*.dad) siano ubicati nella directory del gruppo DADX. Questo è il modo in cui il runtime WORF localizza i file DAD.
- Se si tenta di generare un file DAD da un file di associazioni RDB a XML (.rmx), accertarsi che il file DAD sia ubicato nella stessa cartella del file DADX.
- Lo schema DADX non utilizza più il tag del documento WSDL per la documentazione. Questo tag è ora parte dello schema DADX. Ciò può provocare problemi di convalida con file DADX precedenti di cui non è stata eseguita la migrazione per ottenere lo schema aggiornato. Ad esempio, se il file DADX precedente conteneva il seguente XML:
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
Provides queries for part order information at myco.com.
</wsdl:documentation>nel nuovo documento si avrà:
<documentation>
Provides queries for part order information at myco.com.
</documentation>
Durante l'avvio di Universal Test Client dalla procedura guidata Servizi Web, l'URL del fornitore JNDI è impostato sulla porta predefinita 2809 di WebSphere v5. Se si utilizza un server WebSphere v4 o se è stato modificato il numero di porta, non sarà possibile eseguire la ricerca nella directory JNDI. Tentando di accedere a tale directory si otterrà il seguente messaggio di errore:
IWAD0403E Impossibile creare la struttura JNDI: rilevato CORBA.COMM_FAILURE durante la risoluzione del riferimento iniziale=WsnNameServicePer risolvere il problema:
- Fare doppio clic sul server che si sta utilizzando, in modo da visualizzarne le proprietà.
- Selezionare la scheda Porte.
- Copiare la porta bootstrap Orb.
- Aprire la finestra delle proprietà JNDI nel client di test universale.
- Incollare la porta bootstrap nella casella di immissione testo relativa all'URL del fornitore.
Generalmente gli strumenti non supportano output multipli in un servizio Web; ciò non vale per i servizi Web DADX, che possono supportare output multipli se si imposta la proprietà Utilizza gruppo di stile documento su true. In questo caso, se stile documento è impostato su true, gli output multipli vengono riuniti in un unico documento XML.
È stata aggiunta una nuova categoria di preferenze dei servizi Web denominata driver JDBC a cui è possibile accedere selezionando Finestra > Preferenze > Servizi Web. Anche se tale preferenza è disponibile in tutte le piattaforme, è stata concepita per l'utilizzo esclusivo in Linux. In Linux può risultare difficile determinare il percorso del file JAR che contiene i driver JDBC. Questa pagina delle preferenze è stata aggiunta per poter specificare il file JAR da utilizzare. Attualmente, solo il codice di convalida DADX utilizza le informazioni del file JAR.
I file DAD memorizzati nella directory WSinstall_dir\wstools\eclipse\plugins\com.ibm.etools.webservice_<version>\samples\DADX_examples devono esser modificati in due punti per rispettare la configurazione del sistema.
Accanto alla parte iniziale del file è possibile individuare una riga simile a quella riportata di seguito:
<!DOCTYPE DAD SYSTEM "c:\dxx\dtd\dad.dtd">
Se l'extender XML è stato memorizzato in un percorso diverso rispetto a c:\dxx è necessario modificare tale stringa in modo che riporti l'attuale percorso dell'extender XML. Questo vale anche per i sistemi Linux, in cui la posizione è solitamente /usr/IBMdb2xml.
- Nella pagina Proprietà gruppo DADX dei servizi Web della procedura guidata Servizi Web, le modifiche potrebbero non avere effetto immediato. Di conseguenza, si consiglia di effettuare le modifiche alle proprietà del gruppo DADX utilizzando la Configurazione guidata gruppo DADX.
- Dopo la modifica e la convalida di un file DADX, potrebbe essere visualizzato un messaggio nella vista Attività che indica di rigenerare il progetto. Se si verifica tale situazione, fare clic con il pulsante destro del mouse sul progetto appropriato e fare clic su Rigenera progetto. Potrebbe essere necessario dover effettuare questa operazione una seconda volta per rimuovere il messaggio dalla vista Attività.
Anche se le funzioni definite dall'utente sono elencate nella procedura guidata Generazione di DADX, attualmente non è possibile generare DADX dalle funzioni definite dall'utente. Il supporto è disponibile solo per la generazione di DADX dai file DAD, dalle procedure memorizzate e dalle istruzioni SQL. Selezionando una UDF verrà generata una semplice struttura DADX.
Se viene importato un file dei servizi Web da 4.0.x, è possibile che vengano visualizzati i seguenti messaggi di errore:
Errore La parte 'result' contiene un valore 'anyElement' non valido definito per un suo tipo. Le dichiarazioni dei tipi devono fare riferimento a valori validi definiti in uno schema.
Errore La parte 'return' contiene un valore 'findPatientResult' non valido definito per un suo elemento. Le dichiarazioni degli elementi devono fare riferimento a valori validi definiti in uno schema.
Errore La parte 'response' contiene un valore 'findPatientResponse' non valido definito per un suo elemento. Le dichiarazioni degli elementi devono fare riferimento a valori validi definiti in uno schema.Per risolvere il problema:
- Eliminare i file WSDL.
- Rigenerare i servizi Web eseguendo nuovamente la procedura guidata dei servizi Web.
- Opzione FileNStoPkg: l'opzione -fileNStoPkg per WSDL2WebService nella riga comandi, attualmente non funziona. Utilizzare -NStoPkg e specificare tutte le associazioni nella riga comandi. Se è richiesta un'associazione da spazio nomi a pacchetto, un'altra opzione consiste nell'utilizzare la procedura guidata Servizi Web.
- Directory contenente spazi: non eseguire WSDL2WebService da una directory contenente uno spazio nel nome. In caso contrario, compile.bat (o compile.sh su Linux) non verrà compilato.
- Descrittori di distribuzione client e file WSDL: dopo aver eseguito Bean2WebService, EJB2WebService, WSDL2WebService, i descrittori di distribuzione del client (webservicesclient.xml, ibm-webservicesclient-bnd.xmi, ibm-webservicesclient-ext.xmi e _mapping.xml) si troveranno in client-side/META-INF. Se si desidera creare un'applicazione gestita dal client, procedere come segue:
- Per eseguire il client gestito come un EJB o un client di applicazioni J2EE, comprimere tutti i descrittori di distribuzione in META-INF dell'archivio ed in più copiare wsdl dal servizio (in WEB-INF/wsdl se il servizio si trova nel contenitore Web o META-INF/wsdl se il servizio si trova nel contenitore EJB) in META-INF/wsdl del progetto client.
- Per eseguire il client gestito nel contenitore Web, l'utente dovrà comprimere tutti i descrittori di distribuzione in WEB-INF dell'archivio client (generalmente in formato WAR o progetto Web in WebSphere Studio). Il file WSDL deve anche essere copiato dal servizio in WEB-INF/wsdl. Sarà necessario inoltre, modificare manualmente webservicesclient.xml (utilizzando un editor di testo o in WebSphere Studio, un editor xml) sostituendo ogni ricorrenza di META-INF in WEB-INF.
Nome classe con sottolineatura: durante la creazione del servizio Web da un bean Java o un EJB, se il nome della classe del bean di servizio contiene un carattere di sottolineatura, e il carattere seguente è minuscolo, (ad esempio test.Simple_bean), il servizio non potrà essere avviato su WebSphere Application Server. Per risolvere il problema, utilizzare il nome di un bean di servizio non contenente caratteri di sottolineatura, o utilizzare una lettera maiuscola dopo il carattere di sottolineatura (ad esempio, test.Simple_Bean).
- Durante la creazione di un servizio Web senza che vi sia un server Web esistente nello spazio di lavoro, scegliendo Indietro nella terza pagina, il pulsante Avanti verrà disattivato. Per risolvere il problema, annullare la procedura e riavviarla. Per evitarlo, creare il server e la configurazione prima di avviare la creazione del servizio Web o non premere Indietro nella terza pagina se non è disponibile alcun server Web.
- Quando un utente selezione un file Java con il tasto destro del mouse nel workbench, l'azione a comparsa Genera applicazione di esempio nel menu Servizi Web, genererà le JSP dei servizi Web di esempio per un proxy IBM SOAP. Per generare le JSP dei servizi Web di esempio per gli altri runtime dei servizi Web, (IBM WebSphere 5.0.2 e Apache Axis 1.0), selezionare un file WSDL con il tasto destro del mouse e scegliere Genera client nel menu Servizi Web. Durante l'esecuzione della procedura, selezionare Verifica proxy generato.
Durante la generazione delle strutture o dei client da un file WSDL le cui importazioni relative e autenticazione di base HTTP sono protette, verrà visualizzato un messaggio di errore che indica che il file WSDL non può essere risolto anche immettendo l'ID utente e la password corretti. Il problema è dovuto al fatto che l'ID utente e la password sono utilizzati solo per richiamare il file WSDL originale, e non i file importati.
Per risolvere il problema, è possibile scaricare il file WSDL e tutti i file che importa nel workbench e successivamente generare la struttura o il client dal file WSDL scaricato.
- Nessun supporto per WSDL: aggiungendo WSDL all'URL di endpoint di un servizio Web distribuito in WebSphere v5.0.2, l'esecuzione nell'ambiente di test o dell'ambiente del server remoto per richiamare il file WSDL per il servizio Web distribuito, non è supportata. Il file WSDL generato si troverà in WebContent/WEB-INF/wsdl del progetto Web per il servizio Web del bean Java e in ejbModule/META-INF/wsdl del progetto EJB per il servizio Web EJB. Se il WSDL richiesto deve utilizzare un progetto Web, sarà possibile fare riferimento alla copia del file WSDL in WebContent/wsdl del progetto Web o creare un percorso in WebContent e fornire dati al WSDL dal progetto Web.
- JAR di utilità in più di una cartella di origine: durante la creazione di un servizio Web da un bean Java o EJB, nel modulo potrebbero essere generati i file non necessari se esistono più cartelle di origine nel progetto Web o se i bean si trovano in un JAR di utilità interno al file EAR. Poiché questi file generati già esistono nel modulo, (nel JAR di utilità o in un altra cartella di origine), dovranno essere eliminati affinché il progetto possa essere compilato e il servizio Web funzioni correttamente. Un'altra soluzione consiste nell'unire le cartelle di origine in una o di copiare i bean dal JAR di utilità nella cartella di origine.
- Matrice non supportata in RPC/literal: durante la creazione di un servizio a RPC/literal, la firma del metodo non può contenere matrici. In caso contrario, il servizio non potrà essere richiamato con il codice client generato. Questo problema attualmente non ha alcuna soluzione. Utilizzare un document/literal o RPC/encoded se possibile.
- Sovraccarico dei metodi non supportato in document/literal: il sovraccarico dei metodi (stesso nome del metodo, diversi parametri di input) non è supportato durante la creazione di un servizio document/literal. Questo problema attualmente non ha alcuna soluzione. Utilizzare un RPC/literal o RPC/encoded se possibile.
- Importazione WSDL: l'istruzione di importazione WSDL può contenere solo URL assoluti o relativi nella stessa directory. Ad esempio, l'importazione relativa dei seguenti moduli non è supportata:
<import namespace="http://someNamespace/" location="../someFile.wsdl"/>- Elemento binding prima dell'elemento portType: durante la generazione di un proxy del client o di una struttura da un file WSDL, contenenti un elemento binding prima dell'elemento portType, verrà visualizzato l'errore "Errore durante la generazione dei file files e dei descrittori di distribuzione dal file WSDL (dettagli: nome operazione duplicato)".
- Elementi astratti: durante la generazione di strutture da un file WSDL con operazioni che utilizzano tipi o elementi astratti, i bean Java generati non verranno compilati.
- Tipi senza associazioni JAX-RPC predefinite: durante la generazione di strutture da un file WSDL con operazioni che contengono parametri di inout di tipi che non dispongono di associazioni JAX-RPC predefinite, l'implementazione generata non verrà compilata. Il problema è dovuto al fatto che quando javax.xml.soap.SOAPElement viene creato da javax.xml.soap.SOAPFactory, avvia l'eccezione javax.xml.soap.SOAPException. Il bean di implementazione non rileva o riavvia questa eccezione, quindi non viene compilato.
- Stesso tipo di schema per input e output: durante la generazione di struttura da un file WSDL che utilizza lo stesso tipo di schema XML per i messaggi di input/output e di errore, le risorse generate non funzioneranno durante il runtime. Per risolvere questo problema, non condividere le definizioni del tipo di schema XML tra messaggi di input/output e messaggi di errore.
- Riferimenti all'elemento XSD con minOccurs e maxOccurs: durante la generazione di strutture da un file WSDL, non utilizzare i riferimenti all'elemento XSD con i valori minOccurs e maxOccurs specificati dall'utente (<element ref="..." minOccurs="0" maxOccurs="unbounded"/>). L'utilizzo di tali elementi produrrà una java.util.MissingResourceException all'avvio del server.
- Bean generati con API diverse dal bean di servizio: se i bean generati hanno API diverse dal bean di servizio, durante la creazione del servizio Web da un bean Java o EJB, è possibile che si verifichi un errore di runtime simile al seguente:
Metodo non definito.
Impossibile trovare un'operazione Java corrispondente.
Esempi di bean di servizio con API diverse dai bean generati sono:
- bean con campi pubblici,
- campi booleani con getter denominato getBooleanValue invece di isBooleanValue,
- nome metodo contenente caratteri maiuscoli
Letterale del documento con opzione di divisione righe attiva: durante la creazione di un servizio Web dal basso verso l'alto, per impostazione predefinita, l'opzione di divisione righe è attiva. Se si dispone di più input con tipi diversi o di nessun input, potrebbero verificarsi problemi di interoperabilità. Per evitare questo problema, utilizzare RPC/literal. Bean Java con nome contenente caratteri minuscoli o di sottolineatura: quando si crea un servizio Web da un bean Java il cui nome contiene caratteri minuscoli o di sottolineatura seguito da un carattere minuscolo, verrà visualizzato il seguente errore:
Errore nella generazione dei file Java e dei descrittori di distribuzione dal file WSDL con getOutputStream() IOException.Configurazioni di protezione diverse: non generate servizi Web con diverse configurazioni di protezione diverse nello stesso modulo/progetto. Utilizzare progetti separati per ciascun servizio Web.
Se WebSphere Application Server V5.0 viene utilizzato per contenere un servizio Web DADX, il file group.properties del gruppo DADX dovrà utilizzare la seguente proprietà initialContextFactory:
initialContextFactory=com.ibm.websphere.naming.WsnInitialContextFactoryInoltre, al file web.xml del progetto che contiene il gruppo DADX, dovrà essere aggiunto quanto segue (ammesso che il nome JNDI dell'origine dati sia jdbc/hospital):
<resource-ref id="ResourceRef_1058550453092">
<res-ref-name>jdbc/hospital</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>CONTAINER</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
Se il client di test universale non è in grado di precaricare la classe locator del client mediante il runtime di WebSphere v5.0.2 o Axis, la causa è che il nome della classe del bean Java nel progetto Web del servizio è lo stesso della classe SEI nel progetto Web del client. Per risolvere questo problema:
- Rimuovere il progetto Web del client dallo spazio di lavoro
- Selezionare il progetto Web del client con il tasto destro del mouse e scegliere "Elimina".
- Individuare application.xml nel progetto EAR e aprire il file nell'editor del descrittore di distribuzione dell'applicazione facendovi doppio clic. Selezionare il modulo del progetto Web del client e scegliere "Rimuovi". Chiudere l'editor e salvare le modifiche.
- Creare il progetto Web del client in un EAR differente, il cui nome preceda in ordine alfabetico il nome del progetto EAR del servizio. Ad esempio, se il nome del progetto EAR del servizio è "DefaultEAR", creare un nuovo nome "ClientEAR".
- Eseguire nuovamente la procedura guidata Servizi Web.
Le preferenze di sovrascrittura file, creazione cartelle e estrazione automatica dei file non vengono osservate durante la creazione dei servizi Web utilizzando i runtime di WebSphere v5.0.2 e Axis. La creazione di cartelle sarà sempre consentita e l'estrazione automatica dei file non sarà mai abilitata.
Durante l'utilizzo del runtime di WebSphere v5.0.2, il file WSDL, SEI e le risorse di distribuzione (serializer e deserializer) vengono sempre sovrascritti. Le risorse di sviluppo (bean di servizio, bean di tipo complesso, classe holder e helper) non vengono mai sovrascritti. Tuttavia, verrà visualizzato un messaggio di avviso relativo alla sovrascrittura dei descrittori, se esistenti. Per sovrascrivere i descrittori di distribuzione e continuare con la procedura scegliere OK, oppure scegliere Annulla se non di desidera sovrascrivere i descrittori.
Durante l'utilizzo del runtime di Apache Axis 1.0, gli emittenti Axis rigenerano ogni volta tutti i file Java del server/client, deploy.wsdd and undeploy.wsdd. WSDL2Java per la generazione del servizio genererà solo il file di implementazione della struttura, se non ancora creato. Se questa implementazione esiste già, non verrà sovrascritta.
La creazione dei servizi Web con il runtime di Apache Axis 1.0 si basa sugli emittenti Java2WSDL e WSDL2Java forniti in Axis 1.0. Il supporto per document/literal e document/literal (wrapped) causa problemi in Axis 1.0, quindi è preferibile utilizzare RPC/encoded per la creazione dei servizi Web con il runtime di Apache Axis 1.0.
Se durante la definizione dell'associazione personalizzata tra pacchetto e spazio nomi, dopo aver scelto Aggiungi, vengono visualizzati pacchetto e spazio nomi non corretti nella tabella, sostituire questi valori predefiniti ed immettere la propria associazione pacchetto spazio nomi.
Durante la generazione delle strutture o dei proxy del servizio Web da un file WSDL che utilizza lo stesso nome per uno dei suoi <servizio> elemento e <porta> elemento, non utilizzare le JSP di esempio come client di verifica. Le JSP di esempio generate contengono errori e non verranno compilate. Qualsiasi tentativo di esecuzione delle JSP di esempio sul server produrrà l'ERRORE 500 nel browser che indica che le JSP di esempio non possono essere caricate, e una serie di eccezioni nella console del server che indicano che il contenitore servlet non è stato in grado di compilare le JSP di esempio.
Quando si esegue lo strumento riga comandi su Windows un tedesco, alcuni caratteri vengono visualizzati come "?" nell'output del prompt dei comandi. Questo carattere corrisponde a una dieresi.
La procedura guidata Creazione servizi Web potrebbe avere esito negativo durante la generazione di WSDL se il nome host "localhost" non è definito nel computer. Se "localhost" non è definito è possibile anche che UTF non venga avviato correttamente.
In Windows, la seguente voce deve essere inserita nel file [INSTALL-DRIVE]\WINNT\system32\drivers\etc\hosts:
127.0.0.1 localhost
In Linux, la seguente voce deve essere inserita nel file /etc/hosts:
127.0.0.1 localhost
Il runtime di IBM SOAP dovrebbe essere utilizzato soprattutto per motivi di compatibilità con versioni precedenti. Si consiglia vivamente di utilizzare la procedura guidata Servizi Web con il runtime di IBM WebSphere 5.0.2 per tutta la produzione. Quando si utilizza la procedura guidata Servizi Web con il runtime di IBM SOAP, potrebbero verificarsi le seguenti limitazioni permanenti:
- Generazione di un documento WSDL da un bean Java
- char e java.lang.Character richiedono l'immissione di associazioni personalizzate, poiché non esistono associazioni predefinite da char o java.lang.Character a XSD WSDL.
- I tipi di wrapper primitivi, java.lang.Boolean, java.lang.Byte, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float e java.lang.Double, non possono coesistere con i singoli tipi primitivi corrispondenti, boolean, byte, short, int, long, float e double, in tutti i parametri di input di un bean di servizio. Ad esempio, un bean di servizio in cui java.lang.Integer e int compaiono entrambi come tipi di parametri di input non può essere trasformato in un servizio Web completo. Quando viene effettuato un tentativo di utilizzare la procedura guidata del servizio Web per creare un servizio Web da questo tipo di bean di servizio, viene visualizzato un messaggio di avvertenza a meno che i metodi contenenti i tipi primitivo o il tipo wrapper non siano selezionati nella pagina Metodi del bean Java del servizio Web della stessa procedura guidata. Tuttavia, è necessario accertarsi che questi metodi non siano stati selezionati la prima volta in cui è stata visualizzata la pagina indicata. Ritornare a questa pagina ed eliminare i metodi in questione dopo la visualizzazione del messaggio di avvertenza potrebbe produrre un servizio Web incompleto. In tal caso, la procedura memorizzata deve essere riavviata in modo da selezionare il metodo appropriato la prima volta in cui viene visualizzata la pagina Metodi del bean Java del servizio Web.
- Matrici a più dimensioni non supportate. Un'alternativa Java è quella di inserire i bean Java a più dimensioni. Ad esempio, invece di MyType[][], utilizzare il modello MyArray[] dove MyArray ha una proprietà di tipo MAd yType[] valida.
- Un metodo con un elenco di argomenti di input contenente una combinazione di elementi DOM e tipi di bean semplici richiede l'immissione di una o più associazioni personalizzate. La specifica WSDL (Web Services Definition Language) versione 1.1 supporta uno stile di codifica per tutte le parti di input (parametri). Il runtime di SOAP (Simple Object Access Protocol) versione 2.2 non fornisce alcun supporto di associazione predefinito per l'elemento DOM con codifica SOAP ai tipi primitivi e ai bean con codifica XML letterale.
- Quando si configura un'associazione personalizzata, se si utilizza una classe serializer o deserializer dall'ambiente di runtime SOAP (ad esempio, le classi del pacchetto org.apache.soap.encoding.soapenc) e si riceve il messaggio di errore "la classe serializer/deserializer selezionata non può essere caricata da questo progetto", è probabile che soap.jar non si trovi nel percorso di generazione del progetto Web. Per risolvere il problema, chiudere la procedura guidata ed utilizzare la finestra delle proprietà del progetto Web per aggiungere WS_installdir\wstools\eclipse\plugins\com.ibm.etools.webservice\runtime\soap.jar al percorso di generazione del progetto web, quindi riaprire la procedura guidata del servizio Web.
- Le associazioni personalizzate non sono supportate per i tipi complessi nidificati. Anche se i tipi nidificati vengono visualizzati nella pagina Associazioni della procedura guidata, le associazioni personalizzate per questi tipi verranno ignorate.
- .Quando si crea un servizio Web da una classe Java, la cui interfaccia contiene un tipo Java astratto, il servizio Web Java nella pagina Associazione XML può impostare erroneamente il campo deserializer per il tipo astratto su org.apache.soap.encoding.soapenc.BeanSerializer. Questa operazione restituirà un errore in fase di runtime, poiché il codice deserializer nella classe BeanSerializer non è in grado di creare un'istanza del tipo astratto. Per evitare che si verifichi questa condizione, scegliere l'opzione Associazione personalizzata per il tipo e modificare il campo deserializer utilizzando il nome della classe scritta per deserializzare il tipo astratto.
- Gli strumenti dei servizi Web attualmente non supportano la creazione di servizi Web da bean Java che contengono classi interne nidificate (ad esempio, classi interne definite in una classe di primo livello). Per risolvere tale problema è necessario spostare la classe interna in classi di primo livello di un diverso file Java.
- Durante la creazione di un servizio Web da un bean Java che utilizza altri bean Java con proprietà di tipo Vector, Hashtable o Map, XSD verrà generato con complexTypes contenenti tipi "Vector" e "Map" dallo spazio nomi "http://xml.apache.org/xml-soap". Poiché lo spazio nomi non contiene alcuno schema, il validator XSD produrrà errori e avvisi simili al seguente:
Tali errori ed avvisi non interferiranno con l'elaborazione di WSDL e XSD eseguita dalle procedure guidate dei servizi Web. I tipi "Map" e "Vector" verranno associati correttamente alle rispettive controparti Java. Tenere presente che altri fornitori potrebbero avere difficoltà nell'elaborazione di WSDL o XSD contenenti questi tipi perché http://xml.apache.org/xml-soap non è uno spazio nomi riconosciuto dalle specifiche WSDL 1.1 o SOAP 1.1. Per migliorare la interoperabilità, è possibile adattare le classi di raccolta Java, alle matrici e ai bean, e successivamente generare i servizi Web dagli adattatori.
- Error src-resolve: Cannot resolve the name 'xsd2:Vector' to a(n) type definition component.
- Warning src-import.0: Failed to read imported schema document 'null'.
- Generazione di risorse Java da un documento WSDL
- Il supporto è limitato a un elemento part per input o output. Non è supportato più di un elemento part logici in un messaggio di input o output. Verrà elaborato il primo elemento part, mentre verranno ignorati i rimanenti.
- Quando vengono generate le strutture o i proxy dei servizi Web da WSDL che utilizza il tipo base64Binary dello spazio per i nomi xsd (http://www.w3.org/2001/XMLSchema), l'ambiente runtime del servizio Web utilizzerà effettivamente xsi:type base64 dello spazio per i nomi soapenc (http://schemas.xmlsoap.org/soap/encoding/). In generale, i due tipi possono essere interscambiati. Tuttavia, è possibile che le differenze tra il tipo del messaggio e quello dello schema possano causare il rifiuto del messaggio durante il runtime del protocollo SOAP. Se si verifica tale situazione, è possibile creare un serializer simile a Base64Serializer di Apache SOAP e scrivere xsd:base64binary invece di soapenc:base64.
- Le strutture dei bean Java non verranno compilate se sono create da documenti WSDL contenenti nomi di parti e di operazioni che non rappresentano identificativi Java validi. I nomi di parti e operazioni WSDL devono essere identificativi Java validi per la corretta creazione di una struttura di bean Java.
- Le procedure guidate dei servizi Web utilizzano per impostazione predefinita URI "http" durante la generazione di WSDL; tuttavia, alcuni documenti WSDL di altri strumenti possono impiegare occasionalmente URI del servizio Web, dell'azione SOAP o dello spazio dei nomi di destinazione che utilizzano schemi diversi da "http", come ad esempio "urn". Nella creazione di proxy e strutture da WSDL che contengono URI non http, le procedure guidate dei servizi Web potrebbero eseguire l'associazione degli URI al pacchetto Java "com.example" al posto di un altro pacchetto più appropriato. In alcuni casi, le procedure guidate potrebbero non riuscire a gestire interamente alcuni URI, provocando il messaggio di errore "IWAB0234E Errore interno"
- Durante la creazione di proxy Java e di strutture Java da WSDL, è ora possibile eseguire l'associazione di tipi booleani intrinseci XSD, byte, short, int, long e double, con tipi wrapper "java.lang" (ad esempio, java.lang.Integer) al posto di tipi primitivi Java (ad esempio, int). Per impostazione predefinita, le procedure guidate de servizi Web eseguiranno le associazioni ai tipi primitivi Java. Se si desidera che l'associazione venga invece eseguita con classi wrapper "java.lang", aprire Finestre > Preferenze -> Servizi Web > Generazione codice e selezionare "Esegui associazione dei tipi di dati XML semplici con classi di wrapper java.lang".
- Quando viene specificata un'associazione personalizzata da un tipo Java a un tipo XSD nella creazione di un servizio Web da un bean Java o EJB, il campo Classe bean viene automaticamente impostato sul nome completo del tipo Java e non può essere modificato. Quando viene eseguita l'associazione personalizzata ad una matrice Java, il nome della classe bean sarà in formato matrice, ad esempio "java.lang.String[]", e verrà emesso in questo modo nei file del descrittore di distribuzione ".isd" e "dds.xml". Questo formato del nome classe non viene elaborato correttamente dal runtime SOAP e provocherà un errore simile al seguente:
Errore di distribuzione nel servizio SOAP http://tempuri.org/webservice.AddressBook: impossibile risolvere il nome classe java.lang.String[]: java.lang.String[]
Come conseguenza non sarà possibile personalizzare l'associazione del serializzatore per la matrice Java sul servizio. Come soluzione alternativa parziale, è possibile lasciare il campo Classe serializer vuoto per l'associazione personalizzata. In tal modo la generazione del nome della classe array non verrà eseguita nel descrittore di distribuzione e il servizio funzionerà correttamente. La classe Deserializer, e la possibilità di associare il deserializzatore in modalità personalizzata, non subiscono alcuna interferenza dovuta a questo problema.
- Considerazioni sul runtime
- Se si seleziona la preferenza per la creazione di codice dei servizi Web "Abilita l'associazione basata su elementi", avendo selezionato la distribuzione in WebSphere Application Server V4, è possibile che venga visualizzato il seguente elemento nel file ISD e dds.xml:
<isd:map
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:x=""
qname="x:some-name"
xml2JavaClassName="some-serializer"/>L'editor XML potrebbe segnalare l'errore riportato di seguito:
Il valore dell'attributo "xmlns:x" non è valido. I binding dello spazio dei nomi con prefisso potrebbero non essere vuoti.
Questa condizione non comporta problemi per il WebSphere Application Server V4. Tuttavia, non tentare di distribuire questo dds.xml in un altro server che utilizza Xerces 2.x (XML4J 4.x) o successiva, ad esempio WebSphere Application Server V5). In caso contrario, si verificheranno analoghi errori di analisi Xerces quando il server caricherà il file dds.xml. È possibile generare nuovamente il file dds.xml selezionando il tipo di server appropriato nello scenario dei servizi Web. In questo modo verrà creato il file dds.xml adatto a quel tipo di server.
Inoltre, verrà visualizzato un errore di analisi Xerces simile quando si tenta di distribuire un servizio Web da tale file ISD. Per evitare questo problema, occorre modificare manualmente il file nel formato seguente:
<isd:map
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
qname="some-name"
xml2JavaClassName="some-serializer"/>
- Quando viene richiamato un servizio Web creato da un bean Java o un EJB, potrebbe essere restituito un messaggio SOAPException con la seguente targetException:
"java.lang.IllegalArgumentException: Unable to instantiate ..."
In questo caso, il problema può essere dovuto al fatto che il metodo esposto come servizio Web contiene un bean Java senza costruttore pubblico come tipo restituito del parametro and/or. Il costruttore pubblico predefinito è necessario al runtime SOAP per costruire l'oggetto come parte del processo di deserializzazione.- I file di protezione, cl-ver-config.xml e sv-ver-config.xml, attualmente distribuiti nel progetto Web sono i file di WebSphere versione 4.0 e non corrispondono esattamente ai DTD. Tali file però funzionano correttamente su entrambe le versioni di WebSphere e cioè la versione 4.0 e 5.0, nonostante i messaggi di errore della convalida segnalino la necessità di dichiarare i file "xmlns:ds" o "xmlns:SOAP-SEC".
- Se la Configurazione server viene aperta in un editor, la procedura guidata Servizi Web potrebbe non riuscire ad avviare il server poiché il progetto Web relativo al servizio Web non è stato aggiunto alla Configurazione server. Per risolvere il problema è sufficiente chiudere l'editor di configurazione del server.
- Servizi Web ISD
- Una volta compilata un'associazione personalizzata quando si creano servizi Java o Web EJB, le informazioni relative all'associazione, a eccezione dell'URL di ubicazione XSD, vengono memorizzate nel file ISD. Le informazioni vengono richiamate quando si creano servizi Web dal file ISD. Di conseguenza, quando si creano servizi Web da un file ISD, nella pagina Associazioni da Java a XML della procedura guidata, è necessario inserire la l'URL del percorso XSD manualmente.
Se si crea un servizio Web da un bean Java o EJB, scegliendo IBM SOAP come runtime del servizio e Apache Axis 1.0 come runtime del client, potrebbe essere visualizzato il seguente errore:
WSDL non trovato
Per evitare questo problema, creare prima il servizio Web senza generare un proxy. Quindi creare un client per il servizio Web dal file WSDL generato.
Procedendo con la procedura guidata Client dei servizi Web, scegliendo fine nella pagina Configurazione dell'ambiente del client, verrà visualizzato l'errore:
"null" non risolvibile
Per risolvere il problema, premere Avanti nella pagina e nella pagina successiva, quindi Fine.
Nelle pagine di aiuto Creazione, verifica e convalida di un servizio Web compatibile con WS-I e Creazione di un servizio Web da un file WSDL, se si utilizza il file HelloService.wsdl da wsad_install/wstools/eclipse/plugins/com.ibm.etools.cs.wsdl.content_5.1/examples, modificare il percorso della porta del servizio in base ai diversi runtime, come mostrato di seguito:
Per IBM Soap:
location="http://localhost:9080/HelloWorldSample/servlet/rpcrouter"
Per i runtime di Apache Axis o WebSphere 5.0.2:
location="http://localhost:9080/HelloWorldSample/services/Hello_Port"
Se si desidera importare un file wsdl personalizzato, assicurarsi che il percorso sia stato impostato correttamente in base al runtime selezionato come indicato precedentemente.
Visualizza il file Readme principale
(C) Copyright IBM Corporation 2000, 2003. Tutti i diritti riservati.