Jax-ws端点不要求创建包装器类

时间:2019-05-20 22:06:00

标签: java eclipse web-services soap jax-ws

我正在遵循这个简单的教程:https://www.mkyong.com/webservices/jax-ws/jax-ws-hello-world-example-document-style/?fbclid=IwAR0vxhYrj9MKy1Q28h6luFVJoSxDP4KWBOLEu_v_Ss4uQztmB-9JuYsS4RI,并且在第3步中提到我应该收到错误消息:

Wrapper class com.mkyong.ws.jaxws.GetHelloWorldAsString is not found. 
Have you run APT to generate them?

但是,我没有得到这样的错误(根本没有错误),我担心它没有按预期工作。 我的课程:

接口:

package com.soap3sk.ws;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
import javax.jws.soap.SOAPBinding.Use;

// Service Endpoint Interface
@WebService
@SOAPBinding(style= Style.DOCUMENT, use= Use.LITERAL) // optional
public interface NoteEndpoint {
    //@WebMethod ArrayList<ToDoNote> getNotes();
    @WebMethod String getHelloWorldAsString(String name);
}

实施:

package com.soap3sk.ws;

import javax.jws.WebService;

@WebService(endpointInterface = "com.soap3sk.ws.NoteEndpoint")
public class NoteEndpointImpl implements NoteEndpoint {

    @Override
    public String getHelloWorldAsString(String name) {
        return "Hello World JAX-WS " + name;
    }


}

发布者:

package com.soap3sk.endpoint;

import javax.xml.ws.Endpoint;

import com.soap3sk.ws.NoteEndpointImpl;



public class NoteEndpointPublisher {
    public static void main (String[] args) {
    Endpoint.publish("http://localhost:5000/ws/hello", new NoteEndpointImpl());
}
}

项目结构:https://imagizer.imageshack.com/img924/3514/BAuOcl.png

我还注意到,这2个.class文件(本指南中提到的asString和Response)也没有在任何地方生成。我正在使用Eclipse,并使用quickstart原型创建了一个maven项目。将其作为标准Java应用程序运行。

我可以访问以下位置的wsdl文件:http://localhost:5000/ws/hello?wsdl,在那里我可以看到getHelloWorldAsString和getHelloWorldAsStringResponse,但是在我的项目中看不到它们,也没有抛出错误,找不到它们,如上所述在应该的指南中。

我还尝试下载示例项目并删除了所需的.java文件,但这仍然相同(没有错误,不要求创建那些类)。

如果有人可以帮助我,我将非常感激。谢谢。

编辑 我在这里发现了一个类似的问题:Java web service not giving error message有人可以解释他的答案吗?不需要创建这两个类吗?

1 个答案:

答案 0 :(得分:0)

您正在尝试复制将近10年前报道的情况。您不想尝试类似以下的新教程吗?