(Java) 同时发布 Web Service Endpoint 和 Http Server?
(Java) Publish WebService Endpoint and HttpServer at the same time?
我可以自己独立 运行 WebService
和 httpServer
,但是当我 运行 同时使用两者时,网络服务 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 服务器实现,它作为 Java 的一部分包含在内。
因此,您实质上是在尝试在同一个端口上使用两个不同的 HTTP 服务器,我认为这是行不通的。您应该使用不同的端口来完成这项工作。
我可以自己独立 运行 WebService
和 httpServer
,但是当我 运行 同时使用两者时,网络服务 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 服务器实现,它作为 Java 的一部分包含在内。 因此,您实质上是在尝试在同一个端口上使用两个不同的 HTTP 服务器,我认为这是行不通的。您应该使用不同的端口来完成这项工作。