如何在java应用程序中自我托管Web服务

时间:2014-03-07 07:34:58

标签: java web-services self-hosting

我有Java Application。我使用Netbeans 7.4 IDE。我想在此应用程序中托管一些web service methods,以便其他客户端可以使用Web服务获取此应用程序提供的数据 我不想在任何网络服务器上托管这个网络服务,我只想在应用程序本身like WCF selfhosting in .NET内托管它。
我一直在开发C#应用程序,我对WCF有所了解,但我只是Java世界的先驱。是否可以像在.NET中那样在应用程序本身中托管Web服务端点?

3 个答案:

答案 0 :(得分:2)

根据我的需要得出的答案已经是here

我看到我只需添加新的java类并添加xml annoitions,如@WebService和@WebMethod,以使该类成为Web服务。然后我只需要添加以下行来发布此服务:

public static void main(String[] args) {
        String address = "http://127.0.0.1:8023/_WebServiceDemo";
        Endpoint.publish(address, new MyWebService());
        System.out.println("Listening: " + address);

    }

答案 1 :(得分:0)

从Java 6开始,Web服务器提供了jre(com.sun.net.httpserver.HttpServer)。一些框架可以利用这一点(例如,restlet)。

答案 2 :(得分:0)

这取决于你所说的“自托管”。最简单的方法是在应用程序中使用嵌入式Jetty服务器。这通常是不受欢迎的,因为它为每个Web服务占用一个端口,如果您将拥有超过一小部分,它很快就会变得难以管理,而不是简单地托管所有的Web服务容器。但是,如果它只是一个小型私人项目,没有其他人会使用,作为嵌入式Jetty或Tomcat运行将没有问题。请注意,将会有难以使用的云服务,但如果这不是一个问题,请再次进行。