Jboss3 + EJB如何指定EntityBean所用的数据库连接池

beecat 2004-03-17 11:01:57
我仅知道通过修改standardjaws.xml,制定整个Jboss使用的连接池。但是,如果我的服务器上要跑两个不同的应用,那么就应该对每个的EntityBean指定使用的连接池才对。那应该怎么指定呢?网上有文章说再JAR包中的META-INFO中加入jbosscmp-jdbc.xml,我加了,还是不行,甚至会报错。应该怎么做呢?能不能告知详细的代码和步骤。谢谢。
...全文
48 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
beecat 2004-03-17
  • 打赏
  • 举报
回复
就是,在写EntityBean的部署描述符的时候,都要写哪几个?怎么写?我发一个我写的jaws.xml给你看看?原来是Jbuilder自己生成的,可是没有地方指定我的连接池JNDI,我就按照DTD的文档改了,放在了我的JAR包里面的META-INF下面。对吗?

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

<!DOCTYPE jaws PUBLIC
"-//JBoss//DTD JAWS 3.0//EN"
"http://www.jboss.org/j2ee/dtd/jaws_3_0.dtd">

<jaws>
<datasource>FJTBMisDB</datasource> <!--连接池的名字-->
<type-mapping>Oracle8</type-mapping>

<default-entity>
<create-table>false</create-table>
<remove-table>false</remove-table>
<tuned-updates>true</tuned-updates>
<read-only>false</read-only>
<time-out>300</time-out>
<row-locking>false</row-locking>
</default-entity>


<enterprise-beans>
<entity>
<ejb-name>TDict</ejb-name>
<table-name>T_DICT</table-name>
<cmp-field>
<field-name>code</field-name>
<column-name>CODE</column-name>
</cmp-field>
<cmp-field>
<field-name>name</field-name>
<column-name>NAME</column-name>
</cmp-field>
<cmp-field>
<field-name>ordinal</field-name>
<column-name>ORDINAL</column-name>
</cmp-field>
<cmp-field>
<field-name>note</field-name>
<column-name>NOTE</column-name>
</cmp-field>
</entity>
</enterprise-beans>

<type-mapping-definition>
<name>Oracle8</name>
<mapping>
<java-type>java.lang.Boolean</java-type>
<jdbc-type>BIT</jdbc-type>
<sql-type>NUMBER(1)</sql-type>
</mapping>
<mapping>
<java-type>java.lang.Byte</java-type>
<jdbc-type>NUMERIC</jdbc-type>
<sql-type>NUMBER(3)</sql-type>
</mapping>
<mapping>
<java-type>java.lang.Short</java-type>
<jdbc-type>NUMERIC</jdbc-type>
<sql-type>NUMBER(5)</sql-type>
</mapping>
<mapping>
<java-type>java.lang.Integer</java-type>
<jdbc-type>INTEGER</jdbc-type>
<sql-type>NUMBER(10)</sql-type>
</mapping>
<mapping>
<java-type>java.lang.Long</java-type>
<jdbc-type>BIGINT</jdbc-type>
<sql-type>NUMBER(19)</sql-type>
</mapping>
<mapping>
<java-type>java.lang.Float</java-type>
<jdbc-type>REAL</jdbc-type>
<sql-type>NUMBER(38,7)</sql-type>
</mapping>
<mapping>
<java-type>java.math.BigDecimal</java-type>
<jdbc-type>DECIMAL</jdbc-type>
<sql-type>NUMBER(38,15)</sql-type>
</mapping>
<mapping>
<java-type>java.lang.Double</java-type>
<jdbc-type>DOUBLE</jdbc-type>
<sql-type>NUMBER(38,15)</sql-type>
</mapping>
<mapping>
<java-type>java.lang.Character</java-type>
<jdbc-type>CHAR</jdbc-type>
<sql-type>CHAR</sql-type>
</mapping>
<mapping>
<java-type>java.lang.String</java-type>
<jdbc-type>VARCHAR</jdbc-type>
<sql-type>VARCHAR2(255)</sql-type>
</mapping>
<mapping>
<java-type>java.sql.Date</java-type>
<jdbc-type>DATE</jdbc-type>
<sql-type>DATE</sql-type>
</mapping>
<mapping>
<java-type>java.sql.Time</java-type>
<jdbc-type>TIME</jdbc-type>
<sql-type>DATE</sql-type>
</mapping>
<mapping>
<java-type>java.sql.Timestamp</java-type>
<jdbc-type>TIMESTAMP</jdbc-type>
<sql-type>DATE</sql-type>
</mapping>
<mapping>
<java-type>java.lang.Object</java-type>
<jdbc-type>BLOB</jdbc-type>
<sql-type>BLOB</sql-type>
<!-- Change this from BLOB to RAW(255) if you know your
serialized object will be <= 255 bytes -->
</mapping>
</type-mapping-definition>

</jaws>
Leemaasn 2004-03-17
  • 打赏
  • 举报
回复
你想知道什麽東西放在哪里?
Leemaasn 2004-03-17
  • 打赏
  • 举报
回复
你想知道寫什麽?
beecat 2004-03-17
  • 打赏
  • 举报
回复
这个我已经知道了。那么,具体应该怎么写呢?放在哪里?
Leemaasn 2004-03-17
  • 打赏
  • 举报
回复
如果你用的是jboss322,你一般需要在
deploy目錄下設置一個數據源(如:mysql-ds.xml)
其中配置jndi、連接池等。


然後,在你的jbosscmp-jdbc.xml指定使用你配置的jndi,
tnt_tnt 2004-03-17
  • 打赏
  • 举报
回复
一般来讲,在server->default->deplory下配置了数据池后,如果不是用工具直接发布的bean的话,可以在代码里面定义Database ,然后初始化,指定为你在上面目录下的数据源。在conf里的配置也需要重新写!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧