JAVA流通桥

JAVA启发者

统计

留言簿(3)

AJAX相关网址

Eclipse相关网址

Hibernate

java相关网址

LINUX相关网址

webwork相关网址

友好链接

阅读排行榜

评论排行榜

jboss配置文件的简单介绍

这里面是最麻烦的,我会将遇到的常见错误描述一下,并说明解决方法。

要部署EJB就要修改部署文件,因为默认生成的部署文件还是有出路的。但是网络上很多文章提到需要修改的文件颇多,我在实际开发的时候觉得没有必要修改这么多文件,请听我慢慢到来。

与部署有关的文件如下:

文件名称

路径

用途

standardjaws.xml

jboss-3.0.2\server\default\conf

Entity EJB标准部署描述文件

standardjbosscmp-jdbc.xml

jboss-3.0.2\server\default\conf

JBossCMP容器的标准部署描述文件。

standardjboss.xml

jboss-3.0.2\server\default\conf

JBoss的标准部署描述文件。

oracle-service.xml

jboss-3.0.2\server\default\deploy

Oracle数据库的部署描述文件(非事务处理数据源),需要从jboss-3.0.2\docs\examples\jcacopy过来

oracle-xa-service.xml

jboss-3.0.2\server\default\deploy

Oracle数据库的部署描述文件(事务处理数据源),需要从jboss-3.0.2\docs\examples\jcacopy过来

ejb-jar.xml

jarMETA-INF目录中

jar及其ejb标准部署描述文件

jaws.xml

jarMETA-INF目录中

Entity EJB部署描述文件,这个文件描述了CMP定义以及其持久属性。

jboss.xml

jarMETA-INF目录中

EJBJbossJNDI部署描述文件

 

 

 

 

1.        standardjaws.xml:这个文件主要描述了数据源和映射类型,EJB映射的表。这个数据源描述了一个JNDI名称,可以通过这个JNDI获得一个数据源连接池。jar包的META-INF目录中有个jaws.xml与此文件对应,只要把jar中的jaws.xml它配置好了就可以,不用修改这个文件。

2.        standardjbosscmp-jdbc.xmlJBossCMP容器的标准部署描述文件。网上说此文件需要进行修改,比如

<defaults>

 缺省的数据源

      <datasource>java:/DefaultDS</datasource>

缺省的数据库类型

      <datasource-mapping>Hypersonic SQL</datasource-mapping>

……..

</defaults>

修改成当前使用的配置

当前使用的数据源

      <datasource>java:/NECOracle</datasource>

当前使用的数据库类型

      <datasource-mapping>Oracle8</datasource-mapping>

但是在实际操作中没有进行任何修改也成功的部署了ejb。所以这个文件应该不用修改。

3.        standardjboss.xmlJBoss的标准部署描述文件。此文件不需要修改。

4.        jaws.xmljaws.xml对应standardjaws.xml文件,但是此文件在jarMETA-INF目录中,这个文件描述了CMPEJB定义以及其持久属性。只专门针对此jar的数据源和映射类型的描述。此文件需要做修改。

<jaws>

此处声明的DataSource是此jar应该对应的DataSource,这个数据源就是在oracle-service.xml中描述的数据源,oracle-service.xml中可以有多个数据源,要选择此jar相对应的数据源。如果oracle-service.xml文件只是使用原来的数据源OracleDS,那么此处直接修改就可以:

EntityEJB的数据源,这个OracleDSoracle-service.xml文件默认的数据源

<datasource> OracleDS</datasource>   

注意:此文件是由JBulider自动生成的,所以此DataSource也是自动加上的,此名称缺省与在EJBModule中配置的DataSource的名称一致,所以为了方便起见,EJBModule中配置的DataSource应该是oracle-service.xml中被声明的数据源(也可修改oracle-service.xml文件,进行添加)。这样此处就不用进行修改。比如本例“NECOracle”就在oracle-service.xml中声明了。

数据库的类型,此处必须是正确的,就是必须是standardjbosscmp-jdbc.xml定义的数据库

<type-mapping>Oracle8</type-mapping>  

以下是此EJB的相关描述

  <enterprise-beans>

<entity>

EntityEJB的名称

      <ejb-name>Systui</ejb-name>            

开始声明具体的数据库字段名称和EJB域的映射关系

      <cmp-field>

        <field-name>tuiid</field-name>

        <column-name>TUIID</column-name>

      </cmp-field>

……………..

</enterprise-beans >

 

我们也可以在oracle-service.xml中增加数据源,并使用这个数据源(如何增加数据源下面oracle-service.xml会详细讲到),同时此名称缺省值是JBuliderEJBModule中创建的DataSource

NECOracle是在oracle-service.xml新增的数据源

<datasource> NECOracle </datasource>   

数据库的类型,此处必须是正确的,就是必须是standardjbosscmp-jdbc.xml定义的数据库

<type-mapping>Oracle8</type-mapping>  

以下是此ejb的相关描述

  <enterprise-beans>

<entity>

EntityEJB的名称

      <ejb-name>Systui</ejb-name>             

开始声明具体的数据库字段名称和EJB域的映射关系

      <cmp-field>

        <field-name>tuiid</field-name>

        <column-name>TUIID</column-name>

      </cmp-field>

……………..

</enterprise-beans >

5.        oracle-service.xmlOracle数据库非事务处理数据源部署描述文件,这个文件用来描述oracle数据源,可以直接修改当前的数据源,也可以在此文件中增加数据源,本人倾向增加数据源,通过增加就可以有多个数据源供 EJB使用了。我们现在可以对其进行修改:

开始描述一个数据源,这个数据源的名称是OracleDS

  <mbean code="org.jboss.resource.connectionmanager.LocalTxConnectionManager" name="jboss.jca:service=LocalTxCM,name=OracleDS"> 

    <depends optional-attribute-name="ManagedConnectionFactoryName">

<mbean code="org.jboss.resource.connectionmanager.LocalTxConnectionManager" name="jboss.jca:service=LocalTxCM,name=OracleDS">

…….

此处描述数据库的连接参数

            <config-property name="ConnectionURL" type="java.lang.String">jdbc:oracle:thin:@youroraclehost:1521:yoursid</config-property>

此处描述数据源的连接驱动          

 <config-property name="DriverClass" type="java.lang.String">oracle.jdbc.driver.OracleDriver</config-property>

访问数据库的用户名

            <config-property name="UserName" type="java.lang.String"></config-property>

访问数据库的密码

            <config-property name="Password" type="java.lang.String"></config-property>

          </properties>

        </attribute>

……

  </mbean>

修改后

  <mbean code="org.jboss.resource.connectionmanager.LocalTxConnectionManager" name="jboss.jca:service=LocalTxCM,name=OracleDS"> 

    <depends optional-attribute-name="ManagedConnectionFactoryName">

<mbean code="org.jboss.resource.connectionmanager.LocalTxConnectionManager" name="jboss.jca:service=LocalTxCM,name=OracleDS">

…….

此处描述数据库的连接参数

            <config-property name="ConnectionURL" type="java.lang.String">jdbc:oracle:thin:@172.28.119.173:1521:comp1</config-property>

此处描述数据源的连接驱动          

 <config-property name="DriverClass" type="java.lang.String">oracle.jdbc.driver.OracleDriver</config-property>

访问数据库的用户名

            <config-property name="UserName" type="java.lang.String">mrc</config-property>

访问数据库的密码

            <config-property name="Password" type="java.lang.String">mrc1</config-property>

          </properties>

        </attribute>

……

  </mbean>

 

我们也可以增加一个数据源

<?xml version="1.0" encoding="UTF-8"?>

<server>

…….

原来缺省的数据源OracleDS

  <mbean code="org.jboss.resource.connectionmanager.LocalTxConnectionManager" name="jboss.jca:service=LocalTxCM,name=OracleDS"> 

    <depends optional-attribute-name="ManagedConnectionFactoryName">

<mbean code="org.jboss.resource.connectionmanager.LocalTxConnectionManager" name="jboss.jca:service=LocalTxCM,name=OracleDS">

…….

            <config-property name="ConnectionURL" type="java.lang.String">jdbc:oracle:thin:@youroraclehost:1521:yoursid</config-property>

<config-property name="DriverClass" type="java.lang.String">oracle.jdbc.driver.OracleDriver</config-property>

            <config-property name="UserName" type="java.lang.String"></config-property>

            <config-property name="Password" type="java.lang.String"></config-property>

          </properties>

        </attribute>

……

</mbean>

 

新增加的一个数据源NECOracle

  <mbean code="org.jboss.resource.connectionmanager.LocalTxConnectionManager" name="jboss.jca:service=LocalTxCM,name=NECOracle"> 

    <depends optional-attribute-name="ManagedConnectionFactoryName">

<mbean code="org.jboss.resource.connectionmanager.LocalTxConnectionManager" name="jboss.jca:service=LocalTxCM,name=NECOracle">

…….

此处描述数据库的连接参数

            <config-property name="ConnectionURL" type="java.lang.String">jdbc:oracle:thin:@172.28.119.173:1521:comp1</config-property>

此处描述数据源的连接驱动          

 <config-property name="DriverClass" type="java.lang.String">oracle.jdbc.driver.OracleDriver</config-property>

访问数据库的用户名

            <config-property name="UserName" type="java.lang.String">mrc</config-property>

访问数据库的密码

            <config-property name="Password" type="java.lang.String">mrc1</config-property>

          </properties>

        </attribute>

……

  </mbean>

</server>

 

6.        oracle-xa-service.xml:此文件同oracle-service.xml是一个道理,区别在于此文件是描述事务处理数据源的,而oracle-service.xml则是描述非事务处理数据源的。本例使用非事务处理数据源,所以此对文件没有进行修改。

7.        ejb-jar.xml:此文件在jarMETA-INF目录中,是此jar及其EJB的标准部署描述文件。此处需要注意的就是文件中描述的DataSource

 

<ejb-jar>

  <display-name>MyEJBModule</display-name>

  <enterprise-beans>

    <entity>

      <ejb-name>Systui</ejb-name>

      <home>myejb.SystuiHome</home>

……

      <resource-ref>

此处的JDBC名称缺省值是EJBModule中创建的DataSource的名称,EJBModule中创建的DataSource应该是在oracle-service.xml文件中声明过的DataSource,否则此处就需要手工修改成oracle-service.xml中声明的DataSource的名称。

        <res-ref-name>jdbc/NECOracle</res-ref-name>

        <res-type>javax.sql.DataSource</res-type>

        <res-auth>Container</res-auth>

      </resource-ref>

    </entity>

</ejb-jar>

 

8.        jboss.xml:此文件在jarMETA-INF目录中,EJBJbossJNDI部署描述文件。

<jboss>

  <enterprise-beans>

    <entity>

      <ejb-name>Systui</ejb-name>

      <jndi-name>Systui</jndi-name>

      <resource-ref>

此处的JDBC名称缺省值是EJBModule中创建的DataSource的名称,EJBModule中创建的DataSource应该是在oracle-service.xml文件中声明过的DataSource,否则此处就需要手工修改成oracle-service.xml中声明的DataSource的名称。

        <res-ref-name>jdbc/NECOracle</res-ref-name>

        <jndi-name>NECOracle</jndi-name>

      </resource-ref>

    </entity>

  </enterprise-beans>

</jboss>

9.        相应的部署文件修改完成之后就可以发布EJB了。“Enterprise”->Server Deployment”进入发布界面,“Action”选择“Deploy”,“Archive(s)”可以选择要发布的jar文件,通常这个文件和你的工程文件在一个目录下。

posted on 2007-07-30 16:54 朱岩 阅读(3481) 评论(0)  编辑  收藏 所属分类: jboss文章


只有注册用户登录后才能发表评论。


网站导航: