2011-01-31 65 views
1

我想知道是否可以在没有servlet的EJB模块中创建XML-RPC服务器组件。我知道EJB通常使用RMI作为通信协议,但是如果我想省略RMI,该怎么办。如果我想通过不同的方式(如XML-RPC)在EJB和Web模块(WAR)或其他客户端之间交换数据,该怎么办?EJB模块中的XML-RPC服务器

EJB模块是否可以作为独立的单元工作,并将其状态和服务公开为XML-RPC服务器?

我仍然可以通过RMI与WAR连接的EJB模块,而此WAR将通过servlet公开这些服务。然后其他WAR或其他客户可以称之为第一个WAR。这是对的还是有其他的可能性?

回答

0

您可能想要的是使用Spring Remoting来通过例如JAX-WS公开您的EJB。 Spring会自动创建servlet来处理你的请求。坏消息是你必须从你构建的远程服务中调用你的EJB--这意味着一些样板代码。它应该是非常直截了当的。

您可能会考虑的其他可能性是Restlet可用于构建宁静的服务。

0

在EJB3中,您的服务bean只是带注释的POJO。您可以简单地使用@WebService(以及该系列注释的其余部分)注释相同的POJO,以将相同的服务公开为Web服务。

我意识到这不是严格要求的,因为以这种方式公开的服务的实现是使用SOAP消息的JAX-WS。但我认为它达到了你的意图。