(Java)同时发布WebService Endpoint和HttpServer?

时间:2018-12-12 10:39:36

标签: java web-services httpserver

我能够自己独立运行WebServicehttpServer,但是当我同时运行两者时,Web服务wsdl url不再起作用。我希望这样做,这样我就可以将JavaScript的网络服务调用到相同的URL,而不会出现跨源问题。

这有可能吗?

public class Main {
    public static void main(String[] args) throws Exception {
        int port = 8888;
        /* This works without httpServer running */
        Endpoint.publish("http://localhost:" + port + "/ws/someService", new SomeService());
        /* This works without Endpoint running */
        HttpServer httpServer = HttpServer.create(new InetSocketAddress(port), 0); 
        httpServer.createContext("/someHandler", new SomeHandler());
    }   
}

1 个答案:

答案 0 :(得分:1)

尝试使用其他端口。例如,如果将8888用作端点,则将8890用作HttpServer。

EndPoint使用嵌入式HTTP Server实现,该实现包含在Java中。 因此,您实际上是在尝试在同一端口上使用两个不同的HTTP服务器,我认为这是行不通的。您应该使用其他端口来完成这项工作。