论坛首页 Java企业应用论坛

如何移植到jboss4.2.1并配置jaas和部署的几个问题

浏览 4241 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-09-14  

   

        将一个在tomcat下能够运行的项目 移植 并部署在 jboss4.2.1 。需要注意的几个细节

  1.  jboss4.2.1结构,重点介绍常用的目录
  1. | -----bin  启动文件   
  2. |                        |----conf    
  3. |                        |   
  4. |---server---default-----|--deploy-----tem---deploy   
  5. |                        |   
  6. |                        |-----tmp   
  7. |-----lib 加入驱动包或是其它和jboss关联的包   
  8. |   
  9. |   
  10. |-----docs----examples------jca  

   在 jboss-4.2.1.GA---------server------default-------deploy  目录下面给工程取名字很重要,也有一定的规范。要么用.war/.ear包的方式,如果是目录,那么目录后面也必须要加上.war/.ear  部署之后,上下文默认就是你包名字,但是jboss会自动把.war/.ear去掉。例如 项目下面部署了D:\jboss-4.2.1.GA\server\default\deploy\ecomapp.war,最后通过浏览器访问的时候,只要http://localhost:8080/ecomapp/ 就可以了。值得说的就是jboss会自动将项目部署在D:\jboss-4.2.1.GA\server\default\tmp\deploy下面。

   在 jboss-4.2.1.GA----- -----docs----examples------jca 目录下面放的是jboss自带的写配置文件的方式。每个数据库的写法。可以参考的。不同于老版本的就是命名不一样了,现在是 mssql-ds.xml。(下面详细介绍)

  1. 配置关联文件,*-ds.xml。jboss-web.xml。

       项目成功拷贝到 jboss-4.2.1.GA---------server------default-------deploy 目录下面后,然后就是配置关联文件。首先根据项目所属的数据库类型在docs----examples------jca 下拷贝相应的模板,jboss默认是hsqldb-ds.xml 文件。假设现在的数据库是sqlserver2000 ,这里就拷贝 mssql-ds.xml当作模板。然后将其改为下图:

mssql-ds.xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <datasources>  
  3.   <local-tx-datasource>  
  4.   <!--数据源的名字,这里取名要和jboss-web.xml对应起来,-->  
  5.     <jndi-name>wfmsDataSource</jndi-name>    
  6.     <!--配置连接路径,这里用的一个开源的连接方式-->  
  7.     <connection-url>jdbc:jtds:sqlserver://localhost:1433/ecomm_hts</connection-url>  
  8.     <!--驱动的类名字-->  
  9.     <driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class>  
  10.     <!--用户名和密码-->  
  11.     <user-name>sa</user-name>  
  12.     <password>sa</password>  
  13.       <metadata>  
  14.          <type-mapping>MS SQLSERVER2000</type-mapping>  
  15.       </metadata>  
  16.   </local-tx-datasource>  
  17. </datasources>  

      将mssql-ds.xml 文件拷贝到jboss-4.2.1.GA---------server------default-------deploy 目录下。

并在工程目录下加入 jboss-web.xml文件。例如工程是:ecomapp.war,那么拷贝的路径将是D:\jboss-4.2.1.GA\server\default\deploy\ecomapp.war\WEB-INF\下。新建jboss-web.xml,写法如下:

jbos-web.xml 代码
  1. <?xml version='1.0' encoding='UTF-8' ?>  
  2. <!DOCTYPE jboss-web   
  3.     PUBLIC "-//JBoss//DTD Web Application 2.3V2//EN"   
  4.     "http://www.jboss.org/j2ee/dtd/jboss-web_3_2.dtd">  
  5. <jboss-web>  
  6. <!--配置jaas的jndi-->  
  7. <security-domain>java:/jaas/DefaultLogin</security-domain>  
  8. <!-- 配置jndi方式 -->  
  9. <resource-ref>  
  10. <!-- 取这个名字要和web.xml中对应起来 -->  
  11. <res-ref-name>wfmsDataSource</res-ref-name>  
  12. <!-- 数据方式 -->  
  13. <res-type>javax.sql.DataSource</res-type>  
  14. <!-- 这个名字是和 mssql-ds.xml中的jndi-name对应着,不同的就是多加了一个java:/,这是个规范 -->  
  15. <jndi-name>java:/wfmsDataSource</jndi-name>  
  16. </resource-ref>  
  17. </jboss-web>  

最后web.xml中也配置相应的datasource,例如下面:在we.xml最后面加入

web.xml 代码
xml 代码
  1. <resource-ref>  
  2.   <description>  
  3.     Resource reference to a factory for java.sql.Connection   
  4.     instances that may be used for talking to a particular   
  5.     database that is configured in the server.xml file.   
  6.   </description>  
  7.   <res-ref-name>wfmsDataSource</res-ref-name>  
  8.   <res-type>javax.sql.DataSource</res-type>  
  9.   <res-auth>Container</res-auth>  
  10. </resource-ref>  

具体写法参见附adminguide.pdf  的 3.6. J2EE and JNDI - The Application Component Environment  P129

这样后,项目就能够运行了。

jaas 的配置

如果登录需要用jaas验证的话,这里还需要做下相应的配置。

首先在 jboss-4.2.1.GA---------server------default---------conf 目录下的 login-config.xml 文件中加入jaas的信息,如下:

login-config.xml 代码
xml 代码
  1. <application-policy name = "DefaultLogin">  
  2.    <authentication>  
  3.       <login-module code="com.ecomm.security.loginmodule.DefaultLoginModule"  
  4.          flag = "required">  
  5.       </login-module>  
  6.    </authentication>  
  7. </application-policy>  

然后在jboss-web.xml文件中配置对应的jaas的jndi,注意名字必须要统一,而且要这样java:/jaas/.......

  1. <security-domain>java:/jaas/DefaultLoginsecurity-domain>  

 最后是在登录的程序中也必须要把jaas的名字统一,例如程序中

  1. LoginContext lc = new LoginContext("DefaultLogin"new DefaultCallbackHandler(username, password));   
  2.                 lc.login();  

 

具体写法参见附adminguide.pdf  的 8.0 J2EE Security Configuration and Architecture   P270

 

这样配置之后我的程序就能够运行了。首先要确保工程在tomcat下能运行的。 

  • adminguide.rar (4.6 MB)
  • 描述: 这个文档可以在jboss.org下载,但是是外语
  • 下载次数: 451
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics