我有一個EJB ear部署到Weblogic。 EJB有一些JMS隊列設置,它通過設計發送消息。 客戶端web應用程序調用EJB是在同一機器上的另一個JVM運行(以模擬遠程呼叫)使用EJB客戶端jar進行遠程EJB訪問
EJB接口
@Remote
public interface MyLog {
public void doSomething();
}
在客戶端
Maven的依賴關係包括以下。我正在使用ejb jar本身。我如何去生成ejb客戶端jar和兩者之間的區別是什麼?
org.ihc.myLog myLog的EJB 1.0 罐子
我使用的是春天來查找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執行它?可能是我的配置是錯誤的或別的?謝謝。
下面是客戶端的Web應用程序,調用EJB
|Exception while loading the app : EJB Container initialization error
com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: JMS resource
not created : jms.mylog_queue
如果我的答案幫你投票;-) – Diversity