Ta reguła wykrywa obecność usług WWW JAX-RPC na postawie następujących kryteriów:
- Obecność pliku web-services.xml.
- Obecność pliku weblogic-webservices.xml i pliku webservices.xml w tym samym folderze.
Rozwiązanie ręczne
Aby wygenerować usługi sieciowe JAX-RPC na podstawie deskryptorów wdrożenia usługi sieciowej WebLogic J2EE, należy ręcznie utworzyć skrypt Ant przy użyciu określonych zadań IBM® Ant zadań. Skrypt należy dodać do głównego folderu projektu, jeśli plik wygenerowany przez IBM Ant jeszcze nie istnieje. Zadania te będą obsługują generowanie usług sieciowych JAX-RPC z deskryptorów wdrożenia.
Właściwości reguły
Należy podać prawidłowe wartości właściwości reguły, aby zapewnić dokładne wyniki podczas analizy. Właściwości te powinny zostać sprawdzone i odpowiednio skonfigurowane w oparciu o kontekst aplikacji. Właściwości dla tej reguły są następujące:
- Nazwa generowanego skryptu Ant:
Określa nazwę nowego wygenerowanego skryptu Ant. Nazwa skryptu musi zawierać prawidłową nazwę pliku musi być prawidłową nazwą pliku. Wartość nie może zawierać żadnych ukośników do przodu ani do tyłu. Skrypt będzie znajdował się w folderze głównym projektu.
Wartość domyślna: build-ibm-ws.xml.
- Nazwa folderu generowania:
Określa nazwę folderu, w którym będą znajdować się artefakty generowania. Wartość nie może zawierać żadnych ukośników ani ukośników odwrotnych. Folder generowania będzie znajdować się w folderze głównym projektu.
Wartość domyślna: ibm-ws-gen.
Ścieżka klas Ant
Ścieżka klas ant jest obliczana na podstawie projektu Eclipse.
Ważne jest, aby zweryfikować, czy wszystkie elementy wymagane na potrzeby kompilacji znajdują się w ścieżce klas środowiska Eclipse.
Usługi JAX-RPC zdefiniowane w pliku web-services.xml
Na podstawie informacji i typu usług zdefiniowanych w pliku web-services.xml generowany jest skrypt Ant, a prawdopodobnie także dodatkowy kod Java reprezentujący interfejs punktu końcowego usługi Web Service w celu ponownego wygenerowania usługi JAX-RPC.
- Obsługiwane komponenty
Tylko bezstanowe komponenty EJB sesji (<stateless-ejb>) i Java(R) (<java-class>) mogą zostać rozpoznane i przekształcone.
- Bezstanowe komponenty EJB:
Plik JAR Enterprise JavaBeans (TM) (EJB), zdefiniowany w atrybucie ścieżki elementu <ejb-link>, musi istnieć w projekcie. Zautomatyzowana poprawka skanuje plik EJB JAR i generuje nową klasę Service Endpoint Interface (SEI) na podstawie zdalnej klasy EJB.
Interfejsy SEI różnią się od zdalnych interfejsów EJB tym, że klasa musi być rozszerzona
java.rmi.Remote
i każda metoda musi zgłosić wyjątek,
java.rmi.RemoteException
.
Zautomatyzowana poprawka użyje Java refleksji na zdalnym interfejsie EJB do wygenerowania nowego SEI .
Dlatego upewnij się, że ścieżka klas projektu Eclipse zawiera wszystkie niezbędne klasy, pliki JAR i wymagane katalogi do pomyślnego załadowania zdalnej klasy EJB.
SEI musi zostać wygenerowany w folderze sei wewnątrz folderu generowania folderu generowania, podanego przez użytkownika w regule properties. Pakiet SEI odpowiada pakietowi zdalnego interfejsu EJB a nazwa SEI będzie taka sama jak zdalnego interfejsu EJB z dołączonym słowem SEI. Ponadto nowy folder SEI zostanie dodany do ścieżki klas projektu.
- Komponenty klasy Java:
Podobnie jak w przypadku komponentów EJB, automatyczna poprawka wygeneruje interfejs punktu końcowego usługi z klasy Java zdefiniowanej w atrybucie <class-name>.
- Generowane elementy docelowe narzędzia Ant:
Wygenerowany skrypt Ant zawiera cele do wygenerowania pliku WSDL i usługi JAX-RPC w oparciu o nowy SEI, który zostanie utworzony.
Cel generowania pliku WSDL będzie mieć nazwę genWSDL_ssss, gdzie ssss to nazwa usługi JAX-RPC, która została udostępniona w polu atrybutu name elementu <web-service>.
Cele generowania usługi mają nazwę genService_pppp, gdzie pppp to nazwa komponentu określonego przez atrybut name elementu <stateless-ejb> lub <java-class>.
Zautomatyzowana poprawka nie będzie wykorzystywać informacji dostarczonych w innych elementach, takich jak <handlers-chain>, <types>, <operations>, <security> i tak dalej.
Usługi JAXRPC zdefiniowane w pliku webservices.xml
Na podstawie informacji i typu usług zdefiniowanych w pliku webservices.xml generowany jest skrypt Ant w celu ponownego wygenerowania usługi JAX-RPC.
- Generowane elementy docelowe narzędzia Ant:
Wygenerowany skrypt Ant zawiera cele umożliwiające wygenerowanie pliku WSDL i usługi JAX-RPC.
Cel generowania WSDL jest generowany tylko wtedy, gdy nie można zlokalizować pliku WSDL zdefiniowanego w elemencie, <wsdl-file>.
Jeśli zostanie utworzony, cel generowania pliku WSDL będzie miał nazwę genWSDL_ssss, gdzie ssss to nazwa usługi zdefiniowanej w elemencie <webservice-description-name>.
Cele generowania usługi będą miały nazwę genService_pppp, gdzie pppp to nazwa portu zdefiniowana przez element <port-component-name>.
Zadania Ant serwera IBM WebSphere Application Server
Serwer WebSphere(R) Application Server zawiera zadania Ant, takie jak java2wsdl i wsdl2java służące do tego, aby wygenerować wymagane artefakty dla usług JAX-RPC. Wygenerowany skrypt Ant używa tych zadań do budowania usługi.
Dodatkowe informacje na temat tych zadań można uzyskać
w dokumentacji serwera WebSphere Application Server.
Uruchamianie skryptu Ant
Po utworzeniu skryptu Ant należy go wyświetlić i w razie potrzeby dodać dodatkowe dostosowania.
Więcej informacji na temat dodatkowych modyfikacji zadań programu IBM Ant można znaleźć w dokumentacji serwera aplikacji.
Skrypt należy uruchomić za pomocą narzędzi Ant,
które są dołączone do produktu WebSphere Application Server. Skrypt IBM Ant można
uruchomić z:
- WAS_HOME\bin\ws_ant.bat w systemach operacyjnych Windows(R)
- WAS_HOME\bin\ws_ant.sh w systemach operacyjnych UNIX(R)
Przykład: c:\IBM\AppServer\bin\ws_ant.bat -f
c:\eclipse\MyProject\ibm-ws-gen.xml genService_TestService
Po uruchomieniu celów narzędzia Ant utworzone artefakty znajdą się w folderze generowania. Użytkownik może następnie przeanalizować wygenerowany kod i deskryptory wdrażania, a następnie dodać te artefakty do ich modułów.