2011-01-18 62 views
3

我要在运行于Java 6上的JBoss5中实现一个web服务。根据JBoss Documentation,选择是使用JBoss本地实现CXF或metro。由于本地不需要任何额外的库(CXF将拉动Spring?)我认为这将是第一选择。在JBoss上实现Webservice,maven和选择

WS约定在WSDL中给出,所以我想生成它的存根。但是JBoss工具在WSDL上咆哮,而CXF wsdl2java乐于生成源代码。我可以使用这些源代码而不依赖于CXF,但使用原生JBoss WS堆栈?生成的类中的注释甚至指向javax的东西(可以是4.选择,因为我可以用java 6创建WS而没有附加的依赖关系?)

如何配置webservice?我还需要一个web.xml来定义一些servlet吗?我需要哪些Maven依赖关系?

对不起,这显然愚蠢的问题,但我做了很多搜索和阅读,但我越读越困惑我。 JBoss文档或者全部是关于java beans和annotations和/或ant的说明,公共jboss maven回购是一团糟(一些WS的东西在jboss下,其他的在org.jboss.jbossws下,甚至是org.jboss.ws下的其他文物..)

任何指向howtos和or documentation的指针都非常受欢迎。

+0

虽然您不是EAP,但此文档仍可帮助 http://docs.redhat.com/docs/en-US/JBoss_Enterprise_Application_Platform/index.html – technoSpino 2011-01-19 16:23:58

回答

3

我会与CXF一起运行一场自包含的战争,并将jboss视为一个servlet容器,并完全忽略jboss试图提供的所有Web服务gunk。

然后,您只需按照常规的CXF指示进行wsdl第一个服务,最后得到一个漂亮的便携式.war文件。它将/应该运行在jboss中(jboss可能会尝试并提供一些额外的库本身,但是你应该能够设置某种类加载器包含策略,以确保它首先从上下文加载,而不是从jboss firstt加载。这给你

  1. 干净的WSDL优先发展
  2. 一个简单的指令集遵循(只是CXF)
  3. Maven的回购协议,使意义
  4. 仍然使用JBoss,因为有人认为这是一个很好的想法

使用java 6标准webservices是一个选项,取决于你想在你的应用中使用什么。我已经开始使用弹簧了,CXF弹簧的整合比jaxws-commons弹簧部分更整齐,更好。另外,如果你使用股票jaxws-ri,用于从wsdl生成的maven工具更加复杂,维护也更少。

+0

感谢您的答复。不知何故,我忘了这个问题。在写这篇文章的时候,我真的很烦恼,这个简单的任务很难在JBoss中设置。很高兴听到别人分享我对JBoss的看法;)我们使用XCF解决了这个问题(如您所建议的),但我的同事选择了XCF-JBoss堆栈。感谢您的回答。 – bert 2011-02-02 19:14:36