在Tomcat中使用EmbeddedJBoss

本文介绍如何将Seam2.0与EmbeddedJBoss集成,并详细讲解了配置过程,包括下载EmbeddedJBoss、配置Tomcat、部署JavaEE组件及配置JNDI数据源等关键步骤。

新发布的Seam2.0 使用了最新版的EmbeddedJBoss beta2,这一版本与之前在Tomcat中配置EmbededJBoss有很大不同。

0、下载:

可以从sourceforge.net 下载,解压缩后目录结构如下:

├─docs
├─bootstrap
│  ├─conf
│  ├─data
│  ├─deploy
│  └─deployers
├─lib
└─optional-lib

1、配置:

在%tomcat_home%/conf/server.xml中增加如下监听器: 用于启动EmbeddedJBoss,再向%tomcat_home%/conf/context.xml文件中添加如下监听器:

xml 代码
<!-- -->      stener  className = "org.jboss.embedded.tomcat.WebinfScanner"   />   


2、copy资源——配置文件及jar:

以上配置完成后,Tomcat会经由EmbeddedJBossBootstrapListener启动EmbeddedJBoss,并WebinfScanner扫描WEB-INF下的classes和lib目录 发现并部署JavaEE组件。在 启动EmbeddedJBoss时需要配置文件在bootstrap目录下,copy该目录下除jndi.properties之外的 所有文件到%tomcat_home%/lib;请拷贝lib目录下的jar文件到%tomcat_home%/lib目录下,一共有4个jar文件:

jboss-embedded-tomcat-bootstrap.jar ,包括以上提到的两个监听器及相关class,该jar在lib目录下; jboss-embedded-all.jar ,EmbeddedJBoss的实现类,在lib目录下 ;(注意:该jar包不适合JDK1.6使用,若你使用JDK1.6请下载Signature.java 文件,Signature.java, 编译後覆更新到jboss-embedded-all.jar中即可 ); thirdparty-all.jar ,第三方类的集成包 在lib目录下; hibernate-all.jar ,Hibernate、JPA实现;

至此EmbeddedJBoss配置完成,启动Tomcat就可以从日志中看到EmbeddedJBoss的日志信息。

3、配置JNDI数据源:

正如以上所述 WebinfScanner会扫描WEB-INF目录,所以向%AppName%\WEB-INF\classes下加入XXX-ds.xml文件可配置数据源:以下是配置Dearby数据源的配置文件,

<? xml   version = "1.0"   encoding = "UTF-8" ?>    < datasources >        < local-tx-datasource >           < jndi-name > iAppDBDS </ jndi-name >           <!-- The driverclass and connurl -->           < driver-class > org.apache.derby.jdbc.ClientDriver </ driver-class >           < connection-url > jdbc:derby://localhost/iAppDB; create = true </ connection-url >                     <!-- The login and password -->           < user-name > admin </ user-name >           < password > sasa </ password >              <!-- The maximum connections in a pool/sub-pool -->           < min-pool-size > 0 </ min-pool-size >           < max-pool-size > 20 </ max-pool-size >           </ local-tx-datasource >    </ datasources >   

再启动Tomcat 从日志中可以看出该数据源绑定至java:/iAppDBDS,可经由一下JSP代码获得:

j
Context context =  new  InitialContext();    Object oo =  null ;    try {        oo = context.lookup( "java:iAppDBDS" );        System.out.println( "oo:"  + oo);    } catch (Exception e){        System.out.println(e.getMessage());    }    //out.print("java:iAppDBDS = <h1>"+ oo + "</h1>");    if  (oo !=  null ) {        DataSource ds = (DataSource) oo;        Connection conn = ds.getConnection();         if (conn !=  null ){            System.out.println( "conn:"  + conn);            out.print( "0-ds.getConnection = <h1>"  + conn +  "</h1>" );            conn.close();        } else {            out.print( "<h1>Get Connection Error~.</h1>" );        }    } else {        out.print( "<h1>Get InitialContext Error~.</h1>" );    }  

EmbeddedJBoss代替了Tomcat的JNDI实现。

4、发布位置:

App的发布位置必须在%tomcat_home%\webapps\下,否则JavaEE组件不能被发现,所以使用WTP 默认情况下会有问题,需要将WTP中的发布位置修改成%tomcat_home%\webapps\ 才可以。

或者可以把%tomcat_home%/conf/context.xml文件copy到WTP创建的Server目录中,即和server.xml放在一起。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值