Определить пользовательское пространство имен для сопоставления пакета сгенерированного файла из wsdl - Axis2 eclipse - PullRequest
4 голосов
/ 03 февраля 2011

У меня есть файл wsdl в Eclipse, и я генерирую клиента с помощью плагина axis2.

Файлы создаются в пакете с именем com.mycompany.stub в папке с исходными файлами.хотел бы изменить имена пакетов сгенерированных исходных файлов на com.mycompany.ws.workflow

Где я могу сделать это в файле wsdl?

1 Ответ

9 голосов
/ 03 февраля 2011

Вам не нужно изменять wsdl для достижения этой цели.Если вы используете мастер клиента веб-службы Eclipse Helios, на втором шаге (необязательно), где вы указываете выходную папку для сгенерированного источника, есть флажок «Определить пользовательское сопоставление пространства имен для пакета».Установите этот флажок, и в следующей форме вы сможете определить свои пользовательские сопоставления пакетов.

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

Ссылка на Официальную документацию

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

WSDL

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://mycompany.com/MyService.wsdl"
xmlns:scm="http://mycompany.com/MyService.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
targetNamespace="http://mycompany.com/MyService.wsdl">
...

Для простого wsdl, как показано выше, настраиваемое отображение будет выглядеть следующим образом.

http://mycompany.com/MyService.wsdl - com.mycompany.ws.workflow http://mycompany.com/MyService.xsd - com.mycompany.ws.workflow.schema

Вы можете нажать кнопку «Добавить» и ввести имя пространства и имена пакетов, либо вы можете сохранить сопоставление в файле свойств и нажать «Импорт», чтобы добавить все сразу.Я предпочитаю файл свойств.Также вы должны экранировать URL-адрес пространства имен и другие специальные символы, если вы собираетесь использовать файл свойств.Ваш файл свойств должен выглядеть примерно так:

nsmapping.properties

http\://mycompany.com/MyService.wsdl=com.mycompany.ws.workflow http\://mycompany.com/MyService.xsd=com.mycompany.ws.workflow.schema

Выдержка из официальной документации.

Содержимое файла свойств должно иметь формат namespace = package.Вам нужно будет экранировать некоторые специальные символы в файлах свойств.Например, http://someNamespace=somePackage должно быть http://someNamespace=somePackage. В противном случае двоеточие (:) будет рассматриваться как разделитель, что приведет к попытке сопоставить http с //someNamespace=somePackage.

...