2013-06-25 26 views
5

Generuję klasy Java z wielu plików WSDL. Prace. Jednak chcę podać odpowiedni plik wsdl w adnotacji @WebServiceClient. W atrybucie wsdlLocation oczekuję ścieżki katalogu połączonej z odrębną nazwą pliku. Na przykład. /myDir/myWsdl-1.wsdl dla pierwszej usługi internetowej. Jednak właściwość wsdlLocation zawiera tylko "/ myDir" - bez nazwy usługi. Jak mogę podać tę nazwę dla każdego klucza wsdl?Tworzenie i dołączanie klas Java i wielu plików WSDL dla słoika

@WebServiceClient(name = "myService", targetNamespace = "http://mycompany.com/services/", wsdlLocation = "/myDir") 

Poniżej jest moja instrukcja:

<wsdlLocation>/myDir</wsdlLocation> 
<wsdlDirectory>src/main/resources/myDir</wsdlDirectory> 
<wsdlFiles> 
    <wsdlFile>myWsdl-1.wsdl</wsdlFile> 
    <wsdlFile>myWsdl-2.wsdl</wsdlFile> 
    <wsdlFile>myWsdl-3.wsdl</wsdlFile> 
    <wsdlFile>myWsdl-4.wsdl</wsdlFile> 
</wsdlFiles> 

Co wsuwa moją uwagę?

Dzięki za wszelkie wskazówki. Feder.

+0

Dodanie wartości/* do wartości wsdLocation również nie pomaga. "Zgłasza, że ​​pliki wiążące zewnętrzne nie mogą być powiązane z większą liczbą plików WSDL (/ myDir/*) Użyj albo wbudowanych wiązań lub wielu znaczników wykonawczych." – feder

Odpowiedz

5

Ok. Można użyć ścieżki, po której następuje ukośnik i gwiazdka, aby wygenerować klasy dla plików WSDL z mutle. Na przykład.

<wsdlLocation>/myDir/*</wsdlLocation> 

Jednak w tym przypadku nie można zastosować wiązania.

<bindingDirectory>src/main/binding</bindingDirectory> 

Jeśli trzeba zastosować wiążący dla każdego z WSDLs, trzeba powtórzyć blok wykonania wtyczki lub zastosować WSDL-inline-wiążące. Zobacz ten discussion for inline-binding.

Mam nadzieję, że to pomaga także innym.

0

Myślę, że brakuje <wsdlFiles> elementu zawierającego listę elementów <wsdlFile>. Powinno być tak:

<wsdlDirectory>src/main/resources/myDir</wsdlDirectory> 
<wsdlFiles> 
    <wsdlFile>myWsdl-1.wsdl</wsdlFile> 
    <wsdlFile>myWsdl-2.wsdl</wsdlFile> 
    <wsdlFile>myWsdl-3.wsdl</wsdlFile> 
    <wsdlFile>myWsdl-4.wsdl</wsdlFile> 
</wsdlFiles> 
+0

Przykład użycia '' można znaleźć tutaj: https://jax-ws-commons.java.net/jaxws-maven-plugin/wsimport-mojo.html#wsdlLokalizacja – TrueCurry