我在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执行此操作,而客户端中没有任何特定的appserver依赖项。
我错了吗?
答案 0 :(得分:3)
是的,你现在错了; - )
要与服务器远程通信,您必须添加到知道如何与该服务器通信的应用程序类路径库。
Java EE API就是一组接口。它们的实现由诸如wildfly或glassfish之类的应用程序服务器提供,因此您必须添加例如: jboss-client.jar为了建立连接。
与Java客户端的远程通信在每个服务器实现上都以不同方式完成。即使查找看起来相同(通常创建初始上下文等),您也会在属性文件中提供自定义工厂,这些工厂指向给定应用程序服务器的特定JNDI实现,并且必须在客户端类路径中提供这些类。