Как разрешить WSDL2Java создание статического блока размером более 64 КБ?

StackOverflow https://stackoverflow.com/questions/723966

Вопрос

В настоящее время мы работаем с предоставляемой поставщиком схемой WSDL, которая является очень большой.Стиль привязки - RPC.Насколько я знаю, Axis 1.x - единственный инструмент Java, поддерживающий определения RPC WSDL.Пожалуйста, поправьте меня, если я ошибаюсь на этот счет.

WSDL2Java генерирует сервис-названиеSkeleton.java файл, размер которого составляет блок статической инициализации 1,3 Мб - значительно больше, чем ограничение Java в 64 КБ.

Учитывая, что мы не можем изменить определение интерфейса, как вы думаете, что нам следует предпринять?

Наши варианты, как я их вижу, таковы:

  • Разбейте сгенерированный статический блок
  • Разбейте WSDL (не уверен, возможно ли это без изменения интерфейса)
  • Исправьте код Axis WSDL2Java

Есть еще какие-нибудь идеи?

Это было полезно?

Решение

Видишь это Статья, который дает некоторые инструкции о том, как вы можете преобразовать RPC WSDL в документный.Я рекомендую попробовать это в первую очередь.

Кроме того, у вас, вероятно, есть RPC / encoded WSDL (который, кстати, не соответствует WS-I).JAXWS поддерживает только RPC / literal.Таким образом, любой фреймворк (например, CXF или Axis2) будет поддерживать это.Итак, вы также можете попробовать преобразовать WSDL в RPC / literal.

CXF имеет инструмент это могло бы сделать эту работу за вас.

В любом случае, я рекомендую попробовать преобразовать WSDL в более свежую форму.Это облегчит вашу жизнь, как для серверной, так и для клиентской реализаций.Я не верю, что с Axis1 стоит бороться за это.Даже ручное написание и синтаксический анализ SOAP-сообщений могли бы быть проще.

Другие советы

Если ваш wsdl, вероятно, будет часто меняться, возможно, стоит исправить код wsdl2java, в противном случае я бы выбрал первый вариант.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top