Создание клиента веб-службы в Eclipse - PullRequest
1 голос
/ 29 марта 2012

Я следую учебному руководству по Java EE 6 и пытаюсь настроить базового клиента для веб-службы.Я генерирую необходимый код с использованием Eclipse.

Метод:

  1. Создание нового проекта Java
  2. Запуск мастера [Клиент веб-службы]
  3. Укажите [Определение службы] и выберите [Разработчик клиента]

. При этом генерируется код, но я получаю следующие ошибки (повторяются несколько раз):

конечная точка.Привет не может быть разрешен в тип HelloProxy.java /com.examples.helloclientapp/src/endpoint line

Привет не может быть разрешен в тип HelloProxy.java /com.examples.helloclientapp/src/endpoint

Это код для веб-службы, которую я использую (которая работает, и я могу получить доступ к wsdl):

package endpoint;

import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
public class Hello {

    private String message = new String("Hello, ");

    public void Hello() {
    }

    @WebMethod
    public String sayHello(String name) {
        return message + name + ".";
    }

}

Сгенерированный код, который вызывает у меня проблему, - это HelloProxy.Кажется, что отсутствует класс Hello (он не был сгенерирован):

package endpoint;

public class HelloProxy implements endpoint.Hello {
  private String _endpoint = null;

  // This was not generated
  private endpoint.Hello hello = null;

  public HelloProxy() {
    _initHelloProxy();
  }

  public HelloProxy(String endpoint) {
    _endpoint = endpoint;
    _initHelloProxy();
  }

  private void _initHelloProxy() {
    try {
      hello = (new endpoint.HelloServiceLocator()).getHelloPort();
      if (hello != null) {
        if (_endpoint != null)
          ((javax.xml.rpc.Stub)hello)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);
        else
          _endpoint = (String)((javax.xml.rpc.Stub)hello)._getProperty("javax.xml.rpc.service.endpoint.address");
      }

    }
    catch (javax.xml.rpc.ServiceException serviceException) {}
  }

  public String getEndpoint() {
    return _endpoint;
  }

  public void setEndpoint(String endpoint) {
    _endpoint = endpoint;
    if (hello != null)
      ((javax.xml.rpc.Stub)hello)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);

  }

  public endpoint.Hello getHello() {
    if (hello == null)
      _initHelloProxy();
    return hello;
  }


}

Другие сгенерированные файлы (при необходимости я могу предоставить содержимое):

  • Hello_PortType.java
  • HelloPortBindingStub.java
  • HelloService.java
  • HelloServiceLocator.java

Что-то не так с веб-службой, которая вызываеткласс Hello, который не будет сгенерирован?

...