Această regulă detectează prezenţa serviciilor web JAX-RPC pe baza următoarelor criterii:
- Prezenţa fişierului web-services.xml
- Prezenţa fişierului weblogic-webservices.xml şi
fişierului webservices.xml în acelaşi folder
Soluție manuală
Pentru a genera servicii web JAX-RPC bazate pe descriptori de implementare a serviciilor web WebLogic J2EE, trebuie să creați manual un script Ant utilizând anumite IBM® Ant sarcini specifice. Scriptul trebuie adăugat la folderul rădăcină al proiectului dacă nu există deja un fișier generat de IBM Ant. Aceste sarcini vor vor gestiona generarea serviciilor web JAX-RPC din descriptorii de implementare.
Proprietăţi regulă
Trebuie să furnizați valorile corecte pentru proprietățile regulii pentru a asigura rezultate exacte în timpul analizei. Aceste proprietăți trebuie revizuite și configurate corespunzător în funcție de contextul aplicației dumneavoastră. Proprietăţile pentru această regulă sunt:
- Nume script Ant generat
:
Specifică numele noului script Ant generat. Numele scriptului trebuie să fie un nume de fișier valid. Valoarea nu trebuie să includă nicio bară oblică înainte sau înapoi. Scriptul va fi în folderul rădăcină al proiectului.
Valoarea implicită: build-ibm-ws.xml
- Nume folder generare :
Specifică numele folderului în care vor fi stocate artefactele de generare. Valoarea nu trebuie să includă nicio bară oblică înainte sau înapoi. Folderul de generare va fi folderul rădăcină al proiectului.
Valoarea implicită: ibm-ws-gen
Cale clasă Ant
Calea de clase Ant este calculată din proiectul Eclipse.
Este important să verificaţi că toate elementele care sunt necesare pentru compilare sunt în calea de clasă Eclipse.
Serviciile JAX-RPC care sunt definite în fişierul web-services.xml
Bazat pe informaţiile şi tipul de servicii definite în
web-services.xml, un script Ant,
şi posibil un cod Java suplimentar care reprezintă interfaţa de punct final sunt generate pentru a reproduce serviciul JAX-RPC.
- Componente suportate
Numai componentele Stateless Session enterprise beans (<stateless-ejb>) și Java (R) (<java-class>) pot fi recunoscute și convertite.
- Componente EJB stateless:
Fișierul JAR Enterprise JavaBeans (TM) (EJB), astfel cum este definit în atributul path al elementului <ejb-link>, trebuie să existe în proiect. Soluția automată va scanează fișierul EJB JAR și generează o nouă clasă Service Endpoint Interface (SEI) bazată pe clasa EJB la distanță.
Interfețele SEI diferă de interfețele la distanță EJB prin faptul că clasa trebuie să extindă
java.rmi.Remote
, iar fiecare metodă trebuie să arunce excepția,
java.rmi.RemoteException
.
Soluția automată va utiliza Java reflecție pe interfața EJB pentru a genera noul SEI .
Prin urmare, asigurați-vă că classpath-ul proiectului Eclipse include toate clasele, fișierele JAR și directoarele necesare pentru a încărca cu succes clasa EJB la distanță.
SEI trebuie să fie generat în folderul sei, în interiorul folderul de generare, astfel cum este furnizat de utilizator în regula properties. Pachetul SEI se potrivește cu cel al interfeței la distanță EJB iar numele SEI va fi același cu cel al interfeței la distanță EJB cu cuvântul SEI adăugat. În plus, noul folder SEI este adăugat la calea clasei proiectului.
- Componente clasă Java:
La fel ca în cazul componentelor EJB, soluția automată va genera o interfață Service Endpoint din clasa Java care este definită în atributul <class-name>.
- Ţinte Ant generate:
Scriptul Ant generat conține obiective pentru a genera fișierul WSDL și serviciul JAX-RPC pe baza noului SEI care va fi creat.
Ținta de generare WSDL va avea numele, genWSDL_ssss, unde ssss este numele serviciului JAX-RPC care a fost furnizat în câmpul de atribut name al elementului <web-service> element.
Țintele de generare a serviciilor au numele, genService_pppp, unde pppp este numele componentei din atributul name al elementului <stateless-ejb> sau <java-class>.
Soluția automată nu va utiliza informațiile furnizate în alte elemente, cum ar fi <handlers-chain>, <types>, <operations>, <security> și așa mai departe.
Serviciile JAXRPC definite în fişierul webservices.xml
Bazat pe informaţiile şi tipurile de servicii definite în fişierul
webservices.xml este generat un script Ant pentru a reproduce serviciul JAX-RPC.
- Ţinte Ant generate:
Scriptul Ant generat conţine ţinte pentru a
genera fişierul WSDL şi serviciul JAX-RPC.
Ținta de generare WSDL este generată numai dacă nu puteți localiza fișierul WSDL definit în elementul, <wsdl-file>.
Dacă este creat, ținta de generare WSDL are numele genWSDL_ssss,, unde ssss este numele serviciului, astfel cum este definit în elementul, <webservice-description-name>.
Țintele de generare a serviciilor vor avea numele, genService_pppp, unde pppp este numele portului, astfel cum este definit de elementul elementul <port-component-name>.
Taskuri Ant IBM WebSphere Application Server
WebSphere(R) Application Server include taskuri Ant cum ar fi java2wsdl
şi wsdl2java pentru generarea artefactelor necesare pentru serviciile JAX-RPC. Scriptul Ant generat utilizează aceste taskuri pentru a construi serviciul.
Informații suplimentare cu privire la aceste taskuri pot fi obținute din
documentația WebSphere Application Server.
Rulare script Ant
După ce ați creat scriptul Ant, vizualizați scriptul și adăugați personalizări suplimentare, dacă este necesar.
Consultați documentația serverului de aplicații privind personalizările suplimentare pentru taskurile IBM Ant.
Trebuie să rulați scriptul utilizând uneltele Ant
care sunt incluse în WebSphere Application Server. Scriptul IBM Ant
poate fi rulat de la:
- WAS_HOME\bin\ws_ant.bat pe sisteme de operare Windows(R)
- WAS_HOME\bin\ws_ant.sh pe sisteme de operare UNIX(R)
Exemplu: c:\IBM\AppServer\bin\ws_ant.bat -f
c:\eclipse\MyProject\ibm-ws-gen.xml genService_TestService
Odată ce țintele Ant sunt rulate, artefactele produse se află în folderul de generare în folderul de generare. Utilizatorul poate apoi să inspecteze codul și descriptorii generați codul generat și descriptorii de desfășurare, iar apoi să adauge aceste artefacte la modulele sale module.
Recomandare: Luați în considerare migrarea la JAX-WS
Dacă efectuați deja modificări la serviciile dvs. web JAX-RPC ca parte a eforturilor de migrare sau modernizare, vă recomandăm să evaluați o trecere la JAX-WS ( Java API pentru servicii web XML).
JAX-WS este succesorul JAX-RPC și oferă mai multe avantaje:
- Design API modern cu suport mai bun pentru adnotări și integrare cu Java EE
- Interoperabilitate îmbunătățită cu alte cadre și standarde de servicii web
- Instrumente și suport mai bune în serverele de aplicații și IDE-urile moderne
- Viabilitate pe termen lung, deoarece JAX-RPC este considerată o tehnologie moștenită
Migrarea la JAX-WS acum poate reduce datoriile tehnice viitoare și vă poate alinia aplicația la standardele actuale ale serviciilor web Java.
Pentru îndrumări privind migrarea de la JAX-RPC la JAX-WS, consultați documentația Scenarii de migrare a serviciilor Web: JAX-RPC la JAX-WS și JAXB.