Questa regola rileva la presenza di servizi Web
JAX-RPC in base ai seguenti criteri:
- La presenza del file web-services.xml
- La presenza del file weblogic-webservices.xml e del file webservices.xml nella stessa cartella.
Soluzione manuale
Per generare servizi web JAX-RPC basati sui descrittori di distribuzione dei servizi web WebLogic J2EE, è necessario creare manualmente uno script Ant utilizzando task specifici IBM® Ant compiti specifici. Lo script deve essere aggiunto alla cartella principale del progetto se non esiste già un file generato da IBM Ant. Questi compiti gestiscono la generazione dei servizi web JAX-RPC dai descrittori di distribuzione.
Proprietà della regola
È necessario fornire i valori corretti per le proprietà della regola per garantire risultati accurati durante l'analisi. Queste proprietà devono essere esaminate e configurate in modo appropriato in base al contesto dell'applicazione. Le proprietà di questa regola sono:
- Nome script Ant generato
:
Specifica il nome del nuovo script Ant generato deve essere un nome di file valido. Il valore non deve includere alcuna barra in avanti o indietro. Lo script si trova nella cartella principale del progetto.
Valore predefinito: build-ibm-ws.xml
- Nome cartella di generazione:
Specifica il nome della cartella in cui risiederanno gli artefatti di generazione; Il valore non deve includere alcuno slash in avanti o indietro. La cartella di generazione sarà nella cartella root del progetto.
Valore predefinito: ibm-ws-gen
Percorso classe Ant
Il percorso classe Ant viene calcolato dal progetto Eclipse.
È importante verificare che tutti gli elementi necessari per la compilazione
siano nel percorso classe Eclipse.
Servizi JAX-RPC definiti nel file
web-services.xml
In base alle informazioni ed al tipo di servizi definiti nel file
web-services.xml, viene generato uno script
Ant e possibilmente ulteriore codice Java che rappresenta l'interfaccia
dell'endpoint del servizio Web per riprodurre il servizio JAX-RPC.
- Componenti supportati
Solo i bean enterprise Stateless Session (<stateless-ejb>) e i componenti di Java (R) (<java-class>) possono essere riconosciuti e convertiti.
- Componenti EJB stateless:
Il file JAR di Enterprise JavaBeans (TM) (EJB), come definito nell'attributo path dell'elemento <ejb-link>, deve esistere nel progetto. La correzione automatica scansiona il file JAR EJB e genera una nuova classe Service Endpoint Interface (SEI) basata sulla classe remota EJB (SEI) basata sulla classe remota EJB.
Le interfacce SEI differiscono dalle interfacce remote EJB in quanto che la classe deve estendere
java.rmi.Remote
, e ogni metodo deve lanciare l'eccezione,
java.rmi.RemoteException
.
La correzione automatica utilizzerà la riflessione di Java sull'interfaccia remota dell'EJB per generare il nuovo SEI per generare il nuovo SEI .
Pertanto, assicurarsi che il percorso di classe del progetto Eclipse includa tutte le classi, i file JAR e le directory necessarie a per caricare correttamente la classe remota EJB.
Il SEI deve essere generato nella cartella, sei, all'interno della della cartella di generazione, come fornito dall'utente nella regola il pacchetto SEI corrisponde al pacchetto dell'interfaccia remota EJB e il nome SEI sarà uguale a quello dell'interfaccia remota EJB eJB e il nome della SEI sarà lo stesso dell'interfaccia remota EJB con l'aggiunta della parola SEI. Inoltre, la nuova cartella SEI viene aggiunta al percorso delle classi del progetto viene aggiunta al percorso delle classi del progetto.
- Componenti classe Java:
Analogamente ai componenti EJB, la correzione automatica genererà un'interfaccia del punto finale del servizio dalla classe Java, definita nell'attributo <nome-classe>.
- Destinazioni Ant generate:
Lo script Ant generato contiene i target per generare il file WSDL e il servizio JAX-RPC in base alla nuova SEI che verrà creata verrà creato.
Il target di generazione del WSDL avrà il nome, genWSDL_ssss, dove ssss è il nome del servizio JAX-RPC fornito nel campo dell'attributo nome di <web-service> fornito nel campo dell'attributo name dell'elemento <web-service> dell'elemento <web-service>.
Gli obiettivi di generazione del servizio hanno il nome, genService_pppp, dove pppp è il nome del componente dall'attributo nome dell'elemento <stateless-ejb> o <java-class>.
La correzione automatica non utilizzerà le informazioni fornite in altri elementi in altri elementi, come <handlers-chain>, <types>, <operazioni>, <sicurezza> e così via.
Servizi JAXRPC definiti nel file
webservices.xml
In base alle informazioni ed al tipo di servizi definiti nel file
webservices.xml, viene generato uno script Ant
per riprodurre il servizio
JAX-RPC.
- Destinazioni Ant generate:
Lo script Ant generato contiene destinazioni per generare un file WSDL e il
servizio JAX-RPC.
Il target di generazione WSDL viene generato solo se non è possibile individuare il file WSDL come definito nell'elemento, <wsdl-file>.
Se è stato creato, il target di generazione del WSDL ha genWSDL_ssss, dove ssss è il nome del servizio come definito nell'elemento nell'elemento <nome-descrizione-servizio>.
I target di generazione del servizio avranno il nome genService_pppp, dove pppp è il nome della porta come definito dall'elemento elemento <port-component-name>.
Attività Ant IBM WebSphere Application
Server
WebSphere(R) Application Server comprende attività Ant come
java2wsdl e wsdl2java per generare le risorse necessarie per i servizi JAX-RPC. Lo script Ant generato utilizza tali attività per creare il servizio.
Ulteriori informazioni su queste attività possono essere ottenute dalla documentazione di
WebSphere Application Server.
Esecuzione dello script Ant
Una volta prodotto lo script Ant, visualizzarlo e aggiungere ulteriori personalizzazioni, se necessario.
Consultare la documentazione di Application Server per le ulteriori personalizzazioni per le attività IBM Ant.
È necessario eseguire lo script utilizzando gli strumenti Ant
che sono inclusi con WebSphere Application Server. Lo script IBM Ant
può essere eseguito da:
- WAS_HOME\bin\ws_ant.bat su sistemi operativi
Windows(R)
- WAS_HOME\bin\ws_ant.sh su sistemi operativi
UNIX(R)
Esempio: c:\IBM\AppServer\bin\ws_ant.bat -f
c:\eclipse\MyProject\ibm-ws-gen.xml genService_TestService
Una volta eseguiti i target di Ant, gli artefatti prodotti risiedono nella cartella di generazione nella cartella di generazione. L'utente può quindi ispezionare il codice e i descrittori di distribuzione generati codice e i descrittori di distribuzione generati e quindi aggiungere questi artefatti ai propri moduli moduli.
Raccomandazione: Considerare la migrazione a JAX-WS
Se state già apportando modifiche ai vostri servizi web JAX-RPC come parte dei vostri sforzi di migrazione o modernizzazione, vi consigliamo vivamente di valutare il passaggio a JAX-WS ( Java API for XML Web Services).
JAX-WS è il successore di JAX-RPC e offre diversi vantaggi:
- Design moderno dell'API con un migliore supporto per le annotazioni e l'integrazione con Java EE
- Miglioramento dell'interoperabilità con altri framework e standard di servizi web
- Migliori strumenti e supporto nei moderni application server e IDE
- Vitalità a lungo termine, in quanto JAX-RPC è considerata una tecnologia legacy
La migrazione a JAX-WS ora può ridurre il debito tecnico futuro e allineare la vostra applicazione agli attuali standard dei servizi web Java.
Per istruzioni sulla migrazione da JAX-RPC a JAX-WS, fare riferimento agli scenari di migrazione dei servizi Web: da JAX-RPC a JAX-WS e alla documentazione JAXB.