【问题标题】:Grizzly JAX-WS and JAX-RS灰熊 JAX-WS 和 JAX-RS
【发布时间】:2016-01-11 12:14:59
【问题描述】:

我使用 grizzly 创建了两个项目。

一个用于 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 存在。

还有其他方法可以将两者结合起来吗?

【问题讨论】:

  • 您似乎掌握了创建 Jersey 应用程序的 HttpServer 的句柄。是什么阻止您将其用于 JAX-WS 配置?您需要使用重载的createHttpServer 方法,该方法接受一个布尔值作为最后一个参数,因为它告诉服务器在它返回时不要启动。
  • +1 用于 peeskillet 建议。您可以使用 Jersey 返回的 HttpServer,但我建议请求 Jersey 创建未启动的 HttpServer(将 false 作为参数之一传递),然后,一旦添加了所有 HttpHandlers - 启动服务器(httpServer.start ())

标签: jax-rs jax-ws grizzly


【解决方案1】:

这解决了我的问题:

    Injector injector = Guice.createInjector(new JpaPersistModule("myJpaUnit"),
            new ServletModule() {
                @Override
                protected void configureServlets() {
                    bind(new TypeLiteral<ExerciseDao>() {
                    }).to(ExerciseDaoImpl.class);
                }
            });

    ResourceConfig rc = new PackagesResourceConfig("za.co.quinn.ws");
    IoCComponentProviderFactory ioc = new GuiceComponentProviderFactory(rc, injector);

    PersistInitializer initializer = injector.getInstance(PersistInitializer.class);
    HttpServer server = GrizzlyServerFactory.createHttpServer(BASE_URI, rc, ioc);

【讨论】:

    猜你喜欢
    • 2011-06-29
    • 2011-12-16
    • 2013-03-15
    • 2013-05-08
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    相关资源
    最近更新 更多