在现在看来ejb这个技术很老了,而且确实很少人在用,本次是公司要求我才去接触ejb。ejb是javaee 的一个组件,优势支持分布式业务跟web层分开,好了本人概念性不是很强,将就着点。
准备条件:本案例的环境,Eclipse Mars,Jboss 5.1 mysql5.5
点击windows -prefe……-server-runtime env-添加自己的服务器(这里需要下载Jboss 插件下载好了,直接在Jboss tools 配就行了)
在空白处右击选择new -other-EJB Project 填写项目名称,以及选择应用服务器如下图:
下一步 到src 可以点击edit 编辑成src 然后下一步直到完成。
然后新建一个包
然后新建一个接口,对应实现
实现类要注解两个标识,一个是@stateless无状态 @stateful有状态 和@remote 远程标识
然后配数据源,要把mysql或者其他数据库驱动包放到目录下面,去deploy目录或者其他目录找到hsqldb-ds.xml这个数据源文件,然后文件名修改mysql-ds.xml再打开配置如下】
用户名跟密码跟url配正确就好了。
然后在项目的src目录下的META-INF目录下添加persistence.xml的配置文件。
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<persistence-unit name="loginDS" transaction-type="JTA">
<jta-data-source>java:/MySqlDS</jta-data-source>
<properties>
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.hbm2ddl.auto" value="update" />
</properties>
</persistence-unit>
</persistence>
java:MySqlDS是你刚才文件的数据源jndi名称
创建好之后,新建user 实体文件跟数据库对应。
回到UserBizImpl实现类中
用注解
@PersistenceContext
private EntityManager en;
创建一个登陆的方法
public static void main(String[] args) {
try {
Properties props = new Properties();
props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url", "127.0.0.1:1099");
InitialContext context = new InitialContext(props);
UserBiz bean=(UserBiz) context.lookup("UserBizBean/remote");
Users users=bean.userLogin("admin", "123");
System.err.println(users.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
完成之后就要测试了,将刚才的项目发布到jboss中启动服务器,
可以看到结果,已经成功了。