Как создать незащищенные заглушки в Axis2 с помощью wsdl2java - PullRequest
0 голосов
/ 15 декабря 2010

Я пытаюсь изучить веб-службы Axis2 и прорабатываю учебное пособие на веб-сайте RoseIndia ( текст ссылки ).В примере для клиента он генерирует заглушки с использованием wsdl2java и генерирует заглушки, использующие http://localhost:8080,, однако, когда я делаю это, он создает заглушки для использования защищенных ссылок https://localhost:8443. IЯ не установил SSL на моем локальном сервере приложений dev (Tomcat).

Я проверил документацию по wsdl2java и не могу найти никаких ссылок на настройки безопасности.Как бы мне заставить эти заглушки использовать базовые http://localhost:8080 ссылки

1 Ответ

0 голосов
/ 22 декабря 2010

Посмотрите на свой файл WSDL. В Axis2 1.5 инструмент wsdl2java будет использовать этот порт SOAP1.2 для генерации целевой конечной точки для вашей заглушки:

<wsdl:port name="HelloWorldServiceHttpSoap12Endpoint" binding="ns:HelloWorldServiceSoap12Binding">
  <soap12:address location="http://localhost:8082/axis2/services/HelloWorldService.HelloWorldServiceHttpSoap12Endpoint/" />
</wsdl:port>

Вы можете использовать опцию -pn wsdl2java, если вам нужен другой порт.

Загрузите ваш WSDL локально и убедитесь, что раздел порта правильный (без https). Далее сгенерируйте источники с помощью wsdl2java, например, на моей машине:

lucho@lucholinuxpc:~/axis2-1.5.1/bin> ./wsdl2java.sh -uri /home/lucho/sayhello.wsdl
 Using AXIS2_HOME:   /home/lucho/axis2-1.5.1
 Using JAVA_HOME:       /opt/jdk1.6.0_18
 Using JAVA_OPTS:    -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
Retrieving document at '/home/lucho/sayhello.wsdl'.

Теперь проверьте вашу сгенерированную заглушку, вы должны увидеть что-то вроде этого, если ваш WSDL похож на мой:

/**
 * Default Constructor
 */
public HelloWorldServiceStub() throws org.apache.axis2.AxisFault {
        this("http://localhost:8082/axis2/services/HelloWorldService.HelloWorldServiceHttpSoap12Endpoint/" );
}

Далее, в своем тестовом коде вы можете альтернативно использовать конструктор для своей заглушки, который принимает конечную точку цели. На самом деле я предпочитаю такой подход, потому что клиент WS более гибок к изменениям в целевой сети. По вашему вопросу должно быть что-то вроде:

public HelloWorldServiceStub(java.lang.String targetEndpoint)

И последнее, но не менее важное: я рекомендую вам эту книгу для краткого руководства по началу работы Вложения SOAP с использованием Apache axis2

Cheerz!

...