java ee7 ejb_【使用JBoss 7进行Java EE 6开发】开发部署调用EJB

开发工具:Eclipse LUMA(需安装了Oracle Java EE 6)

JBoss版本:jboss-as-web-7.0.2.Final

下面是开发步骤,在JBoss 7中开发部署EJB还是比较简单的。

读者需已正确安装上述软件平台,并掌握了创建Web 工程及开发Servlet的能力。

1.创建Web工程

选择Project -> New -> Dynamic Web project

创建一个Web项目,创建好项目后,写一个Servlet,等会要用这个Servlet来调用EJB(EJB不可以在main方法中测试)

2.创建EJB工程

选择Project -> New -> EJB Project

输入项目名称:TestEJB

并在EJB版本处选择3.1

点击两次Next,这里很重要,我们必须生成 ejb-jar.xml

在生成ejb-jar.xml的复选框打上勾

ede122a8380315076d63702dad41063a.png

点击Finish完成。

3.创建EJB接口

在TestEJB项目中,创建一个HelloRemote接口以及一个继承了此接口并实现了的类Hello,Hello需标注元注释,代码如下:

HelloRemote.java

package com.ex;

public interface HelloRemote {

public void setName(String name);

public String sayHello();

}

Hello.java

package com.ex;

import javax.ejb.Remote;

import javax.ejb.Stateless;

@Stateless(name="hello")

@Remote(HelloRemote.class)

public class Hello implements HelloRemote{

private String name = "";

@Override

public void setName(String name) {

// TODO Auto-generated method stub

this.name = name;

}

@Override

public String sayHello() {

// TODO Auto-generated method stub

return "Hello,"+name;

}

}

最后的TestEJB组织如下:

532845e465a8c2be81231a4569da90e1.png

在JBoss服务器上运行:右键选择Run As -> Run as server

选择JBoss AS 7.0 ,Next -> Fisish

然后在控制台可看到输出信息:

51dbed2a5029c688a88c2126daa794b1.png

这些都是JNDI绑定的名字,我们等会用JNDI调用此EJB的时候使用其中一个就好。

4.在Servlet中调用EJB

就上述EJB 导出(export)成EJB jar,

然后将此jar放到第一步创建的Web工程中WebContent/WEB-INF/lib文件夹下,

在Servlet中通过JNDI调用EJB,部分代码如下:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

HelloRemote firstEjb = lookupRemoteStatelessEjbBean();

firstEjb.setName("world");

System.out.println(firstEjb);

String s = firstEjb.sayHello();

System.out.println(s);

Writer writer = response.getWriter();

writer.write(s);

}

private static HelloRemote lookupRemoteStatelessEjbBean() {

// TODO Auto-generated method stub

final Hashtable jndiProperties = new Hashtable();

jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");

Context context = null;

try {

context = new InitialContext(jndiProperties);

} catch (NamingException e1) {

// TODO Auto-generated catch block

System.out.printf("查找上下文出错");

e1.printStackTrace();

}

String namespace;

namespace = "java:global/Test3/hello!com.ex.HelloRemote";

System.out.println(namespace);

try {

return (HelloRemote) context.lookup(namespace);

} catch (NamingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return null;

}

在Web.xml加上此Servlet的URL,访问此Servlet,可看到输出如下:

f21db39f1959e02d28c458f1049a389c.png

页面和控制台都会输出 Hello World,EJB调用成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值