Создание классов заглушки для сторонних WS - PullRequest
0 голосов
/ 09 марта 2010

Мне нужно включить довольно сложный сторонний веб-сервис в мое приложение Grails. Мой план состоял в том, чтобы использовать WSDL2Java для генерации классов-заглушек из wsdl, и этот метод был рекомендован в документации третьей стороны (с примерами). Сначала я попытался использовать плагин Axis2 codegen для Eclipse, но в итоге столкнулся с InvocationTargetexception. Я отладил плагин и обнаружил, что это потому, что wsdl определен с кодировкой RPC.

Некоторые люди рекомендовали вместо этого использовать Axis 1.4, так что я уже установил это, но столкнулся с IO Exception - Тип {http://xml.apache.org/xml-soap}DataHandler указан, но не определен.

Кто-нибудь может предложить метод для создания классов Java из этого wsdl без необходимости разбивать wsdl на части?

1 Ответ

1 голос
/ 20 августа 2010

В итоге я использовал Axis2 wdsl2java и скопировал необходимый аннотированный код в сервис и использовал плагин CXF. Я также поставил на службу следующий код

static expose=['cxfjax']

Причина, по которой мне пришлось это сделать, заключалась в том, что у меня была «сложная» (для грааля) структура, мои методы выглядят как

   @WebMethod(operationName = "authenticate", action = "http://betterhidethis/authenticate")
   @WebResult(name = "authenticateResult", targetNamespace = "http:/betterhidethis/")
   public ArrayOfString authenticate(
       @WebParam(name = "strUserName", targetNamespace = "http://betterhidethis/")
       String strUserName,
       @WebParam(name = "strPassword", targetNamespace = "http://betterhidethis/")
       String strPassword) { 

Конечно, Geneerator также создал класс ArrayOfString, который я использую позже.

Надеюсь, это поможет.

...