Открыть вкладку модулей (нажмите Ctrl + Shift + Alt + S). У меня было два модуля по одному проекту. Я решил проблему после удаления второго избыточного модуля (см. Снимок экрана).
Я обнаружил только 3 варианта, которые можно использовать в Java для старых rpc / закодированных веб-сервисов:
1) Эталонная реализация JAX-RPC от SUN ( wscompile )
2) WebLogic clientgen (я использовал версию 8.1)
3) Axis1 v1.4 wsdl2java
Первоначально для этого мы использовали Axis 1.4 и это показал довольно низкую производительность на относительно больших ответах службы (> 20k), т.е. время обработки клиента увеличилось более чем в два раза по сравнению с обычным HTTP-запросом без разбора. И время увеличивается, если отклик становится больше. На то, чтобы просто десериализовать большой отклик размером 1 МБ, потребовалось более 30 секунд.
Клиент, созданный SUN, на самом деле не работал, и он не работал по запросу с сообщением:
unexpected element name:
expected=getSubscriberInfoReturn,
actual={ws.generated.api}getSubscriberInfoReturn
Я попытался использовать clientgen WebLogic 8.1 и сравнил клиентский код с Axis 1 . 4 сгенерированных клиентских производительности. И Axis выиграла гонку. Таким образом, даже несмотря на то, что клиент Axis не так хорошо работает с относительно большими ответами, он по-прежнему является лучшим вариантом для старых веб-сервисов с rpc / кодированием: (.
Попробуйте ось 1, я использовал ее именно по этой причине.
У меня тоже были проблемы с SimpleDataBinding на оси 2. Я решил их, используя Параметр AxisDataBinding. Что немного тяжелее с точки зрения кодирования, но в конце концов работает.
Кроме того, я бы согласился с Робертом, заявив, что ось1 тоже интересный вариант.
Я не буду вдаваться в подробности этого, но, поскольку вы просили альтернативы:
Java 6 SE и Java 5 EE поставляются с Metro JAX-WS (справочная) реализация.
Он находится в пространстве имен javax.xml.ws
.
В сети разработчиков Sun есть статья Введение в JAX-WS 2.0 с платформой Java SE 6 , что может быть полезно.
С учетом всего вышесказанного, Eclipse не очень JAX-WS .
Кодирование RPC не поддерживается в Axis2. Источник: http://wiki.apache.org/ws/StackComparison