0
Я создал два проекта, используя гризли.Grizzly JAX-WS и JAX-RS
Один для jax-rs и один для jax-ws.
код, чтобы получить JAX-RS работает, выглядит так:
String BASE_URI = "http://localhost:8080/myapp/";
ResourceConfig rc = new ResourceConfig().packages("za.co.quinn.grizzly.rest");
HttpServer server = GrizzlyHttpServerFactory.createHttpServer(URI.create(BASE_URI), rc);
Код, чтобы получить JAX-WS работает выглядит следующим образом:
HttpServer httpServer = new HttpServer();
ServerConfiguration configuration = httpServer.getServerConfiguration();
configuration.addHttpHandler(new JaxwsHandler(new AddService()), "/add");
httpServer.addListener(new NetworkListener("jaxws-listener", "0.0.0.0", 8080));
httpServer.start();
Я хочу, чтобы объединить два для получения jax-ws и jax-rs, работающих в одном проекте.
Было бы неплохо иметь JaxrsHandler, который я мог бы просто добавить, как так:
configuration.addHttpHandler(new JaxrsHandler(new AddAnotherService()), "/addAnother");
Но нет JaxrsHandler существует.
Есть ли другой способ, я могу объединить два?
Кажется, у вас есть ручка на HttpServer создания приложения Джерси. Что мешает вам использовать это для конфигурации JAX-WS? Вы захотите использовать перегруженный ['createHttpServer'] (https://github.com/jersey/jersey/blob/master/containers/grizzly2-http/src/main/java/org/glassfish/jersey/grizzly2/ httpserver/GrizzlyHttpServerFactory.java # L139), который принимает логическое значение как последний аргумент, так как это означает, что сервер не запускается при его возврате. –
+1 для предложения peeskillet. Вы можете использовать HttpServer, возвращенный Джерсиком, но я бы предложил попросить Джерси создать неиспользуемый HttpServer (передать false как один из параметров), а затем, как только все HttpHandlers будут добавлены, запустите сервер (httpServer.start()) – alexey