JiveJdon Community Forums
在线232人   首页   主题总表   培训咨询   精华   查搜   注册    登陆
首页 » 论坛 » J2EE/JavaEE/JEE/EJB/JSF等技术讨论
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
Go 总共有 11 回复 / 1
 发表新帖子   回复该主题贴
mcindo

悄悄话
发表文章: 19
注册时间: 2003年07月20日 18:56
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
mcindo

悄悄话
发表文章: 19
注册时间: 2003年07月20日 18:56
Re: jboss to weblogic移值说明(原创) 2003年08月01日 12:30 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
第一次写文章,给点意见吧!
AreYouOK?

悄悄话
发表文章: 77
注册时间: 2003年03月31日 18:28
Re: jboss to weblogic移值说明(原创) 2003年08月01日 13:23 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
好材料
我没有怎么用过WebLogic
不过我正在把一个东西从WebSphere往JBoss上移植,EJB特别是CMP的移植真是faint

banq

悄悄话
发表文章: 9312
注册时间: 2002年08月03日 17:08
Re: jboss to weblogic移值说明(原创) 2003年08月01日 18:22 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
很不错,现在大多数为了节约资金,是将weblogic向jboss上移,不过这篇文章也可以借鉴。
bird

悄悄话
发表文章: 18
注册时间: 2003年02月21日 15:55
Re: jboss to weblogic移值说明(原创) 2003年08月02日 09:12 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
是啊是啊,我们项目就是从weblogic7移植到jboss3.2

感觉jboss也挺不错的
mcindo

悄悄话
发表文章: 19
注册时间: 2003年07月20日 18:56
Re: jboss to weblogic移值说明(原创) 2003年08月04日 08:59 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
jboss to weblogic, weblogic to jboss呵呵,移植都差不多的
xsxiaobao

悄悄话
发表文章: 16
注册时间: 2003年03月05日 11:34
Re: jboss to weblogic移值说明(原创) 2003年08月05日 14:17 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题

我有过从weblogic to jboss 的移植的经历,产品用JB开发,所有你只要在JBOSS环境下重新编译EJB,大部分工作JB都给你做好了,但还是有一部分工作需要自己动手配置,

1、如mcindo所言,在weblogic中,EJB连接数据源的Jndi是OracleDS的话,在jboss中要写成java:/OracleDS,datasource前加上java:/.

2、QL语句,以前的代码中大量使用小写select object(p) from logic p,但在JBOSS中,就必须全部改成大写字母的QL。

3、在JB环境中编译带有“LIKE”的QL(不符合J2EE规范),weblogic能转换识别,但JBOSS就不行了,得要自己改EJB配置文件

4、如果你的系统需要用到多个DATASOURCE,在JB编译后不会自动转换,得先动手配置EJB datasource,再编译。

最后 ,就是在转换过程碰到一些莫名其妙的问题,一定要先考虑到软件版本问题,特别是 数据库,一些低版本的 数据库,weblogic能很好的支持,但jboss就不能实现,我曾经就碰到过JBOSS 中执行findall(),结果只能取到前4条记录,后来升级了数据库,就OK了。


mcindo

悄悄话
发表文章: 19
注册时间: 2003年07月20日 18:56
Re: jboss to weblogic移值说明(原创) 2003年08月07日 08:54 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
>2、QL语句,以前的代码中大量使用小写select object(p) from logic p,但在JBOSS中,就必须全部改成大写字母的QL

jboss中对EJB-ql得大小写没有限制

>一些低版本的 数据库,weblogic能很好的支持,但jboss就不能实现
是不是配置数据源时没有选择对应的datasource-mapping?如oracle8, oracle9i,我在oracle8,oracle8i都试过,没有出现问题
forest

悄悄话
发表文章: 3
注册时间: 2003年09月01日 16:52
Re: jboss to weblogic移值说明(原创) 2003年09月01日 17:12 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
有l知道如何resin2.0.1下的servlet移植到JBoss3.x下?在JBoss下,如何\行 /app/resource/index.servlet@呢?假如@是一入界面,是一孟到y的_始界面.感xn教
forest

悄悄话
发表文章: 3
注册时间: 2003年09月01日 16:52
Re: jboss to weblogic移值说明(原创) 2003年09月01日 17:21 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
有l知道如何resin2.0.1下的servlet移植到JBoss3.x下?在JBoss下,如何\行 /app/resource/index.java或index.class @呢?假如@是一入界面,是一孟到y的_始界面.感xn教
charlie

悄悄话
发表文章: 20
注册时间: 2003年09月16日 19:25
Re: jboss to weblogic移值说明(原创) 2003年09月17日 09:46 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
何必呢,用xdoclet 什么服务器的配置文件都能产生,真正能实现一次编译,所有服务器适用
dogun

悄悄话
发表文章: 2
注册时间: 2003年10月10日 22:58
Re: jboss to weblogic移值说明(原创) 2003年10月10日 23:11 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
weblogic to jboss时,cmp中的finder在weblogic中用的where a.sss like ?1,但jboss好像不支持like,只能用=,那这样的话通配符就不管用了啊,有什么好的解决办法没有啊?
这个主题有 11 回复 / 1Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache 缓存 DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Seam Spring Struts
正在读取,请等待...
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
查询本论坛内 回复超过的热门帖子
     回复该主题贴
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com
anti spam