1.将EJB的压缩包解压到D盘(随意),在D:\jboss-4.2.0.GA\jboss-4.2.0.GA\docs\examples\jca
下找对应数据库的xml文件
(mssql-ds.xml是sqlserver的,mysql-ds.xml是mysql的,oracle-ds.xml是oracle的)
这里选sqlserver的为例
将mssql-ds.xml放到E:\Program Files\jboss-4.2.0.GA\server\default\deploy下
(其中的信息要改一下,比如说驱动、用户名、密码等要根据情况而定)
2.将相关数据库驱动放到D:\jboss-4.2.0.GA\jboss-4.2.0.GA\server\default\lib下
3.创建EJB项目(选择Java EE 5.0-EJB3)
1)Unit Name的名字可以随意(主要是用于标视)
2)Data Source的,则要写mssql-ds.xml里的MSSQLDS
3)Driver 是写已创建好的数据库连接
4)Catalog/Schema 是从连接中选取对应的数据库,后就可以保存了
4.在D:\jboss-4.2.0.GA\jboss-4.2.0.GA\client找到jbossall-client.jar并将其防到
EJB项目下,并导入
5.选择相关数据表,右击给EJB项目添加EJB组件
1)选择对应的EJB项目
2)选第一和第二的,即Entity Bean(无须创建抽象类)、Entity Facade(该项下的三个全选)
3)以下的全部默认
6.修改相关bean对象文件,为其主键添加自动增长功能
@GeneratedValue(strategy=GenerationType.AUTO)//用于主键自动增长
7.将实现类ZgWFacade的文件中的日志文件除去
8.用sqlserver时,要该一下 <driver-class>为com.microsoft.jdbc.sqlserver.SQLServerDriver
9.改写persistence.xml文件的内容
在mysql-ds.xml中的<use-java-context>false</use-java-context>时
persistence.xml中
<persistence-unit name="ldj" transaction-type="JTA">
<jta-data-source>MSSQLDS</jta-data-source>
</persistence-unit>
(该情况下 数据源 和 远程接口都能用,一般采用该中配置)
而在mysql-ds.xml中的<use-java-context>true</use-java-context>时
<persistence-unit name="ldj" transaction-type="JTA">
<jta-data-source>java:/MSSQLDS</jta-data-source>
</persistence-unit>
(该情况下 数据源找不到,但远程接口能取到)
10.测试类的书写
public class Text {
public Object getRemoteInstance(String str){
Properties props=new Properties();
props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");//jndi目录驱动类
props.setProperty("java.naming.provider.url", "localhost:1099"); //远程目录服务地址
props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
InitialContext ctx;
try {
ctx = new InitialContext(props);
return ctx.lookup(str);
} catch (NamingException e) {
e.printStackTrace();
}//获取上下文环境
return null;
}
public Object getLocalInstance(String str)throws Exception{
InitialContext ctx=new InitialContext();//获取上下文环境
return ctx.lookup(str);
}
public static void main(String[] args) {
Text tt=new Text();
// DataSource date = (DataSource)tt.getRemoteInstance("MSSQLDS");//数据源
// try {
// Connection conn = date.getConnection();
// System.out.println(conn);
// } catch (SQLException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
//接口
ZgwFacadeRemote dao=(ZgwFacadeRemote) tt.getRemoteInstance("ZgwFacade/remote");//ZgwFacade/remote根据情况而定
System.out.println(dao.findById(1));
}
}
12、EJB项目的发布一般是先将项目打成 包放到
E:\Program Files\jboss-4.2.0.GA\server\default\deploy下
或者直接加载到jobss中
13、去JBoss的界面查看相关信息
http://localhost:8088/jmx-console中
的jboss下的service=JNDIView下
的java.long.String list() 的invoke键