如何配置EJB?

GrapeBoy 2003-08-24 08:07:21
我想很多朋友都学过SUN公司的J2EE Tutorial ,请问在WebLogic 8.1里面如何配置?如何使用? 谢谢! 详细解决问题,过秤详细的,给200分!
evanwu@21cn.com
...全文
92 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
nice90 2003-08-25
  • 打赏
  • 举报
回复
mark.
luo_wen_jie 2003-08-25
  • 打赏
  • 举报
回复
Hello.java //远程接口
import java.rmi.RemoteException;
import javax.ejb.EJBObject;
public interface Hello extends EJBObject
{
public String getHello() throws RemoteException;
}

HelloHome.java //Home接口
import java.rmi.RemoteException;
import javax.ejb.*;
public interface HelloHome extends EJBHome
{
public Hello create() throws RemoteException, CreateException;
}

HelloBean.java //Bean类
import javax.ejb.*;
public class HelloBean implements SessionBean
{
public void ejbCreate() {}
public void ejbRemove() {}
public void ejbActivate() {}
public void ejbPassivate() {}
public void setSessionContext(SessionContext ctx) {}

public String getHello()
{
return new String("Hello, EJB");
}
}

以上三个文件都在Hello目录下,编译后产生三个class文件,在Hello目录下建目录META-INF(注意大小写),在META-INF目录下建ejb-jar.xml和weblogic-ejb-jar.xml两个文件
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>
<description>
This is Hello EJB example
</description>
<display-name>HelloBean</display-name>
<enterprise-beans>
<session>
<display-name>Hello</display-name>
<ejb-name>Hello</ejb-name>
<home>HelloHome</home>
<remote>Hello</remote>
<ejb-class>HelloBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>

weblogic-ejb-jar.xml
<?xml version="1.0"?>
<!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>Hello</ejb-name>
<jndi-name>Hello</jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>

进入weblogic管理界面,选择发布ejb,选中Hello目录,按提示一步步做即可,此ejb的jndi在weblogic-ejb-jar.xml中指定为Hello,以下是访问此ejb的Servlet
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import javax.ejb.*;
import javax.naming.*;
import java.util.Hashtable;


public class HelloServlet extends HttpServlet
{
public void service(HttpServletRequest req,HttpServletResponse res) throws IOException
{
res.setContentType("text/html");
PrintWriter out =res.getWriter();
out.println("<html><head><title>the first EJB</title></head>");
try
{
InitialContext ctx=new InitialContext();
Object objRef = ctx.lookup("Hello");
//主接口
HelloHome home=(HelloHome)javax.rmi.PortableRemoteObject.narrow(objRef,HelloHome.class);
//组件接口
Hello bean =home.create();
out.println(bean.getHello());
}
catch(javax.naming.NamingException ne)
{
out.println("Naming Exception caught:"+ne);
ne.printStackTrace(out);
}
catch(javax.ejb.CreateException ce)
{
out.println("Create Exception caught:"+ce);
ce.printStackTrace(out);
}
catch(java.rmi.RemoteException re)
{
out.println("Remote Exception caught:"+re);
re.printStackTrace(out);
}
}
}

1,220

社区成员

发帖
与我相关
我的任务
社区描述
企业软件 中间件技术
社区管理员
  • 中间件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧