关于雅加达EE:在Wildfly 8.0上调用远程ejb,而在类路径中没有jboss依赖项

Call remote ejb on wildfly 8.0 without jboss dependencies in classpath

我正在Wildfly 8.0服务器上运行一个非常简单的远程ejb。我正在尝试从独立客户端调用ejb。

我已经从https://github.com/wildfly/quickstart/tree/master/ejb-remote下载了疯狂的快速入门,并且运行正常。

但是,我不希望客户端中的jboss有任何依赖关系。

我发现的唯一一个调用在wildfly上运行的远程ejb的示例都依赖于jboss。您需要jboss-ejb-client.properties或EJBClientConfiguration,对jboss-ejb-client的依赖关系以及对jboss-ejb-api_3.2_spec的依赖关系。

我认为可以使用标准JavaEE API来执行此操作,而无需在客户端中安装任何特定的应用服务器依赖项。

我错了吗?


是的,您在这点上错了;-)

要与服务器进行远程通信,您必须添加到知道如何与该服务器通信的应用程序类路径库中。

Java EE API只是一组接口。它们的实现由Wildfly或glassfish之类的应用服务器提供,因此您必须添加例如jboss-client.jar以便建立连接。

与java客户端的远程通信在每个服务器实现上均以不同的方式进行。即使查找看上去相同(通常创建初始上下文等),您仍在属性文件中提供自定义工厂,这些工厂指向给定应用程序服务器的特定JNDI实现,并且这些类必须在客户端类路径中提供。