环境是JBuilder9+Weblogic8.12写了一个EJB,其中只有一个会话bean,并且部署成功,相关信息如下:
生成的jar: Shop.jar
Home接口: TraderHome
Remote接口:Trader
会话bean: TraderBean
JNDI名字: Trader
Shop.jar中ejb-jar.xml内容如下:
---------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<enterprise-beans>
<session>
<display-name>Trader</display-name>
<ejb-name>Trader</ejb-name>
<home>ejbappdemo.TraderHome</home>
<remote>ejbappdemo.Trader</remote>
<ejb-class>ejbappdemo.TraderBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<description />
<ejb-name>Trader</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
<p>
|
---------------------------------------
Shop.jar中weblogic-ejb-jar.xml内容如下:
---------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN' 'http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd'>
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>Trader</ejb-name>
<jndi-name>Trader</jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
<p>
|
---------------------------------------
请问我如何在一个新建的工程的web应用中调用这个已经部署好了的EJB?
也就是说,我如何在一个JSP页面中通过JAVABEAN来调用这个EJB?如何写?
我用如下代码:
Context context=new InitialContext();
Object obj= context.lookup("java/comp/env/ejb/Trader");
TraderHome home=(TraderHome)PortableRemoteObject(obj,TraderHome.class); //这句有问题,因为home接口不在当前应用中
Trader trader=(Trader)home.create(); //同上,这个是Remote接口
<p>
|
JBuider编译报错,并提示没有找到 TraderHome、Trader 等class,难道是要把先前部署的EJB的bean的class文件拷贝到当前工程来么?如果是应该拷贝哪些class,他们应该放置在当前工程的哪个文件夹下?(WEB-INF/lib?)