在Eclipse中创建Web服务客户端

时间:2012-03-29 05:47:09

标签: java eclipse web-services java-ee webservice-client

我正在关注Java EE 6教程并尝试为Web服务设置基本客户端。我正在使用Eclipse生成所需的代码。

方法:

  1. 创建新的Java项目
  2. 启动[Web服务客户端]向导
  3. 提供[服务定义]并选择[开发客户]
  4. 这会生成代码,但我收到以下错误(重复多次):

      

    endpoint.Hello无法解析为类型HelloProxy.java /com.examples.helloclientapp/src/endpoint line

         

    Hello无法解析为类型HelloProxy.java /com.examples.helloclientapp/src/endpoint

    这是我正在使用的webservice的代码(可以访问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

    Web服务是否有问题导致Hello类无法生成?

0 个答案:

没有答案