(Java) Публиковать конечную точку WebService и HttpServer одновременно? - PullRequest
0 голосов
/ 12 декабря 2018

Я могу самостоятельно запустить 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());
    }   
}

1 Ответ

0 голосов
/ 12 декабря 2018

Попробуйте с разными портами.Например, если вы используете 8888 для конечной точки, используйте 8890 или что-то другое для HttpServer.

EndPoint использует реализацию встроенного HTTP-сервера, которая включена как часть Java.Итак, вы по сути пытаетесь использовать два разных HTTP-сервера на одном и том же порту, что, я думаю, не сработает.Вы должны использовать разные порты, чтобы сделать эту работу.

...