zoukankan      html  css  js  c++  java
  • web工程迁移---weblogic8迁移到jboss5遇到的异常

    原有的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阻塞是由它产生的(仅仅是在这次的代码中)。

  • 相关阅读:
    fopen flock fclose 文件用法
    thinkphp并发 阻塞模式与非阻塞模式
    thinkphp3.2 控制器导入模型
    thinkphp3.2 session时间周期无效
    UWP滑动后退
    旺信UWP公测邀请
    旺信UWP倒计时
    UWP应用开发系列视频教程简介
    新浪微博UWP UI意见征求
    淘宝UWP--自定义图片缓存
  • 原文地址:https://www.cnblogs.com/welv/p/5343123.html
Copyright © 2011-2022 走看看