【发布时间】:2014-01-01 16:48:54
【问题描述】:
我有一个 EJB 耳朵部署到 Weblogic。 EJB 有一些 JMS 队列设置,它通过设计发送消息。 调用 EJB 的客户端 Web 应用程序正在同一台机器上的另一个 JVM 上运行(模拟远程调用)
EJB 接口
@Remote
public interface MyLog {
public void doSomething();
}
在客户端,
Maven 依赖包括以下内容。我正在使用 ejb jar 本身。如何生成 ejb 客户端 jar,两者有什么区别?
org.ihc.myLog myLog-ejb 1.0 罐
我正在使用 spring 来查找 ejb,我正在使用 ejb jar(不确定我是否完全理解 ejb jar 和 ejb-client jar 之间的区别)。
<bean id="myLog" parent="MyEjbParent" lazy-init="false">
<property name="jndiName" value="MyLog#org.ihc.My.MyLog"/>
<property name="businessInterface" value="org.ihc.audit.AuditLog"/>
<property name="lookup-home-on-startup" value="false"/>
</bean>
我正在使用 Spring DI 将 myLog 连接到类的适当属性并执行我的操作。
myLog.doSomething();
问题是,当我尝试部署调用 EJB 的 Web 应用程序时,部署失败,提示未在客户端应用程序服务器上设置 JMS 队列。我不明白为什么客户端应用程序服务器需要设置 JMS 队列,因为它们已经在运行 EJB 实例的 Weblogic 服务器上设置。客户不应该只关心调用远程方法并让 EJB 做这件事吗?可能是我的配置错误或其他原因?谢谢。
这是我在部署调用 ejb 的客户端 Web 应用程序期间遇到的错误
|Exception while loading the app : EJB Container initialization error
com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: JMS resource
not created : jms.mylog_queue
【问题讨论】:
-
如果我的回答对你有帮助,请投票;-)
标签: java jakarta-ee ejb weblogic ejb-3.0