`
三角杀手王
  • 浏览: 10181 次
社区版块
存档分类
最新评论

花了2天时间,把系统从jboss迁移到weblogic

阅读更多
项目以前一直运行在tomcat和jboss上,现在要求运行在weblogic10.3上,这次迁移遇到了很多问题,特分享下遇到的问题和解决的办法

项目框架: struts-2.1.6,spring 2.5.6 ,ibatis-2.3.4,作为war包发布

1 启动weblogic报错:解析strtus.xml文件失败
   单步跟踪发现在strtus.xml中有
   <include file="struts-config/*/struts-*.xml" />
   利用通配符匹配配置文件,但是在weblogic下不能解析,只有老老实实的把struts的配置文件一个个引入

2 正常启动,但是运行时报错: DateUtils.addDate方法找不到。
  这个文件就是weblogic优先加载自己bea\modules\com.bea.core.apache.commons.lang_2.1.0.jar,而不是我们web-inf\lib下的commons.lang_2.3.jar
  按照要求在web-inf下增加weblogic.xml
  <weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90">
     <container-descriptor> 
         <prefer-web-inf-classes>true</prefer-web-inf-classes> 
     </container-descriptor> 
  </weblogic-web-app>

3 启动又报错:
  java.lang.ClassCastException: weblogic.xml.jaxp.RegistryDocumentBuilderFactory at javax.xml.parsers.DocumentBuilderFactory.newInstan ce()
Ljavax.xml.parsers.DocumentBuilderFactory;(Unk nown Source) at org.springframework.beans.factory.xml.XmlBeanDefin itionReader.createDocumentBuilderFactory
(XmlBeanDe finitionReader.java:250) at org.springframework.beans.factory.xml.XmlBeanDefin itionReader.doLoadBeanDefinitions
 
  如果prefer-web-inf-classes = false则能正常启动
  这个问题在于web-inf\lib下的jar有冲突,不同jar中存在相同全限定名的class类名。
  又花了不少时间才找到它 : xml-apis.jar,去掉后系统能正常启动了

4 测试发现还有些错误
 
   我们自己的资源文件找不到,资源文件在web-inf\conf\ 下 程序中加载的路径是 ../conf,   weblogic不认 ../  后来调整了文件路径,放web-inf/classes/conf下,加载路径用 conf/即可

   还有个问题就是我们用到了ecside来展现大数据的表格,这个比extjs的gridPanel性能要好
   但是在jsp中有ecside的标签马上报错。
   这个问题检查发现是少了standard.jar,jstl.jar,为啥在tomcat,jboss就没有报错呢。。


顺便提下weblogic的数据库连接池的配置 jndiname = JNDI_xxx
在spring的applicationContext.xml配置的dateSources如下
<bean id="dsJndiTemplate" class="org.springframework.jndi.JndiTemplate">
  <property name="environment">
  <props>
    <prop key="java.naming.provider.url">t3://192.156.1.42:8000</prop>
    <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
  </props>
  </property>
</bean>
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
   <property name="jndiName">
<value>JNDI_xxx</value>
</property>
<property name="resourceRef">
    <value>true</value>
</property>
<property name="jndiTemplate">
  <ref local="dsJndiTemplate" />
  </property>
</bean>


结论:折腾了2天时间解决了了一些问题,但是由于时间问题。很多只是简单的用了解决了下,没有深入了解下去,这里我权当抛个砖,希望各位大侠来分享自己的经验
分享到:
评论
12 楼 tongliaozhang 2010-06-23  
http://weblogicfans.net/viewthread.php?tid=1618
这个帖子的问题和我的很相似 请教了!
11 楼 tongliaozhang 2010-06-23  
finallygo 写道
tongliaozhang 写道
还有人 关注这个问题么
Tomcat 6.0的项目 用hibernate3 struts2 spring2.5 迁移到Weblogic 10.3.3时候 出现了错误 HQL语句执行有问题

Caused by: org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken [select t.datatypeId,t.datatypeName from com.umessage.ticket.domain.BdDatatypeDt t order by t.datatypeId ]
是jar包冲突么?

这个也是包冲突的原因
(1)是在hibernate.properties文件中增加属性:hibernate.query.factory_class,属性的值是 org.hibernate.hql.classic.ClassicQueryTranslatorFactory,这样就可以解决问题了。
   (2).将antlr-2.7.5H3.jar到Weblogic的pre_Classpath :用WinRar或Winzip打开C:\bea\weblogic81\server\lib\weblogic.jar 删除里面的antlr目录, 然后再antlr-2.7.5H3.jar放在weblogic.jar的同一目录
(3)
(3.1)拷贝Hibernate3里带的包antlr-2.7.5H3.jar到%WL_HOME%\server\lib下
(3.2)修改% mydomain% \ startWebLogic.cmd :
在set CLASSPATH之前加上下面一句:
set PRE_CLASSPATH=%WL_HOME%\server\lib\antlr-2.7.5H3.jar;
在set CLASSPATH之后加上下面一句:
set CLASSPATH=%PRE_CLASSPATH%;%CLASSPATH%
推荐使用第一种或第三种方法来解决。

我用了一种方法 添加一个weblogic.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "wls810_weblogic810-web-jar.dtd" >
<weblogic-web-app>
<container-descriptor>
    <prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
</weblogic-web-app>

解决了上边的问题但是 出现Struts2 的错误
<Could not load user defined filter in web.xml: org.apache.struts2.dispatcher.FilterDispatcher.
这个核心Filter不能加载
烦闷啊
10 楼 finallygo 2010-06-23  
tongliaozhang 写道
还有人 关注这个问题么
Tomcat 6.0的项目 用hibernate3 struts2 spring2.5 迁移到Weblogic 10.3.3时候 出现了错误 HQL语句执行有问题

Caused by: org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken [select t.datatypeId,t.datatypeName from com.umessage.ticket.domain.BdDatatypeDt t order by t.datatypeId ]
是jar包冲突么?

这个也是包冲突的原因
(1)是在hibernate.properties文件中增加属性:hibernate.query.factory_class,属性的值是 org.hibernate.hql.classic.ClassicQueryTranslatorFactory,这样就可以解决问题了。
   (2).将antlr-2.7.5H3.jar到Weblogic的pre_Classpath :用WinRar或Winzip打开C:\bea\weblogic81\server\lib\weblogic.jar 删除里面的antlr目录, 然后再antlr-2.7.5H3.jar放在weblogic.jar的同一目录
(3)
(3.1)拷贝Hibernate3里带的包antlr-2.7.5H3.jar到%WL_HOME%\server\lib下
(3.2)修改% mydomain% \ startWebLogic.cmd :
在set CLASSPATH之前加上下面一句:
set PRE_CLASSPATH=%WL_HOME%\server\lib\antlr-2.7.5H3.jar;
在set CLASSPATH之后加上下面一句:
set CLASSPATH=%PRE_CLASSPATH%;%CLASSPATH%
推荐使用第一种或第三种方法来解决。
9 楼 tongliaozhang 2010-06-22  
还有人 关注这个问题么
Tomcat 6.0的项目 用hibernate3 struts2 spring2.5 迁移到Weblogic 10.3.3时候 出现了错误 HQL语句执行有问题

Caused by: org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken [select t.datatypeId,t.datatypeName from com.umessage.ticket.domain.BdDatatypeDt t order by t.datatypeId ]
是jar包冲突么?
8 楼 三角杀手王 2009-11-16  
weblogic是客户自己采购的,大约17万吧,本来是建议用jboss的,
weblogic的负载均衡策略是每个session都是访问同一个节点,这样可以避免不同节点间的session复制。
但是当访问的节点down后访问其他节点会有session丢失的问题
7 楼 egmacross 2009-11-16  
cue2008 写道
weblogic是收费的吧! Jboss应该已经够满足需求,你们公司真有钱


有的时候不是自己公司要用,是客户指出要用websphere或者weblogic的,谁不知道直接用jboss和tomcat好啊。
6 楼 cjmcn-sh 2009-11-15  
WebLogic优先加载自己的包,这一点很是郁闷。
上次遇到个棘手的问题。Xerces的包和项目中的包版本不同,函数不一致。
最后下了源码,整合了几个版本,替换了Weblogic里的包才好。
我用8.1。。
5 楼 cue2008 2009-11-15  
weblogic是收费的吧! Jboss应该已经够满足需求,你们公司真有钱
4 楼 whaosoft 2009-11-14  
这种迁移就是容易出现一些问题,学习啦
3 楼 三角杀手王 2009-11-14  
以前jboss下jdk是1.5,安装weblogic10后直接使用自带的jdk1.6_5因为老的jdk1.5_17无法启动了,
这次jdk的切换没有遇到什么问题
2 楼 曾经de迷茫 2009-11-14  
迁移的时候JDK版本没变化吧,包括运行平台?
1 楼 frenchmay 2009-11-12  
黎叔还是那么谦虚

相关推荐

    JBoss转换到Weblogic

    【JBoss转换到Weblogic】知识...总之,从JBoss迁移至WebLogic涉及到多个层面的工作,包括部署描述符的转换、环境配置、应用适配以及后续的测试和维护。这个过程需要深入理解两个平台的特性和差异,才能确保迁移的成功。

    把WebLogic EJB程序迁移到JBoss上

    WebLogic服务器是一款顶级的商业应用程序服务器。但是对于小规模的开发者来...为了演示如何把应用程序迁移到JBoss的过程,我们将把一个在WebLogic中开发的带有Oracle数据库的EJB应用程序迁移到带有MySQL数据库的JBoss应

    weblogic到jboss转换的示例代码

    这里提到的"weblogic到jboss转换的示例代码"就是一个这样的例子,它提供了一个自动化工具,帮助用户将WebLogic服务器的配置文件转换为JBoss服务器兼容的格式,极大地简化了迁移过程,避免了手动修改带来的工作量和...

    java项目tomcat迁移到jboss

    Java 项目从 Tomcat 迁移到 JBoss 的解决方案 在 Java 项目中,迁移到 JBoss 可能会出现各种问题,例如版本兼容问题、设置问题等。本文将介绍如何解决这些问题,包括如何配置 JBoss,使得 Spring 项目能够正常运行...

    Jboss&Weblogic.zip

    【Jboss&Weblogic.zip】这个压缩包文件主要聚焦于两个知名的Java应用服务器:JBoss和WebLogic,以及与它们相关的渗透测试和安全工具。在IT行业中,应用服务器是用于托管企业级Java应用程序的平台,而渗透测试是评估...

    JBOSS迁移WEBSPHERE简要流程

    【JBOSS迁移到WEBSPHERE的简要流程】 迁移JBOSS应用程序到IBM的WEBSPHERE平台是一项涉及多个步骤的技术任务,主要目的是确保应用程序在新的应用服务器环境中能够正常运行。以下是一个简化的迁移过程: 1. **安装...

    WebLogic、WebSphere、JBOSS、Tomcat之间的区别

    在中间件领域中,WebLogic、WebSphere、JBOSS、Tomcat 等四大应用服务器之间存在着很大的区别,今天我们将从多个角度来比较它们之间的差异。 1. 产品介绍 WebLogic 是美国 BEA 公司出品的一个基于 J2EE 架构的...

    Java反序列化终极检测工具_Jboss & Weblogic & Websphere.zip

    Java反序列化是一个重要的编程概念,特别是在企业级应用开发中,如JBoss、WebLogic和WebSphere这样的服务器环境中。这个压缩包文件“Java反序列化终极检测工具_Jboss & Weblogic & Websphere.zip”似乎包含了一些...

    Tomcat-JBoss-Weblogic-Jetty的区别和介绍

    Tomcat应用也算非常广泛的web 服务器,支持部分j2ee,免费...JBoss和WebLogic都含有Jsp和Servlet容器,也就可以做web容器, JBoss和WebLogic也包含EJB容器,是完整的J2EE应用服务器 tomcat 只能做jsp和servlet的container

    tomcat、weblogic、jboss的区别

    "tomcat、weblogic、jboss的区别" Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,它是 Apache 软件基金会(Apache Software Foundation)的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些...

    tomcat_Jboss_weblogic区别、容器的作用

    "Tomcat、Jboss、Weblogic区别、容器的作用" Tomcat是一种免费的开放源代码的Web应用服务器,它是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及...

    Jboss&Weblogic.rar

    Java反序列化漏洞是软件开发中的一个安全问题,尤其在使用特定的应用服务器如Jboss和Weblogic时,可能会成为攻击者利用的目标。本资源“Jboss&Weblogic.rar”提供了一个针对这类漏洞的终极检测工具,帮助开发者和...

    用JBOSS CACHE 做CAS集群在weblogic上部署的问题

    标题中的“用JBOSS CACHE做CAS集群在weblogic上部署的问题”涉及到的是一个特定的分布式缓存解决方案在不同应用服务器环境下的集成问题。CAS(Central Authentication Service)是一种开源的身份验证服务,它允许...

    解密JBoss和Weblogic数据源连接字符串和控制台密码 _ WooYun知识库1

    随着互联网技术的发展与应用的多样化,Java作为企业级开发的重要语言之一,其相关的应用框架如JBoss和WebLogic越来越受到广泛的应用。这类应用服务器不仅支持Java应用程序的运行,还提供了丰富的管理功能和服务。...

    经典JAVA EE企业应用实战 基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发.part2

    经典JAVA EE企业应用实战 基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发.part2

    java反序列化漏洞利用工具Jboss&WebLogic;.rar

    WebLogic反弹需要等5秒左右 2. 该工具为对外测试版,请尽量按照正常思路来用,比如Url填写清楚,IP地址写对了,报错或者抛异常神马的别怪我,调输入校验好蛋疼。 本工具与网上已公布工具优点: 1. 综合实现网上公布...

    Java反序列化漏洞利用工具(WebLogic&Jboss;)

    WebLogic反弹需要等5秒左右 2. 该工具为对外测试版,请尽量按照正常思路来用,比如Url填写清楚,IP地址写对了,报错或者抛异常神马的别怪我,调输入校验好蛋疼。 本工具与网上已公布工具优点: 1. 综合实现网上公布...

    经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码.part1

    经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码.part1 其他部分详见我的上传列表,全部分卷下载完成才能解压。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun...

Global site tag (gtag.js) - Google Analytics