我们有一个旧的JBoss 3.2.3服务器,它托管一个应用程序并公开EJB以进行远程访问。
此应用程序多年来只进行了少量维护,我们没有花费一些精力将其迁移到较新版本的应用服务器。
现在,我们正在将它与另一个应用程序集成,我们还要求公开SOAP Web服务。
起初,我并不担心,因为JBoss 3.2.3宣布符合J2EE 1.4规范(JSR151),该规范指定了Web服务的API:Web服务(JSR109)和JAXRPC(JSR101)。
但是,我第一次使用JAX-RPC api 进行部署失败,因为JBoss没有找到JAX-RPC类。
所以我的问题是:
最后,我总是可以在我的应用程序中部署其他API和库,但我希望避免重叠现有的库。
答案 0 :(得分:0)
JBoss 3.2.3.GA 不完全兼容的J2EE 1.4服务器。例如,它不实现EJB 2.1接口,只实现EJB 2.0 [1]。
另外,JBoss 4.0 announces being the first J2EE 1.4 compliant server;我的结论是JBoss.org没有证明JBoss 3.2.3是合规的。
即使不兼容,JBoss 3.2.3也有一些用于使用SOAP Web服务的功能。例如,它附带Apache Axis 1.1和JAX-RPC apis,因此可以轻松地为服务器外部的WS客户端生成java类,并让它们在企业应用程序中运行。
公开Web服务是一项更加困难的任务。公开Web服务的一种方法是create a Stateless EJB and expose it as a webservice endpoint。但是,这是EJB2.1规范的一部分,在3.2.3中没有。
太糟糕了!最后,我们将寻找其他替代方案来展示我们的Web服务。
较新的JavaEE规范和服务器更易于开发。旧的规范和服务器给JavaEE带来了不好的代表。