2013-04-14 88 views
7

Mam usługę sieci web działa i działa z eclipse/tomcat/axis2. Chcę go powiązać z procesem bpel, więc potrzebuję pliku wsdl. mogę wyświetlić WSDL przez uruchomieniem serwera i będzieCzy oś 2 automatycznie tworzy (i zapisuje) plik wsdl?

http://localhost:8080/axis2/services/MyService?wsdl 

Ale jeśli mogę szukać strukturę katalogów dla projektu, nie mogę znaleźć pliku WSDL. Mogę oczywiście skopiować i wkleić plik wsdl z przeglądarki i zapisać go jako plik tekstowy, a następnie wskazać plik bpel na ten plik wsdl. Ale wydaje się, że oś 2 generowałaby (i zapisywała) plik wsdl, prawda?

+0

nie używam oś, używam JBossWS (nie mówiąc, że jest lepiej, po prostu wskazując out) i ma podobne zachowanie: jeśli przejdziesz do 'http: // serviceUrl/MyService? wsdl', możesz pobrać plik wsdl. Rzecz w tym, że: JBoss faktycznie tworzy brzydki nazwany plik, na przykład 'MyService7365956195937503885.wsdl', a następnie wypisuje swoją ścieżkę na logu serwera zaraz po wdrożeniu aplikacji (wojna lub ucho) (wtedy, jeśli chcesz, możesz podążać ścieżką i zdobyć); Może oś robi coś podobnego. – acdcjunior

Odpowiedz

8

Domyślnie po dodaniu ?wsdl Axis2 nie pobiera wcześniej wygenerowanego dokumentu WSDL. Jest generowany za każdym razem. Ale jeśli umieścisz plik dokumentu WSDL i odpowiednich plików XML Schema wewnątrz folderu w archiwum serwis META-INF, że można odzyskać z:

http://localhost:8080/axis2/services/MyService.wsdl 

nazwa usługi podanej w services.xml i nazwy usługi zdefiniowanej w dokumencie WSDL powinien być taki sam.

W innej strony, jeśli chcesz zapisać wygenerowany dokument WSDL, wystarczy uruchomić coś podobnego do poniższego fragmentu jako aplikacja Javana pewnej klasy projektu, przy użyciu klasy org.apache.ws.java2wsdl.Java2WSDL.

public static void main(String[] args) throws Exception { 
    Java2WSDL.main("-cn com.abc.MyService".split("\\s+")); 
} 

Gdy został on wykonany, wygenerowany plik dokument WSDL i odpowiednie pliki XML Schema można go znaleźć w folderze projektu.

enter image description here

Aby dowiedzieć się więcej opcji, aby z nich korzystać z tego narzędzia, należy użyć następujących:

public static void main(String[] args) throws Exception { 
    Java2WSDL.printUsage(); 
}