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.
Szybka poprawka
W skanerze kodu źródłowego ta reguła generuje skrypt Ant z konkretnymi zadaniami narzędzia IBM(R) Ant. Te zadania umożliwiają wygenerowanie usług WWW JAX-RPC opartych na deskryptorach wdrażania usługi Web Service J2EE produktu WebLogic. Szybka poprawka skanuje deskryptory wdrażania usług WWW i generuje skrypt Ant, jeśli plik wygenerowany przez narzędzie IBM Ant nie istnieje w folderze głównym projektu. Skrypt ten zawiera zadania IBM Ant służące do generowania usług WWW JAX-RPC.
Właściwości reguły
Należy podać poprawne wartości właściwości reguły. Aby zmienić wartości właściwości reguły, należy wybrać regułę w oknie konfiguracji analizatora oprogramowania. Następnie należy użyć pól znajdujących się na karcie właściwości. Dla tej reguły są dostępne następujące właściwości:
- Nazwa generowanego skryptu Ant:
Określa nazwę nowego skryptu Ant, który ma zostać wygenerowany. Nazwa skryptu musi być poprawną nazwą pliku. Wartość nie może zawierać żadnych ukośników ani ukośników odwrotnych.Wygenerowany skrypt zostanie umieszczony 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 komponentów EJB zdefiniowany w atrybucie ścieżki elementu <ejb-link> musi istnieć w projekcie. Szybka poprawka skanuje plik JAR komponentów EJB i generuje nową klasę SEI (Service Endpoint Interface) na podstawie zdalnej klasy komponentów EJB.
Interfejsy SEI różnią się od zdalnych interfejsów EJB tym, że klasa musi rozszerzać interfejs java.rmi.Remote i każda metoda musi zgłaszać wyjątek java.rmi.RemoteException.
Szybka poprawka używa introspekcji Java na zdalnym interfejsie komponentów EJB w celu wygenerowania nowego interfejsu SEI. W związku z tym należy skonfigurować ścieżkę klas projektu Eclipse z wszystkimi niezbędnymi klasami, plikami JAR, folderami itd., aby szybka poprawka mogła poprawnie załadować zdalną klasę komponentów EJB.
Interfejs SEI zostanie wygenerowany w folderze sei wewnątrz folderu generowania udostępnionego przez użytkownika we właściwościach reguły. Pakiet SEI jest zgodny z pakietem zdalnego interfejsu komponentów EJB, a nazwa interfejsu SEI będzie taka sama, jak nazwa zdalnego interfejsu komponentów EJB z dodanym do niej słowem SEI. Dodatkowo nowy folder SEI zostanie dodany do ścieżki klas projektu.
- Komponenty klasy Java:
Podobnie jak w przypadku komponentów EJB szybka poprawka umożliwia wygenerowanie interfejsu SEI na podstawie klasy Java zdefiniowanej w atrybucie <class-name>.
- Generowane elementy docelowe narzędzia Ant:
Wygenerowany skrypt Ant zawiera cele umożliwiające wygenerowanie pliku WSDL i usługi JAX-RPC na podstawie nowego interfejsu SEI, który został utworzony przez szybką poprawkę.
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>.
Szybka poprawka nie używa informacji udostępnionych przez inne elementy, takie jak <handlers-chain>, <types>, <operations>, <security> itd.
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 pliku WSDL jest generowany tylko wtedy, gdy szybka poprawka nie może znaleźć 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
Gdy szybka poprawka utworzy skrypt Ant, należy go przejrzeć i w razie czego wprowadzić 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.