原有的web工程是在weblogic8上运行的,但现在的要求是要运行到jboss5中,为如后迁移到更高版本的jboss做准备

由于我对weblogic没有过研究,所以之前的步骤都是有别人进行的,在进行到一半的时候,由于某些情况,又交给我来完成。

此时他遇到的主要有两个问题,下面是主要的log:

2016-03-31 03:36:59,787 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/home].[jsp]] (http-0.0.0.0-56880-1) Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.jsp.jsp.Login_jsp._jspService(Login_jsp.java:2813)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:662)
8:15:30,538 INFO [CachedConnectionManager:info:307] Closing a connection for you. Please close them yourself: org.jboss.resource.adapter.
dbc.jdk6.WrappedConnectionJDK6@df8290
ava.lang.Throwable: STACKTRACE
at org.jboss.resource.connectionmanager.CachedConnectionManager.registerConnection(CachedConnectionManager.java:278)
at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:524)
at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java
941)

这一段log是当使用浏览器访问一个jsp页面时出现的,从log上看,可以将其分为两个部分

1、第一部分在一开始的时候没有看懂,并且log中的定位不够清晰,所以先看第二部分

在这一部分中,主要看Please close them yourself: org.jboss.resource.adapter.dbc.jdk6.WrappedConnectionJDK6@df8290

     其意思是,让我们要关闭某个资源,后面一串代表的是一个connection,在后面的log中(log敏感所以没有添加)果然定位到代码中的获取datasource的地方,经过研究发现,当访问该页面时,会通过JNDI在从容器中先后两次获取数据源,但不知道为什么,第一次获取并使用结束后没有close回收,然后第二次便出现了这个错误。

并且在jboss的控制台中可以看到数据库连接的数量显示异常(设原本定量20条,即可用20、正在使用0,而一旦尝试连接jsp后可用19、正在使用2,比正常情况总数多出一条)。

解决方法是在一个国外的网站上找到的:

Step 1: $JBOSS_HOME/server/segment/deploy/jbossweb.sar/server.xml
Comment or delete the className CachedConnectionValue:
<!--Valve className="org.jboss.web.tomcat.service.jca.CachedConnectionValve"
cachedConnectionManagerObjectName="jboss.jca:service=CachedConnectionManager"
transactionManagerObjectName="jboss:service=TransactionManager" /--> Step 2: $JBOSS_HOME/server/segment/deploy/jbossweb.sar/META-INF/jboss-beans.xml
Comment or delete CachedConnectionManager:
         <!-- <depends>jboss.jca:service=CachedConnectionManager</depends>--> Step 3: $JBOSS_HOME/server/ segment /conf/standardjboss.xml
Comment or delete all CachedConnectionInterceptor statements:
         <!-- <interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>-->

使用该方法后,上述异常消失。

2、现在看第一个异常

这个异常我第一次看到,表示看不懂,然后截了日志去百度。

百度返回了许多的解决方法,但总的来说都是包冲突,说是工程中包含的jsp和servlet的jar和jboss中的jar起了冲突,不知道网上提供这些解决方案的人具体遇到的是什么情况,反正按着这些解决方案去做把我给越带越偏了。

最后请大神看了一下,虽然没有看出具体的问题,但是给了我一个方向,让我去看具体的jsp代码。

但是由于这个工程完成的时间较早,然后代码写的方式比较原始,是jsp中嵌入java片段的,所以研究了一下,最关键的log:

               org.apache.jsp.jsp.Login_jsp._jspService(Login_jsp.java:2813)

一开始没看懂,然后去回顾了一下jsp在jboss中启动时的加载情况。发现在jboss启动的时候jsp会转换成servlet,而在jboss5中转换成的servlet被放在segment的work文件中,一层层点下去便可以发现Login_jsp.java,看servlet当然比看jsp更加轻松,然后便可以很快的定位到2813行,找到为什么出错。

最后神奇的事来了,我发现解决了这个问题,另一个问题就没有了。。。

它的connection阻塞是由它产生的(仅仅是在这次的代码中)。

web工程迁移---weblogic8迁移到jboss5遇到的异常的更多相关文章

  1. web工程迁移---jboss5迁移到jboss6

    这几天在做web工程的迁移,从jboss 5迁移到jboss 6.3. 在做迁移的过程中遇到了一些问题,在这里记录一下. 首先来看一下jboss5和jboss6.3的区别:          上面两幅 ...

  2. 将Web站点由IIS6迁移至IIS7

    最近开始着手逐步将所有的Web站点由Win2003+IIS6迁移至64位Win2008+IIS7,基本还算顺利.这里就把相关内容整理总结一下.首先自然是要安装基本运行环境,包括iis,.net fra ...

  3. 将集群WEB节点静态数据迁移到共享存储器(LNMP环境)

    系统版本:Centos 6.5 机器及IP规划如下: 192.168.0.117  MySQL 192.168.0.118  nginx+php 192.168.0.123  nfs ①在NFS机器上 ...

  4. 词频统计Web工程

    本次将原本控制台工程迁移到了web工程上.. 需求: 1.把程序迁移到web平台,通过用户上传TXT的方式接收文件: 2.在页面上给出链接 (如果有封皮.作者.字数.页数等信息更佳)或表格,展示经典英 ...

  5. Saiku数据库迁移H2迁移到Mysql(二十二)

    Saiku数据库迁移H2迁移到Mysql Saiku默认使用H2数据库来存储saiku的用户与角色信息,我们可以根据角色来做saiku的权限控制,然后将角色分配给用户 ,该用户就会有对应的约束了! 由 ...

  6. 使用Eclipse创建Maven Web工程

    方法/步骤 1 使用Eclipse创建Maven Web工程 2 找到Maven Project,点击Next 3 勾选上Create a simple project (不使用骨架),Next 4 ...

  7. web工程常用路径的获取方法

    此文章是基于 搭建SpringMVC+Spring+Hibernate平台 一. 利用 Spring 取得web工程根路径 1. web.xml 中添加如下: <context-param> ...

  8. 项目自动化建构工具gradle 入门5——在intellij中做一个gradle的web工程

    之前的几个小节,都是纯手工建文件夹,纯手工拷贝war包,或者纯手工解压个zip看看结果,,,,这还是我写了玩的helloWorld.若是玩大工程.几十个人的团队协同开发时,这么玩,,,,暴躁的程序员估 ...

  9. 在Web工程中引入Jquery插件报错解决方案

    在学习Jquery插件的时候,遇到一个问题就是新建web工程后在WebRoot下引入Jquery插件的时候报错,不知道为什么好纠结,但是项目能正常运行,后来找到解决方案,在这里给大家分享一下. 解决方 ...

随机推荐

  1. warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY

    问题: yum安装软件时候报如下错误: warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOK ...

  2. 开启笔记本win7的虚拟热点笔记本变成wifi

    工具/原料 windows 7电脑一台 步骤/方法 1 开启windows 7的隐藏功能:虚拟WiFi和SoftAP(即虚拟无线AP),就可以让电脑变成无线路由器,实现共享上网,节省网费和路由器购买费 ...

  3. java并发控制工具类和集合等

    转载自:https://my.oschina.net/hosee/blog/607677 摘要: 本系列基于炼数成金课程,为了更好的学习,做了系列的记录. 本文主要介绍: 1.各种同步控制工具的使用 ...

  4. css3 box-sizing详解。

    人们慢慢的意识到传统的盒子模型不直接,所以他们新增了一个叫做 box-sizing 的CSS属性. box-sizing: 盒大小,盒模型. 我们经常遇到左右模块宽度为50%,加个边框会掉下去,加一个 ...

  5. 使用MyGeneration创建模板:介绍(翻译)

    原文信息 原文地址 原文作者信息: Justin Greenwood MyGeneration Software http://www.mygenerationsoftware.com April 2 ...

  6. 74(2B)Shortest Path (hdu 5636) (Floyd)

    Shortest Path Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)T ...

  7. GPT分区在IBM服务器上安装linux不能引导的解决方法

    提示: Your boot partition is on a disk using the GPT partitioning Scheme but this machines cannot boot ...

  8. eclipse中ctrl+K失效

    从昨天开始eclipse中Ctrl+d和Ctrl+K就失效了,简直无法忍受 解决方案: Window --> preferences --> General --> keys

  9. 最大流最小割学习 基本知识 | 证明 | FF算法

    可行流 : 能流过去就行,不一定是最大流. 最大流:能流到的最大流量.(可能不只一个) 解决最大流: Ford-Fulkerson方法 最小割:从图中去除一些边,使得源点S到汇点T不连通,去除的这些边 ...

  10. Tarjan缩点求入度为零的点的个数问题

    Description: 一堆人需要联系,但如果x 可以联系 y,你联系了x就不用联系y了,你联系一个人都会有固定的花费,问你最小联系多少人,和最小花费 Solution: Tarjan缩点,求出缩点 ...