0

Actually I am migrating my application from Tomcat 5 to Tomcat 7.0.37. It is giving me an java.lang.abstractmethoderror exception when I am starting the server. I am using ANT to build my application. I have read many posts and tried many solutions also but non is working for me. The stack trace is:

org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [jsp] in context with path [] threw exception 
[java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext;] with root cause
java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext;
    at org.apache.jsp.index_jsp._jspInit(index_jsp.java:22)
    at org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:49)
    at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:171)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:354)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:380)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:288)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:724) 

Here is the build.xml file used by ant

<project name="XYZ" default="all" basedir="..">
    <property name="build" value="build" />
    <property name="parm" value="parm" />
    <property name="src" value="src" />
    <property name="lib" value="lib" />
    <property name="classes" value="classes" />
    <property name="jars" value="jars" />
    <property name="war" value="war" />

    <target name="init">
        <!-- Create the time stamp -->
        <tstamp />  

        <condition property="isIncrementalBuild">
            <and>
                <istrue value="${build.incremental}" />
            </and>
        </condition>
    </target>

    <target name="compile" depends="init" description="Compile component sources">      
        <!--delete dir="WEB-INF/classes/com" quiet="yes" /-->       
        <javac srcdir="src" verbose="true" debug="true" deprecation="true" destdir="WEB-INF/classes">
            <classpath refid="project.classpath" />
        </javac>

    </target>   

    <target name="build" depends="compile" description="Build outofmem">        
        <delete file="war/${webarchive.name}" quiet="no" />
        <war destfile="war/${webarchive.name}" webxml="WEB-INF/web.xml" manifest="mf/META-INF/MANIFEST.MF" >
            <classes dir="WEB-INF/classes" />
            <fileset dir="jsp"/>
            <webinf  dir="./WEB-INF"    includes="**/*" excludes="web.xml, **/*.jar, **/*.class"/>
            <lib file="WEB-INF/lib/*.jar" />
        </war>
    </target>


</project>
Serge Ballesta
  • 143,923
  • 11
  • 122
  • 252
Jarvis
  • 503
  • 2
  • 5
  • 17

1 Answers1

1

After a lot of R&D on this and working for almost four days, I was able to remove the error from the IDE. The problem was with classpath(buildpath) only. Everywhere there is written that conflicting jars or mismatching jars & just two jars given that could lead to that. But actually there are jars related to servlet-api, servlet, jsp-api and jasper that are creating a problem. After removing them from the buildpath and WEB-INF folder. Don't get afraid if you are getting compilation errors in the project because that will be taken care by the server runtime of Apache that you will add in the buildpath in order to remove the compilation errors. Now I was able to deploy my application and hit the server.

Thanks

Jarvis
  • 503
  • 2
  • 5
  • 17