jboss to weblogic移值说明(原创)
好不容易把原有的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形如:
|
的得修改一下了,加到每个WEBLOGIC 每个定义entity下。另外java:/OracleDS得修改为OracleDS
示例:
|
移植后的WEBLOGIC weblogic-cmp-rdbms-jar.xml
|
注意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
示例:
|
对于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