目前,我们正在移植现有的JBoss的EJB应用程序这应该在码头上运行一个纯粹的servlet解决方案(我们目前使用的版本6,但版本主要是无关紧要的),并且使用吉斯依赖注入和AOP。 尽管巨大的复杂性,我们已经成功地挺至今。 持久层我们的服务最,并启动和运行,包括JAX-RS REST服务。
然而,当我们开始我们的移植现有的JAX-WS SOAP服务,我们陷入了困境。 我们已经花了大约一天的时间在网上搜索,似乎有很多人年前碰到了同样的问题。 然而,似乎没有人提供了一个很好的解决方案。
关于我们的架构更多细节
我们使用一个GuiceServletContextListener创建,其配置与所有模块全球注射器。 至关重要的是,我们只有一个喷油器,因为我们需要支持单身。
据我们所知,具体的JAX-WS实现是不相关的。 目前,我们正在与地铁试验,但我们很可能只是以及使用Apache的CXF。
方法到目前为止评估
这个计算器后提示手动创建的服务,然后通过Endpoint.publish(...)出版它。 然而,这不是一个可接受的解决方案,因为它不使用码头集装箱,而是开始了自己的HTTP服务器。
final Module module = new HelloModule();
final Injector injector = Guice.createInjector(module);
final HelloService helloService = injector.getInstance(HelloService.class);
Endpoint.publish("http://localhost:8080/helloService", helloService);
同样计算器后也建议使用JAX-WS吉斯整合这是一个很好的办法一般的声音。 然而,这种解决方案创建自己的喷油器,因此我们GuiceServletContextListener基础的方法不兼容。 我们发现这个线程正是同样的问题进行了讨论,但似乎没有人有一个解决方案。
我们也看了吉斯- CXF这是应该做Apache的CXF融入吉斯应用程序的轻松,但据我们了解的描述,这只适用于JAX-RS REST服务至今。
为了不浪费这更多的时间,并试图重塑我们希望在这里张贴了这个问题,别人已经讨论过了地狱,可以给我们一些指点,或者甚至一些工作实例的车轮。 任何帮助是极大的赞赏。