灰熊 JAX-WS 和 JAX-RS
Grizzly JAX-WS and JAX-RS
我使用 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 不存在。
还有其他方法可以将两者结合起来吗?
这解决了我的问题:
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);
我使用 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 不存在。
还有其他方法可以将两者结合起来吗?
这解决了我的问题:
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);