Topic: 怎样在一个jar中通过local接口访问另一个jar中的ejb?

  Print this page

1.怎样在一个jar中通过local接口访问另一个jar中的ejb? Copy to clipboard
Posted by: niheng
Posted on: 2003-04-03 11:51

如题,谢谢了

2.Re:怎样在一个jar中通过local接口访问另一个jar中的ejb? [Re: niheng] Copy to clipboard
Posted by: tier3
Posted on: 2003-04-04 16:53

petstore里有例子。
通过JNDI找到该EJB的JNDI Name,然后直接CAST成对应的类,
不过我也没试出来,在weblogic7下总是改了名字。

initialContext = new InitialContext(init());
java.lang.Object objRef = initialContext.lookup("local/CustomerManagerFacade");
CustomerManagerFacadeLocalHome home =(CustomerManagerFacadeLocalHome) objRef;

javax.naming.NameNotFoundException: Unable to resolve 'app/ejb/customermanager-e
jb.jar#CustomerManagerFacade/local-home' Resolved: 'app/ejb' Unresolved:'custome
rmanager-ejb.jar#CustomerManagerFacade' ; remaining name 'customermanager-ejb.ja
r#CustomerManagerFacade/local-home'
<<no stack trace available>>

我觉得代码可能没什么问题,关键是weblogic的什么环境没弄好,请高人指教。

3.Re:怎样在一个jar中通过local接口访问另一个jar中的ejb? [Re: niheng] Copy to clipboard
Posted by: floater
Posted on: 2003-04-04 23:55

What's in your init() for the initial context?

4.Re:怎样在一个jar中通过local接口访问另一个jar中的ejb? [Re: niheng] Copy to clipboard
Posted by: tier3
Posted on: 2003-04-07 09:24

我的init()方法什么也没有,只有一个new Property();我已经把JNDI.properties
文件放到classpath里了;
我的程序是这样的:在WEB层的business delegate调一个JNDIHelper,这个类
调init()方法,取得Session Facade的Home接口,然后session再调后面的CMP,
以前session Facade是Remote的,调用没问题,后来我把session facade改为lo
cal的,并参考petstore,lookup SessionFacade的JNDI Name, 直接Cast成对方
的类,结果出现了上面的错误。

大家有没有试过local调用session bean? 谢谢了。

5.Re:怎样在一个jar中通过local接口访问另一个jar中的ejb? [Re: tier3] Copy to clipboard
Posted by: kavenlin
Posted on: 2003-04-07 10:07

Maybe you can set EJB Local Reference!!

6.Re:怎样在一个jar中通过local接口访问另一个jar中的ejb? [Re: niheng] Copy to clipboard
Posted by: floater
Posted on: 2003-04-07 10:44

Sounds to me that your local can't talk to ejb container. Not sure which server you are running since each server has its own way to do so. Check the manual of the app server.

7.Re:怎样在一个jar中通过local接口访问另一个jar中的ejb? [Re: niheng] Copy to clipboard
Posted by: niheng
Posted on: 2003-04-07 13:17

我已解决了这个问题,你需要设置local-ref,并且将jar打包到ear中才行。这个问题困惑了我好久,希望对大家有所帮助。

8.Re:怎样在一个jar中通过local接口访问另一个jar中的ejb? [Re: niheng] Copy to clipboard
Posted by: tier3
Posted on: 2003-04-07 14:18

我也解决了,直接打成ear即可。:)
以下是我的application.xml里的部分内容,
<module>
<ejb>customermanager-ejb.jar</ejb>
</module>
<module>
<web>
<web-uri>customermanager.war</web-uri>
<context-root>customermanager</context-root>
</web>
</module>

以前用jboss,直接copy到deploy目录即可,现在换成weblogic,只能打包成ear了。。。

多谢各位朋友。:)


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923