Как решить WSDL2Java, создав статический блок размером более 64 КБ? - PullRequest
0 голосов
/ 07 апреля 2009

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

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

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

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

  • Разбить сгенерированный статический блок
  • Разбить WSDL (не уверен, если это возможно без изменения интерфейса)
  • Патч Оси WSDL2Код Java

Есть еще идеи?

Ответы [ 2 ]

1 голос
/ 07 апреля 2009

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

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

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

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

1 голос
/ 07 апреля 2009

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

...