some more detail la........
i downloaded a jboss already.....but i just can put it with tomcat together......any idea for me????

解决方案 »

  1.   

    一、 配置步骤:
    1. 将编译好的类文件(*.class)和配置描述文件(ejb-jar.xml & jboss.xml)打包。例如目录结构:
    com/
       --abc/
          --app/
    --ejbmodelA/
        --ejbA.class
        --ejbB.class
    --ejbmodelB/
       
                 --ejbC.class
        --ejbD.class
    META-INF/
    --ejb-jar.xml
    --jboss.xml
    命令:(linux下面)
    jar cvf cms.jar com/abc/app/ejbmodelA/*.class com/abc/app/ejbmodelB/*.class META-INF
    2. 将打包好的jar文件(cms.jar)copy到<Jboss HOME>/deploy目录下面即可。


    二、 配置描述文件的说明
    1. ejb-jar.xml & jboss.xml
    这是EJB项目共有的两个配置文件。很明显,Jboss原用了Sun的规范,没有作任何改变。举例,
    ejb-jar.xml
    <?xml version="1.0" encoding="Cp1252"?>
    <ejb-jar>
    <description>jBoss test application </description>
    <display-name>Test</display-name>
    <enterprise-beans>
    <entity>
         <description>Models a music CD</description>
         <ejb-name>CDBean</ejb-name>-----A
         <home>com.web_tomorrow.cd.CDHome</home>
         <remote>com.web_tomorrow.cd.CD</remote>
         <ejb-class>com.web_tomorrow.cd.CDBean</ejb-class>
         <persistence-type>Container</persistence-type>
         <prim-key-class>java.lang.String</prim-key-class>
         <reentrant>False</reentrant>
         <cmp-field><field-name>id</field-name></cmp-field>
         <cmp-field><field-name>title</field-name></cmp-field>
         <cmp-field><field-name>artist</field-name></cmp-field>
         <cmp-field><field-name>type</field-name></cmp-field>
         <cmp-field><field-name>notes</field-name></cmp-field>
         <primkey-field>id</primkey-field>
       </entity>

    <session>
      <description>Models a music CD collection</description>
       <ejb-name>CDCollectionBean</ejb-name>
       <home>com.web_tomorrow.cd.CDCollectionHome</home>
       <remote>com.web_tomorrow.cd.CDCollection</remote>
       <ejb-class>com.web_tomorrow.cd.CDCollectionBean</ejb-class>
       <session-type>Stateless</session-type>
       <transaction-type>Container</transaction-type>
       <ejb-ref>
         <ejb-ref-name>cd/CD</ejb-ref-name>
         <ejb-ref-type>Entity</ejb-ref-type>
         <home>com.web_tomorrow.cd.CDHome</home>
         <remote>com.web_tomorrow.cd.CD</remote>
         <ejb-link>CDBean</ejb-link>----B
       </ejb-ref>
    </session>
    </enterprise-beans>
    </ejb-jar>
    jboss.xml
    <?xml version="1.0" encoding="Cp1252"?>
    <jboss>
    <secure>false</secure>
    <container-configurations/>
    <resource-managers/>
    <enterprise-beans>
    <entity>
       <ejb-name>CDBean</ejb-name>
       <jndi-name>cd/CD</jndi-name>
    </entity>
    <session>
       <ejb-name>CDCollectionBean</ejb-name>
       <jndi-name>cd/CDCollection</jndi-name>
    </session>
    </enterprise-beans>
    </jboss>
    从上面看出,ejb-jar.xml与jboss.xml两文件的接构没有很大的区别。Ejb-jar.xml具体描述各个EJB,如hom、remote interface、implement bean等,而jboss.xml即告诉EJB的用户如何得到某EJB的JNDI名字。
    注意:
    1.ejb-jar.xml与jboss.xml的<ejb-name></ejb-name>标签里的内容要一致,在ejb-jar.xml里描述过的EJB一定要在jboss.xml里有描述。
    2.假设一个Bean A要调用另外的Bean B时候,在BeanA一定要有<ejb-ref></ejb-ref>标签,看上面例子的ejb-jar.xml文件,里边标有粗体的A和B,当Session Bean CDCollectionBean要调用 Entity Bean CDBean 来进行读写操作时,就包含了下面的描述:
    <ejb-ref>
         <ejb-ref-name>cd/CD</ejb-ref-name>
         <ejb-ref-type>Entity</ejb-ref-type>
         <home>com.web_tomorrow.cd.CDHome</home>
         <remote>com.web_tomorrow.cd.CD</remote>
         <ejb-link>CDBean</ejb-link>
       </ejb-ref>
    其中,<ejb-link></ejb-link>里的名字要跟被引用的CDBean描述的标签<ejb-name></ejb-name>内容一样,即都是CDBean.

    2.jboss.jcml
    这个文件是给Jboss调用的,主要是用来描述事件驱动Bean(Message-Driven Bean)的。我们现在主要用来描述JDBC的驱动程序和数据库连接池。例如,我们用的是Oracle数据库,所以我们应该:
    1. 为Jboss提供Oracle的JDBC驱动程序。
    Copy classes12.zip和nls_charset12.zip到<Jboss HOME>/lib/ext目录下。
    2. 在jboss.jcml文件里描述Orcale的驱动程序。
    找到标签
    <mbean code="org.jboss.jdbc.JdbcProvider" name="DefaultDomain:service=JdbcProvider">
    <attribute name="Drivers">
    org.hsql.jdbcDriver,org.enhydra.instantdb.jdbc.idbDriver
    </attribute>
    </mbean>
    将”oracle.jdbc.driver.OracleDriver”加到<attribute name=”Drivers”></attribute>标签里面
    <mbean code="org.jboss.jdbc.JdbcProvider" name="DefaultDomain:service=JdbcProvider">
    <attribute name="Drivers">
    oracle.jdbc.driver.OracleDrive ,org.hsql.jdbcDriver,org.enhydra.instantdb.jdbc.idbDriver
    </attribute>
    </mbean>
    3. 在jboss.jcml文件里描述Orcale数据连接池。
    参考原有的例子,copy一份,粘贴到文件末尾,稍作修改
    <mbean code="org.jboss.jdbc.XADataSourceLoader" name="DefaultDomain:service=XADataSource,name=GtongDS">
    <attribute name="PoolName">GtongDS</attribute>
      <attribute name="DataSourceClass">org.opentools.minerva.jdbc.xa.wrapper.XADataSourceImpl</attribute>
      <attribute name="URL">jdbc:oracle:thin:@192.168.0.4:1521:gtong</attribute>
      <attribute name="JDBCUser">gtong</attribute>
      <attribute name="Password">gtong</attribute>
    <attribute name="GCEnabled">true</attribute>
    <attribute name="GCMinIdleTime">1200000</attribute>
    </mbean>
    另外,还要到jboss.properties文件里将jboss.xa.xidclass=oracle.jdbc.xa.OracleXid去掉注释。
    3.standardjaws.xml
    这个文件Jboss主要是用来描述Entity Bean与数据库之间的关系和CMP Bean的一写特殊查找方法。简单结构为:
    <?xml version="1.0" encoding="UTF-8"?>
    <jaws>
    <datasource>java:/GtongDS</datasource>//数据源名字
    <type-mapping>Oracle8</type-mapping>//对应下面的type-mapping名字
    <debug>false</debug>
    <default-entity>
    <create-table>false</create-table>//初始化时,是否为CMP EntityBean新建一张表
    <remove-table>false</remove-table>//初始化时,是否为CMP EntityBean删除一张表
    <tuned-updates>false</tuned-updates>
    <read-only>false</read-only>
    <time-out>300</time-out>
    <select-for-update>false</select-for-update>
    </default-entity>
    <enterprise-beans>
          <entity>
            <ejb-name>CDBean</ejb-name>//CMP Entity Bean 的名字,与ejb-jar.xml里的描述一样
            <table-name>CDBean</table-name>//这个Entity Bean对应的一张数据表
            <create-table>false</create-table>//初始化时,是否为CMP EntityBean删除旧表并新建一张表
            <cmp-field>
              <field-name>id</field-name>//Entity Bean 里的field
              <column-name>id</column-name>//数据表里的field
            </cmp-field>
            <cmp-field>
              <field-name>title</field-name>
              <column-name>title</column-name>
            </cmp-field>
            <cmp-field>
               <field-name>artist</field-name>
              <column-name>artist</column-name>
            </cmp-field>
    <cmp-field>
              <field-name>notes</field-name>
              <column-name>notes</column-name>
            </cmp-field>
    <cmp-field>
              <field-name>type</field-name>
              <column-name>type</column-name>
            </cmp-field>
    <finder>//定义查找方法
    <name>findByArtistAndType</name>//方法名称
          <query>//0和1是指Entity Bean 的homel里定义的方法的参数顺序:findByArtistAndType(String artist,String type)
         artist= {0} AND type= {1}//相当于“Select * from CDBean where artist=? And type=?”
    </query>
         <order>id</order>//排序的field
    </finder>
          </entity>
        </enterprise-beans> <type-mappings>//下面的对照表一般可有用,不用作修改。
    <type-mapping>
    <name> Oracle8</name>
    <mapping>
    <java-type>java.lang.Boolean</java-type>
    <jdbc-type>BIT</jdbc-type>
    <sql-type>SMALLINT</sql-type>
    </mapping>

    </type-mapping>

    </type-mappings>
    </jaws>
      更详细的说明请参考Jboss的文档资料。
    4.Standardjboss.xml
    这个文件是jboss用来设置各种Bean性能的。具体请参考文件。
      

  2.   

    to Anreddy(我想知道) 
    可以和你联系吗?