Клиентское мыло WSClient в граале / заводной - PullRequest
0 голосов
/ 22 июня 2011

У меня есть несколько проблем с cxf + WSClient в мыле.

Я пишу небольшой инструмент в граалях, который должен делать SOAP-вызовы для существующего сервиса.

WSClient (groovyws-0.5.3-20100521.062225-1.jar) казалось идеальным решением моей проблемы.Однако, когда я попытался реализовать вызов одного из действий, у меня возникли две проблемы.

Проблема # 1 NullPointerException при вызове некоторых действий.

Я отследил код, который выбрасывает исключение внутри

AbstractCXFWSClient.invokeMethod(String methodName, Object args)

     if (!operationToBeInvoked.isUnwrapped()){
                //Operation uses document literal wrapped style.
                inputMessageInfo = operationToBeInvoked.getWrappedOperation().getInput();
     } else {
                inputMessageInfo = operationToBeInvoked.getUnwrappedOperation().getInput();
            }

, в частности operationToBeInvoked.getWrappedOperation() Я выделил код в модульном тесте и обнаружил, что и operationToBeInvoked.getWrappedOperation(), и operationToBeInvoked.getWrappedOperation() приводят к нулевым объектам,Я пытался выяснить, что вызывает это, однако я думаю, что я дошел до конца своих знаний.

Проблема # 2 WSClient.create (String classname) ест ClassNotFoundException (а затем выбрасывает NullPointerException)

В основном, когда я делаю следующий вызов

def event = client.create("com.mypackage.MyBean");

Тот же компонент, который я вижу, просматривая службы в браузере.

<xs:complexType name="myBean">
<xs:sequence>
<xs:element minOccurs="0" name="id" type="xs:long"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="facets" nillable="true" type="tns:beanBean"/>
<xs:element minOccurs="0" name="sortId" type="xs:string"/>
<xs:element minOccurs="0" name="itemId" type="xs:string"/>
<xs:element minOccurs="0" name="preview" type="xs:boolean"/>
</xs:sequence>
</xs:complexType> 

Я получаю NPE.Когда я углубляюсь, чтобы выяснить, почему я получаю NPE, я обнаружил, что это потому, что загрузчик классов в WSClient не может найти «com.mypackage.MyBean», ест ClassNotFoundException, а затем неизбежно генерирует NPE.

Редактировать: Должен ли я использовать другой клиент WSClient / cxf?Я действительно хотел избежать того, чтобы катиться самостоятельно .....

Ответы [ 2 ]

2 голосов
/ 19 июля 2011

В основном я не нашел ответ.Я был вынужден удалить два плагина и cxf и не использовать Groovy WSClient.

Что я сделал, так это установил плагин ws-client для grails, и это сработало.

http://www.grails.org/plugin/ws-client

0 голосов
/ 29 мая 2012

Попробуйте удалить jaxen jar в папке плагина .grails lib cxf в вашем проекте. Это должно решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...