发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 大数据 扩展性 并发编程 事件驱动 分布式 SOA
1 2 3 下一页 Go 3

jboss to weblogic移值说明(原创)

         
2003-07-31 20:31
赞助商链接

好不容易把原有的jboss系统移值到了weblogic上,呵呵花了一天时间,真是充满痛苦和愤怒,就像当初把

系统部署到jboss上一样,一出错就是好多,呵呵,只有一个个的看,但比较另人费解的是,在部署jboss出错

时,前后错误不一样,前面提示的是正确的,而后面又提示你是别的bean出现不符合规范引起的错误。呵呵,

不说了,想必各位也经历过如何情形,慢慢享受吧。言归正传:


在我看来jboss的配置还是比较简单,不是很复杂和难以理解的,尽管都是手工的(没有人用jmx-console配吧

),虽然weblogic的配置很图形化,但是不知道配置的东东跑到什么地方去了,config.xml文件只能找到conne

ction pool等得配置,但是系统级的找不着,很典型的是log级别的配置,不知放哪里了,对weblogic了解不深

,还望各位高手指点。

第一步:jbosscmp-jdbc.xml->weblogic-cmp-rdbms-jar.xml
如果你没有weblogic-cmp-rdbms-jar.xml文件的样本,jbuilder生成一个。
这个文件主要包含ejb字段和数据库字段的对应关系,移植这个文件修改不是很多,主要是datasource

需要修改,其余就是tag的不同了。
首先是数据源的修改,weblogic和jboss都提供对某个具体的EntityBean的datasource定义,而jboss还

提供所有缺省的datasource,所以如果jbosscmp-jdbc.xml用的缺省的datasource形如:

<defaults>
<datasource>java:/OracleDS</datasource>
<datasource-mapping>Oracle9i</datasource-mapping>
<create-table>false</create-table>
</defaults>

的得修改一下了,加到每个WEBLOGIC 每个定义entity下。另外java:/OracleDS得修改为OracleDS
示例:


jbosscmp-jdbc.xml
<jbosscmp-jdbc>
<defaults>
<datasource>java:/OracleDS</datasource>
<datasource-mapping>Oracle9i</datasource-mapping>
<create-table>false</create-table>
</defaults>
<enterprise-beans>
<entity>
<ejb-name>Test</ejb-name>
<table-name>Test</table-name>
<cmp-field>
<field-name>lineNbr</field-name>
<column-name>LINE_NBR</column-name>
</cmp-field>
<cmp-field>
<field-name>nxxNbr</field-name>
<column-name>NXX_NBR</column-name>
</cmp-field>

</entity>
<enterprise-beans>
....
</bosscmp-jdbc>

移植后的WEBLOGIC weblogic-cmp-rdbms-jar.xml


<weblogic-rdbms-jar>
<weblogic-rdbms-bean>
<ejb-name>AccNbr</ejb-name>
<data-source-name>OracleDS</data-source-name>
<table-map>
<table-name>Test</table-name>
<field-map>
<cmp-field>lineNbr</cmp-field>
<dbms-column>LINE_NBR</dbms-column>
</field-map>
<field-map>
<cmp-field>nxxNbr</cmp-field>
<dbms-column>NXX_NBR</dbms-column>
</field-map>
</table-map>
</weblogic-rdbms-bean>
....
</weblogic-rdbms-jar>

注意weblogic datasource每个entity都需定义

第二步:jboss.xml->weblogic-ejb-jar.xml
jboss.xml中主要描述的是EJB的local和remote jndi名称,以及EJB资源和实际的对应关系
weblogic.xml中也是如此,weblogic中还必须定义Entity的persistence type。
除此,如过你没有用到别的依赖服务器的设置,基本上修改也就不多了。
sessionbean大体上不用修改啥,修改一下tag就ok了。对于entity还得加上entity-descriptor
示例:


jboss.xml
<entity>
<ejb-name>Test</ejb-name>
<local-jndi-name>Test</local-jndi-name>
</entity>

weblogic-ejb-jar.xml
<weblogic-enterprise-bean>
<ejb-name>Test</ejb-name>
<entity-descriptor>
<persistence>
<persistence-use>
<type-identifier>WebLogic_CMP_RDBMS</type-identifier>
<type-version>6.0</type-version>
<type-storage>META-INF/weblogic-cmp-rdbms-jar.xml</type-storage>
</persistence-use>
</persistence>
</entity-descriptor>
<local-jndi-name>Test</local-jndi-name>
</weblogic-enterprise-bean>

对于ejb来将需要修改的地方只有两处了,当然如果你需要调整一下性能,那就是以后慢慢加的事了。
对于web应用来要可能增加weblogic.xml配置文件(如果你定义了ejb引用的话),也可以不要。




好了部署文件的修改完了。下面是weblogic的配置了,网上weblogic配置的文档也不少。我大概说说datasourc

e配置,以及和jboss的区别
jboss: 在JBOSS_HOME\docs\examples\jca目录中有关于各个数据库的配置(如oracle-ds.xml),修改一

下然后放到jboss的deploy目录下(jboss默认启动的是default那个目录,如果你要启动别的配置,需加参数-

c)
,注意jndi-name名称就是你在部署文件中用到的OracleDS,如果你想加一些其他的关于datasource的配置(如

对最大连接数的配置),可以将jca目录下generic-ds.xml配置考到你的文件中,那个是所有ds的默认配置。(3.

2.1和3.0.X不同)

weblogic:先配置connection pools,配置一个连接,然后再新建一个datasource就ok了.
这里有点说明:weblogic的DataSource

Jndi是OracleDS,而jboss是java:/OracleDS,注意两者datasource的区别.

配置好后可以将你文件打包部署到weblogic上了,如果在development

mode模式,可以直接将文件copy到user_projects\mydomain\applications下,weblogic会自动部署,不过你上控

制台看一下部署好的应用名可能不是你刚才的那个,weblogic也自动生成一个临时的名称
也可以直接再控制台上上传文件部署,或者用别的工具了.

说一下部署过程中会遇到的一些问题.
1.不符合ejb规范.报错ejbc....之类的错误,这种情况最好在部署时将weblogic的log级别调整到info

lever,这样可以看到具体是什么地方不符合规范.如果你只通过web看部署的错误,你会弄的一头雾水的.:)


这里要说一点的是,我原来用xdoclet生成的ejb在jboss上部署没问题,在weblogic中部署提示少了一个ejbRemov

e方发,查了一下果然是少了,而jboss部署没有报错,这可能和实现有关系,weblogic是通过ejbc生成stub和proxy

代码,而jboss主要使用的reflect,会提供给ejb一些默认的方法.(个人想法)
2.datasource没找着,在部署entity时,会根据datasource去找数据源的,如果你部署文件写错了,或者你配置

的有问题,都会引起该问题.


3.log4j问题,JBOSS是使用的log4j做为日志,所以原来程序的log配置都和jboss放在一起了,现在移值到weblogi

c上,呵呵,都没了,只是我的info lever的日志可以出来.看来得手工配一配了:)

以上讲的是ejb移植平台最基本的配置,由于本人对weblogic不熟,没有涉及高级一些的配置.其中有些不对的

地方,恳请交流指正!
欢迎来信探讨

mcindo
mcindo@etang.com

1
2003-08-01 12:30

第一次写文章,给点意见吧!

2003-08-01 13:23

好材料
我没有怎么用过WebLogic
不过我正在把一个东西从WebSphere往JBoss上移植,EJB特别是CMP的移植真是faint

2003-08-01 18:22

很不错,现在大多数为了节约资金,是将weblogic向jboss上移,不过这篇文章也可以借鉴。

2003-08-02 09:12

是啊是啊,我们项目就是从weblogic7移植到jboss3.2

感觉jboss也挺不错的

3Go 1 2 3 下一页

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com