Как использовать сгенерированные файлы WSDL2Java? - PullRequest
2 голосов
/ 19 февраля 2010

Я сгенерировал файлы .java, используя wsdl2java, найденный в axis2-1.5. Теперь он генерирует файлы в этой структуре папок: src / net / mycompany / www / services /

Файлы в папке служб: SessionIntegrationStub и SessionIntegrationCallbackHandler.

Я бы хотел использовать веб-сервис сейчас. Я добавил папку net в переменную окружения CLASSPATH. Мой Java-файл теперь импортирует веб-сервис, используя:

import net.mycompany.www.services;

public class test 
{ 
  public static void main(String[] args) 
  {
    SessionIntegrationStub stub = new SessionIntegrationStub();
    System.out.println(stub.getSessionIntegration("test"));
  } 
} 

Теперь, когда я пытаюсь скомпилировать это, используя:

javac test.java

Я получаю: пакет net.mycompany.www не существует.

Есть идеи?

Ответы [ 3 ]

2 голосов
/ 02 апреля 2010

Как уже предлагалось, вам нужно импортировать сгенерированный класс заглушки, а не его пакет

import net.mycompany.www.services.SessionIntegrationStub;

Затем вам нужно заполнить объекты XML-запроса. Я не знаю, как выглядит ваш WSDL, но, например,

SessionIntegrationStub.SessionRequest req = new SessionIntegrationStub.SessionRequest()
req.setParamOne(1)
req.setParamTwo(2)

И, наконец, вызвать веб-сервис

SessionIntegrationStub.SessionResponse resp = stub.operationOne(req)

println resp.getAnswer()

Примечание : описанные выше методы установки и получения соответствуют элементам, объявленным в вашей схеме. Классы SessionRequest и SessionResponse будут соответствовать сложным типам, объявленным в вашей схеме.

0 голосов
/ 03 апреля 2010

Проблема здесь заключается в структуре вашего пакета.Ваш test.java находится в другом пакете, чем ваш сгенерированный источник.

Вам необходимо сохранить текущий файл в той же структуре пакета или указать полный путь к вашему сгенерированному источнику в javac, например

javac src / net / mycompany / www / services / .java src/net/mycompany/services/.java

0 голосов
/ 19 февраля 2010

Предположительно, это должно сказать import net.mycompany.www.services.*;. Вы пропустили звездочку.

...