`
gstarwd
  • 浏览: 1527041 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

从tomcat 迁移到 WebSphere 经验总结(修改)

    博客分类:
  • SSH
阅读更多

从tomcat 迁移到 WebSphere 经验总结(修改)

我们的项目使用的是 web work+spring + jsf+dwr  ,项目在tomcatweblogic部署 均无问题,
我的具体遇到的困难,大家可以看贴http://www.webspherechina.net/club/viewthread.php?tid=2440&extra=page%3D1
但是最近迁移 到 websphere 6.1.0.3了,出现许多问题,现在拿出来,整理与大分享
    1. 在迁移过程中,出现的第一个导常:“java.lang.IllegalStateException: Cannot initialize context because there is already a root application context present - check whether you have multiple ContextLoader* definitions in your web.xml !”。造成这个异常的原因,是有我web.xml文件 有 两处同代码,都对org.springframework.web.context.ContextLoader上下文进行了加载,于量在spring加 载时,就会报错,对于spring来讲,不允许加载两个上下引用,关于这点,大概可以参考 org.springframework.web.context.ContextLoaderListener源码就知道怎么回是了!
   2.spring配置文件,出错会报“ nested exception is org.xml.sax.SAXParseException: cvc-elt.1:找不到元素“beans”的声明。 ”,解决办法我参考了论坛中《websphere 中 spring 的问题 》一文,现在将原因引入进来,供大家参考:
         spring配置文件  引入DTD这种方式在websphere 6.1 下不成功,必须改成 使用schema这种方式。
DTD:
   <?xml version="1.0" encoding="UTF-8"?>
   <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
   <beans default-autowire="byName">


SCHEMA:
   <?xml version="1.0" encoding="UTF-8"?>
   <beans
        xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd "
       default-autowire="byName">
         default-autowire="byName">
    3.在webm.xml中采用DTD 2.4规范中加载spring的话,必须使用以下方式:
       <servlet>
    <servlet-name>SpringContextServlet</servlet-name>
    <servlet-class>
     org.springframework.web.context.ContextLoaderServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>   
   
    4.在我迁移过程中,还遇到这样一个比较头痛的问题,搞好几天才找到问题:“servlet debugjsp 抛出的 init() 异常:java.lang.ClassCastException: com.ibm.ws.classloader.CompoundClassLoader incompatible with java.net.URLClassLoader
        第一,就是应用程序 jar类加载机制与webshere类加载机制冲突造成,关于这点解决办法,就是更改webshere 服务     器设置或 应用 程序 的设置。一般情况不建议不更改webshere的设置,至于如何修改设置类加载顺序,可以与论贴,很简单的,所以在不此不做详细描述。
        第二种情况比较麻烦,就是工程中存在jar冲突,造成上面的异常,解决的办法就是将简化web.xml,逐个加载自己需要的模块,就可以找问题的原 因,我当时解决这个问题,就是这样,一次次改,最终发现在web.xml这段代码在加载jar时,造在上面的异常,以下是代码片断
     <servlet>
    <servlet-name>debugjsp</servlet-name>
    <description>Added by JBuilder to compile JSPs with debug info</description>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
    <init-param>
      <param-name>classdebuginfo</param-name>
      <param-value>true</param-value>
    </init-param>
    <load-on-startup>3</load-on-startup>
  </servlet>  
    在自己工程下 compiler.jar  jasper-runtime.jar 存在两个jar ,至此,根本原因找到,因为在web.xml 配置了那段代码
造成应用程序加载了   compiler.jar  jasper-runtime.jar       两个jar包,删除多余代码和jar包,问题即解决。
     

    5.在webshere6.1中对web.xml有严格的语法检测,,一定要按照dtd规范来写,而tomcate在这点比较松,所以在布署的时候,需要注意一下(webshere6.1 支持DTD 2.3 DTD2.4,webshere5 支持2.3
          按以下元素顺<context-param>、<filter>、<list>、<servlet>、<servlet-mapping>,具体参考DTD规范
    6.大家在打成jar时,建议用ibm jdk1.5,不要sun jdk ,原因是保持兼容性
    7.关于tomcate迁移webshere其他的问题,可以参考这篇文章《程序从tomcat迁移至websphere的修改 》,另外有问题
可以及时发贴,把问题贴出来

 

 

 

分享到:
评论

相关推荐

    将web应用从Tomcat5移植到Websphere6.doc

    ### 将Web应用从Tomcat5移植到Websphere6的知识点详解 #### 一、移植背景及目的 随着业务发展和技术更新换代,企业往往需要将原有的Web应用从一个平台迁移到另一个平台上以适应新的需求和技术环境。本文旨在详细...

    在tomcat下发布websphere详细步骤

    本文档主要介绍了如何在Apache Tomcat服务器下部署和运行IBM WebSphere相关的Web服务,具体步骤如下: 1. 首先,需要获取必要的JAR文件,这里是jaxws-2_0.jar,它包含了Java API for XML Web Services (JAX-WS)的...

    将web应用从Tomcat5移植到Websphere6.pdf

    ### 将Web应用从Tomcat5移植到Websphere6:关键步骤与注意事项 #### 应用打包与配置 在将Web应用从Tomcat5移植到Websphere6的过程中,应用打包是至关重要的一步。本篇文章将详细阐述如何使用WebSphere 5的应用程序...

    WebspherePortal的Oracle数据库迁移

    总的来说,从DB2到Oracle的数据库迁移是一个复杂的过程,涉及多个层面的调整和验证。这个过程需要对WebSphere Portal、DB2和Oracle数据库都有深入理解。通过仔细的规划、精确的执行和全面的测试,可以确保迁移的顺利...

    Websphere下部署与tomcat程序配置的差异

    本文总结了 Websphere 和 Tomcat 之间的差异,帮助开发者更好地理解和使用这两种服务器。 1. 基础数据类型和对象之间的隐式转换 在 Websphere 中,基础数据类型和对象之间不能被隐式转换。例如,一个 int 类型的...

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

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

    jmx监控weblogic,tomcat,websphere源码

    在本项目中,"ops-container"可能就是一个管理客户端,它连接到WebLogic、Tomcat和WebSphere的MBean Server,并执行监控任务。 4. **Notification**: JMX支持发布/订阅模型,MBeans可以发送通知到感兴趣的客户端,...

    pinpoint安装部署、监控tomcat、weblogic、webSphere手册

    通过以上步骤,我们可以顺利地完成 Pinpoint 的安装部署,并开始监控 Tomcat、Weblogic 和 WebSphere 等 Java 应用服务器。Pinpoint 的强大之处在于其丰富的功能集和较低的性能开销,使得开发者能够在不影响应用性能...

    JBOSS迁移WEBSPHERE简要流程

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

    websphere迁移

    websphere迁移 多种容器。。。。。。。。。。。。。。。。。。。。。。。。。

    tomcat、apache、websphere配置

    总结来说,Apache、Tomcat和WebSphere各有其特点和应用场景。Apache适合静态内容服务,Tomcat专长于Java应用,而WebSphere则为企业级应用提供全面解决方案。了解并熟练配置这些服务器,是IT专业人员必备的技能之一。...

    WebSphere Portal 6.0数据库迁移到Oracle参考手册

    本文档旨在提供从 WebSphere Portal 6.0 的现有数据库迁移到 Oracle 数据库的具体步骤与指导。该迁移过程涉及到数据库的创建、表空间管理、用户权限设定以及必要的配置更改等多个方面。 #### 二、前提条件 为了...

    WebSphere修改主机名方法

    在部署和管理WebSphere的过程中,有时需要更改服务器的主机名,这可能由于网络环境的调整、多域名支持或服务器迁移等原因。本文将详细阐述如何在WebSphere环境中修改主机名。 首先,我们了解修改主机名涉及的主要...

    IBM+WebSphere+Portal+Express+v6.1数据库迁移手册

    本文档详细介绍了IBM WebSphere Portal Express v6.1 从DB2迁移到Oracle 10g数据库的基本步骤,包括创建数据库实例、创建表空间、授予权限和创建用户等。通过遵循这些步骤,可以有效地实现数据库迁移的目标。需要...

    Tomcat和WebSphere中对jndi的引用

    在创建数据源后,在java中使用数据源时tomca和was的引用方法是不同的

    weblogicTomcatWebsphere调优方法

    总结来说,WebLogic、Tomcat和WebSphere的调优是一个持续优化的过程,涉及到多个层次的参数调整,包括服务器配置、JVM设置、应用部署描述符和连接池管理等。每个服务器都有其独特的调优策略,需要根据实际应用需求和...

    WebSphere Application Server v6.1 打包+安装+迁移

    总结,WebSphere Application Server v6.1的打包、安装和迁移是企业级应用管理的重要环节。理解并熟练掌握这些操作,有助于确保应用程序在不同环境间的无缝流转,提高运维效率和稳定性。对于大型企业,这一过程的...

Global site tag (gtag.js) - Google Analytics