использовать оригинальный wsdl для генерации wsdl в CXF - PullRequest
2 голосов
/ 05 августа 2011

Может кто-нибудь, пожалуйста, дайте мне знать, каков метод генерации WSDL на Apache CXF Сервер с использованием оригинального WSDL.

Я знаю, Axis 2 имеет конфигурацию в Service.xml для установки useOriginalWSDL вИСТИНА и я получаю оригинальный wsdl.

Я хочу знать настройку в CXF.

1 Ответ

4 голосов
/ 07 августа 2011

Для использования исходного WSDL для генерации WSDL в CXF Server мы можем использовать атрибут wsdlLocation в элементе jaxws:endpoint

Атрибут, Определяет расположение контракта WSDL конечной точки.Местоположение контракта WSDL относится к папке, из которой развернут сервис.

ИЛИ в CXF мы можем использовать @WebService аннотацию, которую мы можем указать местоположение WSDL Пожалуйста, обратитесь к документации по @ WebService

Я сам нашел ответ, я думаю, что это простой вопрос, но чувствовал, что этот ответ может быть в stackoverflow

РЕДАКТИРОВАТЬ:

Несмотря на то, что я добавил wsdlLocation, сервис не может быть создан фреймворком CXF.Ошибки в apache tomcat не очень полезны, за исключением того, что невозможно создать Service.Для правильной работы jaxws:endpoint должен иметь следующие атрибуты:

  1. wsdlLocation - относительный путь из папки проекта, например: /WEB-INF/originalwsdl.wsdl
  2. serviceName - имя службы в WSDL,с пространством имен, указанным в wsdl, например, e:ServiceName
  3. endpointName - это имя привязки порта, те же правила, что и для serviceName, например e1:endpointName

Не забудьте определить пространства имен для: и e1 xmlns:e="namespace as in your wsdl"

После всех этих настроек мое приложение работало.Классы, которые мы создаем из wsdl, должны иметь то же имя пакета, что и целевое пространство имен, для создания точно такого же WSDL с использованием оригинального WSDL.Пожалуйста, кто-нибудь подтвердит этот вывод.

Я обнаружил, что документации для CXF очень мало, и мне пришлось покопаться в коде и xsds для моих решений

...