扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:中国IT实验室 来源:中国IT实验室 2007年9月30日
关键字:
在本页阅读全文(共3页)
通过数据源的JNDI名,我们可以从数据源获得一条JDBC连接:
InitialContext initialContext = new InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource)
initialContext.lookup("java:/MySqlDS");
java.sql.Connection conn = ds.getConnection();
配置登陆
接下来,我们根据MySQL数据库的设置改动login-config.xml配置文件。登陆MySQL数据库须用到应用方案MySqlDbRealm。在login-config.xml中添加以下<application-policy/>元素:
<application-policy name = "MySqlDbRealm">
<authentication>
<login-module code =
"org.jboss.resource.security.ConfiguredIdentityLoginModule"
flag = "required">
<module-option name ="principal"></module-option>
<module-option name ="userName">root</module-option>
<module-option name ="password"></module-option>
<module-option name ="managedConnectionFactoryName">
jboss.jca:service=LocalTxCM,name=MySqlDS
</module-option>
</login-module>
</authentication>
</application-policy>
通过改动mysql-ds.xml和login-config.xml文件,JBoss 4.0服务器已经可以与MySQL数据库协同工作。除上述设置外,可能还需为JBoss部署描述符和JBoss JDBC配置文件作一些额外的改动。
部署CMP实体EJB时,若选择了“create table”(在jbosscmp-jdbc.xml中把create-table元素改为true),并且某个MySQL表的主键(唯一键)长度超过了500字节,应用的部署将在MySQL数据库中产生一条SQL语法错误警告。对于java.lang.String类型的CMP字段,我们知道在standardjbosscmp-jdbc.xml部署描述符中有mySQL类型映射,所以我们可以设置sql-type为java中的 java.lang.String类型,可减少VARCHAR值,从而减少了主键(唯一键)的长度。另一个可能出现的问题涉及部署描述符中的column-name元素。如果MySQL中某张表的某一字段与MySQL保留字相同,在把J2EE应用部署到JBoss后将产生错误,解决问题的办法是,把该字段名换成非MySQL保留字。
转换WebLogic的EJB应用
设置完MySQL和JBoss后,我们现在需要把WebLogic的EJB应用转换为JBoss的EJB应用。这一过程涉及改变部署描述符。WebLogic的实体EJB应用由EJB部署描述符(ejb-jar.xml、weblogic-ejb-jar.xml和weblogic-cmp-rdbms-jar.xml)、bean类(CatalogBean.java)、远程接口(Catalog.java)和本地接口(CatalogHome.java)构成。在WebLogic服务器中部署实体EJB时,创建了一个EJB的.jar文件;这个EJB的.jar文件有如下结构:
META-INF/
ejb-jar.xml
weblogic-ejb-jar.xml
weblogic-cmp-rdbms-jar.xml
CatalogBean.class
Catalog.class
CatalogHome.class
部署描述符中指明了EJB结构信息和应用组合信息。结构信息包括指出EJB是一个会话EJB还是实体EJB。ejb-jar.xml部署描述符的assembly-descriptor元素指明了应用组合信息。WebLogic的实体EJB部署描述符有ejb-jar.xml、weblogic-ejb-jar.xml和weblogic-cmp-rdbms-jar.xml,相应的JBoss部署描述符是ejb-jar.xml、jboss.xml和jbosscmp-jdbc.xml。下面将介绍两者间的转换。
除了multiplicity元素,WebLogic和JBoss的ejb-jar.xml部署描述符内容是相同的。JBoss服务器ejb-jar.xml中的multiplicity元素需要首字母大写;例如,one要写成One,many要写成Many。
在样例代码中,有实体EJB范例的ejb-jar.xml部署描述符。ejb-jar.xml范例定义了一个EJB名为“Catalog.”的实体EJB。EJB范例的CMP字段有catalogId、journal和publisher,其主键字段是catalogId。
把weblogic-ejb-jar.xml转换成jboss.xml
对EJB来说,weblogic-ejb-jar.xml和jboss.xml部署描述符是特定厂商的部署描述符。想把WebLogic EJB应用部署到JBoss应用服务器上,就要把weblogic-ejb-jar.xml部署描述符转换成jboss.xml。
weblogic-ejb-jar.xml中的根元素是weblogic-ejb-jar。jboss.xml中的根元素是jboss。在jboss.xml 和weblogic-ejb-jar.xml部署描述符中的EJB JNDI名分别为jndi-name元素和local-jndi-name元素。在样本代码中有实体EJB范例的weblogic-ejb-jar.xml部署描述符。weblogic-ejb-jar.xml部署描述符的DOCTYPE元素是:
< !DOCTYPE weblogic-ejb-jar PUBLIC
"-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN"
"http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd" >
jboss.xml部署描述符的DOCTYPE元素是:
< !DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 4.0//EN"
"http://www.jboss.org/j2ee/dtd/jboss_4_0.dtd">
源码的.zip文件中存有转换部署描述符weblogic-ejb-jar.xml到jboss.xml的定制XSLT样式表jboss.xslt。欲了解更多关于XSLT转换的详情,请参阅Sun公司的XSLT指南。样式表在JBoss中创建的jboss.xml,等同于WebLogic的weblogic-ejb-jar.xml部署描述符。jboss.xslt样式表产生的jboss.xml存放在范例代码中。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者