我可以自己独立运行WebService
和httpServer
,但是当我同时运行它们时,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());
}
}
最佳答案
尝试使用其他端口。例如,如果您将8888用于端点,则将8890或其他用于HttpServer。
EndPoint使用嵌入式HTTP Server实现,该实现包含在Java中。
因此,您实际上是在尝试在同一端口上使用两个不同的HTTP服务器,我认为这是行不通的。您应该使用其他端口来完成这项工作。