2008-11-05 2 views
2

Я использую веб-службу оси 1.4, которая возвращает ответы на мыло, которые я хочу развязать в своих объектах домена с помощью аннотаций jaxb. Мои начальные тесты работали очень хорошо, пока некоторые из возвращаемых сообщений не имели элементов multiRef. Объекты, которые были отсортированы с использованием multiRef, отображались как null в объектах аннотированных объектов на стороне клиента.unmarshalling сгенерированная ось (многорефлексная) реакция на мыло с jaxb

Мой вопрос заключается в том, поддерживает ли JAXB размагничивание мыльных откликов с помощью элементов multiRef? Если да, то как? а если нет, знает ли кто-нибудь лучший способ развязать ответы на мыло оси 1.4 в моей модели домена в java?

ответ

1

В случае веб-сервисов JAXB не приходит один, а как часть, связывающая данные оболочки клиента ws. Поэтому я предполагаю, что ваш вопрос заключается в том, как использовать JAXB в качестве привязки данных в пределах оси 1.4. В общем, я думаю, что нет простого способа добиться этого, посмотрите на следующий поток в списке рассылки осевых пользователей: Specify JAXB generated complex types to Axis web service.

Если вы можете выполнить обновление, чтобы использовать веб-службу с помощью оси 2, тогда это должно быть намного проще, поскольку axis2 поставляется с возможностью подключения архитектуры привязки данных, включая интегрированную реализацию jaxb.

0

Если сторона Axis веб-службы также находится под вашим контролем, возможно, вы можете установить для свойства org.apache.axis.AxisEngine.PROP_DOMULTIREFS значение false. В этом случае Axis не должен создавать элементы multiRef. Я использовал это свойство на стороне клиента Axis, надеюсь, что он работает на стороне сервера одинаково.

0

Если вы имеете дело с MultiREF, то вы, вероятно, потребляете службу RPC. JAXB подходит для веб-сервисов типа Document.

Для того, чтобы потребить услугу в стиле RPC, не использовать какие-либо внешние связывания, как JAXB, JiBX или

использования простой JAX-RPC, wsdl2java Ant задача доступна для создания заглушек, а также указать nobinding вариант.