 |
上一主题
[b]weblogic.jms.common.InvalidClientIDException: Client id, BibleJMSClient, is in use
[/b]
Bible..
|
|
下一主题
刚注册,想传个头像,结果。。。。。。。。。唉!!班主看看吧
type Exception report
message
description The server encou..
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
Re: jboss to weblogic移值说明(原创)
|
2003年08月01日 12:30
|
|
|
|
|
|
|
|
|
Re: jboss to weblogic移值说明(原创)
|
2003年08月01日 13:23
|
|
|
好材料 我没有怎么用过WebLogic 不过我正在把一个东西从WebSphere往JBoss上移植,EJB特别是CMP的移植真是faint
|
|
|
|
|
|
Re: jboss to weblogic移值说明(原创)
|
2003年08月01日 18:22
|
|
|
|
很不错,现在大多数为了节约资金,是将weblogic向jboss上移,不过这篇文章也可以借鉴。
|
|
|
|
|
|
Re: jboss to weblogic移值说明(原创)
|
2003年08月02日 09:12
|
|
|
是啊是啊,我们项目就是从weblogic7移植到jboss3.2
感觉jboss也挺不错的
|
|
|
|
|
|
Re: jboss to weblogic移值说明(原创)
|
2003年08月04日 08:59
|
|
|
|
jboss to weblogic, weblogic to jboss呵呵,移植都差不多的
|
|
|
|
|
|
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了。
|
|
|
|
|
|
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都试过,没有出现问题
|
|
|
|
|
|
Re: jboss to weblogic移值说明(原创)
|
2003年09月01日 17:12
|
|
|
|
有l知道如何resin2.0.1下的servlet移植到JBoss3.x下?在JBoss下,如何\行 /app/resource/index.servlet@呢?假如@是一入界面,是一孟到y的_始界面.感xn教
|
|
|
|
|
|
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教
|
|
|
|
|
|
Re: jboss to weblogic移值说明(原创)
|
2003年09月17日 09:46
|
|
|
|
何必呢,用xdoclet 什么服务器的配置文件都能产生,真正能实现一次编译,所有服务器适用
|
|
|
|
|
|
Re: jboss to weblogic移值说明(原创)
|
2003年10月10日 23:11
|
|
|
|
weblogic to jboss时,cmp中的finder在weblogic中用的where a.sss like ?1,但jboss好像不支持like,只能用=,那这样的话通配符就不管用了啊,有什么好的解决办法没有啊?
|
|
|
|
热点TAG:
AOP
cache
缓存
DDD
EJB
集群
设计模式
Hibernate
IOC
JiveJdon
OO
RBAC
Seam
Spring
Struts
anti spam
|