You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Vidyadhar <te...@gmail.com> on 2017/05/12 04:58:51 UTC

JSP compilation 65535 bytes limit

Hello Team,

Recently we did a upgrade existing tomcat from 7.0.42 to 7.0.76 on windows
box. Post the up gradation we are seeing following error in couple of JSPs

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: [231] in the generated java file: [C:\Program
Files\Apache\Tomcat\work\Catalina\localhost\app\org\apache\jsp\jsp\applicationChange\applicationChangeMain_jsp.java]
The code of method _jspService(HttpServletRequest, HttpServletResponse) is
exceeding the 65535 bytes limit

Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:366)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:490)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:379)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:341)
I have checked the various threads on tomcat support archive and did try
following solution which did not work on 7.0.76 as well as on 7.0.77.

1. Following changes in conf/web.xml
<init-param>
    <param-name>mappedfile</param-name>
    <param-value>false</param-value>
</init-param>
<init-param>
    <param-name>compiler</param-name>
    <param-value>modern</param-value>
</init-param>
2. Increased the buffer size.

Can some one suggest some ways to resolve this error, without downgrading
to 7.0.42




-- 
Regards,
Vidyadhar

Re: JSP compilation 65535 bytes limit

Posted by Vidyadhar <te...@gmail.com>.
On Wed, May 17, 2017 at 7:36 PM, Mohammed Manna <ma...@gmail.com> wrote:

> You cannot blindly execute the snippet by copying it from Tomcat website.
> You have to adapt it to your project first. Try and remove the <import
> file> line and try to build it. You probably need to set up your project
> for Ant build first if not done already.
>
Project is already setup and same set of build file is working fine with
different version of Tomcat. If we remove the import task for this
particular project we are seeing some different error which is regarding to
ANT and not related with Tomcat or JSP compilation.
Snippet of catalina-tasks.xml is as follows ( and this is the only file
included in import):

<project name="catalina-tasks">
  <description>Catalina Ant Manager, JMX and JSPC Tasks</description>
  <!-- set catalina.home if it's not already set -->
  <dirname property="catalina.home.bin.dir"
file="${ant.file.catalina-tasks}"/>
  <property name="catalina.home" value="${catalina.home.bin.dir}/.."/>
  <typedef resource="org/apache/catalina/ant/catalina.tasks">
    <classpath>
      <fileset file="${catalina.home}/bin/tomcat-juli.jar"/>
      <fileset dir="${catalina.home}/lib" includes="*.jar"/>
    </classpath>
  </typedef>
  <typedef resource="org/apache/catalina/ant/jmx/jmxaccessor.tasks">
    <classpath>
      <fileset file="${catalina.home}/lib/catalina-ant.jar"/>
    </classpath>
  </typedef>
</project>


> On 17 May 2017 at 15:03, Vidyadhar <te...@gmail.com> wrote:
>
> > On Wed, May 17, 2017 at 7:30 PM, Mohammed Manna <ma...@gmail.com>
> > wrote:
> >
> > > Your ant Build File seems to be incorrect. Could you provide the
> snippet
> > of
> > > the Jspc Task and Javac task for this?
> > >
> > Following is the tomcat.xml which I am using for precompilation:
> > <project name="Webapp Precompilation" default="all" basedir=".">
> >
> >    <import file="${tomcat.home}/bin/catalina-tasks.xml"/>
> >
> >    <target name="jspc">
> >
> >     <jasper
> >              validateXml="false"
> >              uriroot="${webapp.path}"
> >              webXmlFragment="${webapp.path}/WEB-INF/generated_web.xml"
> >              outputDir="${webapp.path}/WEB-INF/src" />
> >
> >   </target>
> >
> >   <target name="compile">
> >
> >     <mkdir dir="${webapp.path}/WEB-INF/classes"/>
> >     <mkdir dir="${webapp.path}/WEB-INF/lib"/>
> >
> >     <javac destdir="${webapp.path}/WEB-INF/classes"
> >            optimize="off"
> >            debug="on" failonerror="false"
> >            srcdir="${webapp.path}/WEB-INF/src"
> >            excludes="**/*.smap">
> >       <classpath>
> >         <pathelement location="${webapp.path}/WEB-INF/classes"/>
> >         <fileset dir="${webapp.path}/WEB-INF/lib">
> >           <include name="*.jar"/>
> >         </fileset>
> >         <pathelement location="${tomcat.home}/lib"/>
> >         <fileset dir="${tomcat.home}/lib">
> >           <include name="*.jar"/>
> >         </fileset>
> >         <fileset dir="${tomcat.home}/bin">
> >           <include name="*.jar"/>
> >         </fileset>
> >       </classpath>
> >       <include name="**" />
> >       <exclude name="tags/**" />
> >     </javac>
> >
> >   </target>
> >
> >   <target name="all" depends="jspc,compile">
> >   </target>
> >
> >   <target name="cleanup">
> >     <delete>
> >         <fileset dir="${webapp.path}/WEB-INF/src"/>
> >         <fileset dir="${webapp.path}/WEB-INF/classes/org/apache/jsp"/>
> >     </delete>
> >   </target>
> >
> > </project>
> >
> > >
> > > On 17 May 2017 at 14:58, Vidyadhar <te...@gmail.com> wrote:
> > >
> > > > Hello KR,
> > > >
> > > > On Tue, May 16, 2017 at 8:43 PM, Mohammed Manna <ma...@gmail.com>
> > > > wrote:
> > > >
> > > > > Hi Vidyadhar,
> > > > >
> > > > > Some points to note here:
> > > > >
> > > > > 1) Setting those parameters in Web.xml file (CATALINA_HOME/conf)
> > > doesn't
> > > > > guarantee that it won't happen. Tomcat 8.0.43 onwards have got this
> > > > relaxed
> > > > > out by using a more efficient error handling code. But you will
> have
> > > this
> > > > > error if the code is truly hitting near the limit.
> > > > > 2) The issue occurs with Tomcat 8.0.39 onwards. Try to see if the
> > issue
> > > > > happens for tomcat 8.0.29. I can vouch for 8.0.29 where it didn't
> > > happen.
> > > > > 3) Did you try and follow my suggestion on point 3 (last email)
> about
> > > > > checking the method sizes of the precompiled JSPs using apache
> > commons
> > > > BCEL
> > > > > (bcel-5.4.1.jar) library? If yes, what did you find?
> > > > >
> > > >
> > > > I already tried to precompile the JSPs using ANT but it is giving
> > > following
> > > > error:
> > > > C:\apache-ant-1.9.4\tomcat.xml:11: org.apache.jasper.
> JasperException:
> > > > java.lang.IllegalArgumentException: Page directive: invalid value
> for
> > > > import
> > > >         at org.apache.jasper.JspC.processFile(JspC.java:1296)
> > > >         at org.apache.jasper.JspC.execute(JspC.java:1415)
> > > >         at
> > > > org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
> > > >         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
> > > > I guess I am hitting the bug # 57099 and there are multiple JSPs
> > wherein
> > > we
> > > > need to do these changes.
> > > >
> > > > >
> > > > >
> > > > > You also haven't mentioned what sort of JSPs you have that yields
> > into
> > > > such
> > > > > error. Are you having legacy scriptlets which are quite heavy and
> > uses
> > > > lots
> > > > > of custom tags? Try to use the following too:
> > > > >
> > > > > <init-param>
> > > > > <param-name>trimSpaces</param-name>
> > > > > <param-value>true</param-value>
> > > > > </init-param>
> > > > >
> > > > > The above is having some inconsistency reported in a different
> email
> > > > > thread, but I assume it should be fine in most of the cases. Try to
> > see
> > > > if
> > > > > you can provide some results on the above points.
> > > > >
> > > > >
> > > > > KR,
> > > > >
> > > > > On 16 May 2017 at 15:29, Vidyadhar <te...@gmail.com>
> wrote:
> > > > >
> > > > > > Hello KR,
> > > > > >
> > > > > > On Fri, May 12, 2017 at 12:37 PM, Mohammed Manna <
> > manmedia@gmail.com
> > > >
> > > > > > wrote:
> > > > > >
> > > > > > > I have two things which you might want to try out:
> > > > > > >
> > > > > > > 1) You will lose your JSP debugging capability - but if that's
> > not
> > > > your
> > > > > > > concern, then in your CATALINA_HOME\conf folder append this for
> > > > > > > "JspServlet"
> > > > > > >
> > > > > > >         <init-param>
> > > > > > >             <param-name>mappedfile</param-name>
> > > > > > >             <param-value>false</param-value>
> > > > > > >         </init-param>
> > > > > > >         <init-param>
> > > > > > >             <param-name>suppressSmap</param-name>
> > > > > > >             <param-value>true</param-value>
> > > > > > >         </init-param>
> > > > > > >
> > > > > > We already tried this option. We included these lines in tomcat's
> > > > web.xml
> > > > > > file and restarted the services, but still it is giving the same
> > > error.
> > > > > >
> > > > > > >
> > > > > > >      This will stop generating JSR45 debug info and Symbol Maps
> > for
> > > > JSP
> > > > > > > pages ( I think I have said technical things right here,
> > otherwise
> > > > > please
> > > > > > > correct me!).
> > > > > > >
> > > > > > > 2) I sincerely recommend moving scriptlet code out of your JSP
> > and
> > > > > remove
> > > > > > > all unwanted/commented code, newline/carriages from your JSP.
> > Even
> > > > with
> > > > > > the
> > > > > > > config above, this might fail since the code is genuinely too
> > large
> > > > for
> > > > > > > __jspService().
> > > > > > >
> > > > > > > 3) If possible, try to use Ant and precompile your JSP and
> > iterate
> > > > > > through
> > > > > > > the .class files to check which method size is larger or close
> to
> > > 90%
> > > > > or
> > > > > > > the 64k footprint. You can write a short program by leveraging
> > > > java.io
> > > > > > and
> > > > > > > Apache commons BCEL library. Ant has a strange behaviour which
> > > > doesn't
> > > > > > > throw any exceptions if the Jsp method size exceeds the limit.
> > But
> > > > the
> > > > > > > compilation occurs anyway. So you can go through those compiled
> > > files
> > > > > > using
> > > > > > > your custom tool and print the size of the methods.
> > > > > > >
> > > > > > >
> > > > > > > I hope this helps you.
> > > > > > >
> > > > > > > Further to above we tried various tomcat version and as per our
> > > > > > observation we are not seeing this error on 8.0.29 version. Note
> > that
> > > > the
> > > > > > same error is still there in latest version i.e. 8.5.15.
> > > > > >
> > > > > > > KR,
> > > > > > >
> > > > > > > On 12 May 2017 at 07:58, Vidyadhar <te...@gmail.com>
> > > wrote:
> > > > > > >
> > > > > > > > Hello Sagar,
> > > > > > > >
> > > > > > > > On Fri, 12 May 2017 at 12:26 PM, sagar kohli <
> > > > sagarkohli01@gmail.com
> > > > > >
> > > > > > > > wrote:
> > > > > > > >
> > > > > > > > > Try adding following init parameter in
> > > <tomcat_home>/conf/web.xml
> > > > > > > > >
> > > > > > > > > <init-param>
> > > > > > > > >      <param-name>mappedfile</param-name>
> > > > > > > > >      <param-value>false</param-value>
> > > > > > > > > </init-param>
> > > > > > > >
> > > > > > > >
> > > > > > > > We already tried it but no success.
> > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > On Fri, May 12, 2017 at 10:28 AM, Vidyadhar <
> > > > > > techienote.com@gmail.com>
> > > > > > > > > wrote:
> > > > > > > > >
> > > > > > > > > > Hello Team,
> > > > > > > > > >
> > > > > > > > > > Recently we did a upgrade existing tomcat from 7.0.42 to
> > > 7.0.76
> > > > > on
> > > > > > > > > windows
> > > > > > > > > > box. Post the up gradation we are seeing following error
> in
> > > > > couple
> > > > > > of
> > > > > > > > > JSPs
> > > > > > > > > >
> > > > > > > > > > org.apache.jasper.JasperException: Unable to compile
> class
> > > for
> > > > > > JSP:
> > > > > > > > > >
> > > > > > > > > > An error occurred at line: [231] in the generated java
> > file:
> > > > > > > > [C:\Program
> > > > > > > > > > Files\Apache\Tomcat\work\Catalina\localhost\app\org\
> > > > > > apache\jsp\jsp\
> > > > > > > > > > applicationChange\applicationChangeMain_jsp.java]
> > > > > > > > > > The code of method _jspService(HttpServletRequest,
> > > > > > > > HttpServletResponse)
> > > > > > > > > is
> > > > > > > > > > exceeding the 65535 bytes limit
> > > > > > > > > >
> > > > > > > > > > Stacktrace:
> > > > > > > > > > org.apache.jasper.compiler.DefaultErrorHandler.
> javacError(
> > > > > > > > > > DefaultErrorHandler.java:103)
> > > > > > > > > > org.apache.jasper.compiler.ErrorDispatcher.javacError(
> > > > > > > > > > ErrorDispatcher.java:366)
> > > > > > > > > >
> > > > > > > > > org.apache.jasper.compiler.JDTCompiler.generateClass(
> > > > > > > > JDTCompiler.java:490)
> > > > > > > > > > org.apache.jasper.compiler.Compiler.compile(Compiler.
> > > java:379)
> > > > > > > > > > org.apache.jasper.compiler.Compiler.compile(Compiler.
> > > java:354)
> > > > > > > > > > org.apache.jasper.compiler.Compiler.compile(Compiler.
> > > java:341)
> > > > > > > > > > I have checked the various threads on tomcat support
> > archive
> > > > and
> > > > > > did
> > > > > > > > try
> > > > > > > > > > following solution which did not work on 7.0.76 as well
> as
> > on
> > > > > > 7.0.77.
> > > > > > > > > >
> > > > > > > > > > 1. Following changes in conf/web.xml
> > > > > > > > > > <init-param>
> > > > > > > > > >     <param-name>mappedfile</param-name>
> > > > > > > > > >     <param-value>false</param-value>
> > > > > > > > > > </init-param>
> > > > > > > > > > <init-param>
> > > > > > > > > >     <param-name>compiler</param-name>
> > > > > > > > > >     <param-value>modern</param-value>
> > > > > > > > > > </init-param>
> > > > > > > > > > 2. Increased the buffer size.
> > > > > > > > > >
> > > > > > > > > > Can some one suggest some ways to resolve this error,
> > without
> > > > > > > > downgrading
> > > > > > > > > > to 7.0.42
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > --
> > > > > > > > > > Regards,
> > > > > > > > > > Vidyadhar
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > --
> > > > > > > > > Regards,
> > > > > > > > > sagar kohli
> > > > > > > > >
> > > > > > > > --
> > > > > > > > Regards,
> > > > > > > > Vidyadhar
> > > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Regards,
> > > > > > Vidyadhar
> > > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Regards,
> > > > Vidyadhar
> > > >
> > >
> >
> >
> >
> > --
> > Regards,
> > Vidyadhar
> >
>



-- 
Regards,
Vidyadhar

Re: JSP compilation 65535 bytes limit

Posted by Mohammed Manna <ma...@gmail.com>.
You cannot blindly execute the snippet by copying it from Tomcat website.
You have to adapt it to your project first. Try and remove the <import
file> line and try to build it. You probably need to set up your project
for Ant build first if not done already.

On 17 May 2017 at 15:03, Vidyadhar <te...@gmail.com> wrote:

> On Wed, May 17, 2017 at 7:30 PM, Mohammed Manna <ma...@gmail.com>
> wrote:
>
> > Your ant Build File seems to be incorrect. Could you provide the snippet
> of
> > the Jspc Task and Javac task for this?
> >
> Following is the tomcat.xml which I am using for precompilation:
> <project name="Webapp Precompilation" default="all" basedir=".">
>
>    <import file="${tomcat.home}/bin/catalina-tasks.xml"/>
>
>    <target name="jspc">
>
>     <jasper
>              validateXml="false"
>              uriroot="${webapp.path}"
>              webXmlFragment="${webapp.path}/WEB-INF/generated_web.xml"
>              outputDir="${webapp.path}/WEB-INF/src" />
>
>   </target>
>
>   <target name="compile">
>
>     <mkdir dir="${webapp.path}/WEB-INF/classes"/>
>     <mkdir dir="${webapp.path}/WEB-INF/lib"/>
>
>     <javac destdir="${webapp.path}/WEB-INF/classes"
>            optimize="off"
>            debug="on" failonerror="false"
>            srcdir="${webapp.path}/WEB-INF/src"
>            excludes="**/*.smap">
>       <classpath>
>         <pathelement location="${webapp.path}/WEB-INF/classes"/>
>         <fileset dir="${webapp.path}/WEB-INF/lib">
>           <include name="*.jar"/>
>         </fileset>
>         <pathelement location="${tomcat.home}/lib"/>
>         <fileset dir="${tomcat.home}/lib">
>           <include name="*.jar"/>
>         </fileset>
>         <fileset dir="${tomcat.home}/bin">
>           <include name="*.jar"/>
>         </fileset>
>       </classpath>
>       <include name="**" />
>       <exclude name="tags/**" />
>     </javac>
>
>   </target>
>
>   <target name="all" depends="jspc,compile">
>   </target>
>
>   <target name="cleanup">
>     <delete>
>         <fileset dir="${webapp.path}/WEB-INF/src"/>
>         <fileset dir="${webapp.path}/WEB-INF/classes/org/apache/jsp"/>
>     </delete>
>   </target>
>
> </project>
>
> >
> > On 17 May 2017 at 14:58, Vidyadhar <te...@gmail.com> wrote:
> >
> > > Hello KR,
> > >
> > > On Tue, May 16, 2017 at 8:43 PM, Mohammed Manna <ma...@gmail.com>
> > > wrote:
> > >
> > > > Hi Vidyadhar,
> > > >
> > > > Some points to note here:
> > > >
> > > > 1) Setting those parameters in Web.xml file (CATALINA_HOME/conf)
> > doesn't
> > > > guarantee that it won't happen. Tomcat 8.0.43 onwards have got this
> > > relaxed
> > > > out by using a more efficient error handling code. But you will have
> > this
> > > > error if the code is truly hitting near the limit.
> > > > 2) The issue occurs with Tomcat 8.0.39 onwards. Try to see if the
> issue
> > > > happens for tomcat 8.0.29. I can vouch for 8.0.29 where it didn't
> > happen.
> > > > 3) Did you try and follow my suggestion on point 3 (last email) about
> > > > checking the method sizes of the precompiled JSPs using apache
> commons
> > > BCEL
> > > > (bcel-5.4.1.jar) library? If yes, what did you find?
> > > >
> > >
> > > I already tried to precompile the JSPs using ANT but it is giving
> > following
> > > error:
> > > C:\apache-ant-1.9.4\tomcat.xml:11: org.apache.jasper.JasperException:
> > > java.lang.IllegalArgumentException: Page directive: invalid value for
> > > import
> > >         at org.apache.jasper.JspC.processFile(JspC.java:1296)
> > >         at org.apache.jasper.JspC.execute(JspC.java:1415)
> > >         at
> > > org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
> > >         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > > I guess I am hitting the bug # 57099 and there are multiple JSPs
> wherein
> > we
> > > need to do these changes.
> > >
> > > >
> > > >
> > > > You also haven't mentioned what sort of JSPs you have that yields
> into
> > > such
> > > > error. Are you having legacy scriptlets which are quite heavy and
> uses
> > > lots
> > > > of custom tags? Try to use the following too:
> > > >
> > > > <init-param>
> > > > <param-name>trimSpaces</param-name>
> > > > <param-value>true</param-value>
> > > > </init-param>
> > > >
> > > > The above is having some inconsistency reported in a different email
> > > > thread, but I assume it should be fine in most of the cases. Try to
> see
> > > if
> > > > you can provide some results on the above points.
> > > >
> > > >
> > > > KR,
> > > >
> > > > On 16 May 2017 at 15:29, Vidyadhar <te...@gmail.com> wrote:
> > > >
> > > > > Hello KR,
> > > > >
> > > > > On Fri, May 12, 2017 at 12:37 PM, Mohammed Manna <
> manmedia@gmail.com
> > >
> > > > > wrote:
> > > > >
> > > > > > I have two things which you might want to try out:
> > > > > >
> > > > > > 1) You will lose your JSP debugging capability - but if that's
> not
> > > your
> > > > > > concern, then in your CATALINA_HOME\conf folder append this for
> > > > > > "JspServlet"
> > > > > >
> > > > > >         <init-param>
> > > > > >             <param-name>mappedfile</param-name>
> > > > > >             <param-value>false</param-value>
> > > > > >         </init-param>
> > > > > >         <init-param>
> > > > > >             <param-name>suppressSmap</param-name>
> > > > > >             <param-value>true</param-value>
> > > > > >         </init-param>
> > > > > >
> > > > > We already tried this option. We included these lines in tomcat's
> > > web.xml
> > > > > file and restarted the services, but still it is giving the same
> > error.
> > > > >
> > > > > >
> > > > > >      This will stop generating JSR45 debug info and Symbol Maps
> for
> > > JSP
> > > > > > pages ( I think I have said technical things right here,
> otherwise
> > > > please
> > > > > > correct me!).
> > > > > >
> > > > > > 2) I sincerely recommend moving scriptlet code out of your JSP
> and
> > > > remove
> > > > > > all unwanted/commented code, newline/carriages from your JSP.
> Even
> > > with
> > > > > the
> > > > > > config above, this might fail since the code is genuinely too
> large
> > > for
> > > > > > __jspService().
> > > > > >
> > > > > > 3) If possible, try to use Ant and precompile your JSP and
> iterate
> > > > > through
> > > > > > the .class files to check which method size is larger or close to
> > 90%
> > > > or
> > > > > > the 64k footprint. You can write a short program by leveraging
> > > java.io
> > > > > and
> > > > > > Apache commons BCEL library. Ant has a strange behaviour which
> > > doesn't
> > > > > > throw any exceptions if the Jsp method size exceeds the limit.
> But
> > > the
> > > > > > compilation occurs anyway. So you can go through those compiled
> > files
> > > > > using
> > > > > > your custom tool and print the size of the methods.
> > > > > >
> > > > > >
> > > > > > I hope this helps you.
> > > > > >
> > > > > > Further to above we tried various tomcat version and as per our
> > > > > observation we are not seeing this error on 8.0.29 version. Note
> that
> > > the
> > > > > same error is still there in latest version i.e. 8.5.15.
> > > > >
> > > > > > KR,
> > > > > >
> > > > > > On 12 May 2017 at 07:58, Vidyadhar <te...@gmail.com>
> > wrote:
> > > > > >
> > > > > > > Hello Sagar,
> > > > > > >
> > > > > > > On Fri, 12 May 2017 at 12:26 PM, sagar kohli <
> > > sagarkohli01@gmail.com
> > > > >
> > > > > > > wrote:
> > > > > > >
> > > > > > > > Try adding following init parameter in
> > <tomcat_home>/conf/web.xml
> > > > > > > >
> > > > > > > > <init-param>
> > > > > > > >      <param-name>mappedfile</param-name>
> > > > > > > >      <param-value>false</param-value>
> > > > > > > > </init-param>
> > > > > > >
> > > > > > >
> > > > > > > We already tried it but no success.
> > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > On Fri, May 12, 2017 at 10:28 AM, Vidyadhar <
> > > > > techienote.com@gmail.com>
> > > > > > > > wrote:
> > > > > > > >
> > > > > > > > > Hello Team,
> > > > > > > > >
> > > > > > > > > Recently we did a upgrade existing tomcat from 7.0.42 to
> > 7.0.76
> > > > on
> > > > > > > > windows
> > > > > > > > > box. Post the up gradation we are seeing following error in
> > > > couple
> > > > > of
> > > > > > > > JSPs
> > > > > > > > >
> > > > > > > > > org.apache.jasper.JasperException: Unable to compile class
> > for
> > > > > JSP:
> > > > > > > > >
> > > > > > > > > An error occurred at line: [231] in the generated java
> file:
> > > > > > > [C:\Program
> > > > > > > > > Files\Apache\Tomcat\work\Catalina\localhost\app\org\
> > > > > apache\jsp\jsp\
> > > > > > > > > applicationChange\applicationChangeMain_jsp.java]
> > > > > > > > > The code of method _jspService(HttpServletRequest,
> > > > > > > HttpServletResponse)
> > > > > > > > is
> > > > > > > > > exceeding the 65535 bytes limit
> > > > > > > > >
> > > > > > > > > Stacktrace:
> > > > > > > > > org.apache.jasper.compiler.DefaultErrorHandler.javacError(
> > > > > > > > > DefaultErrorHandler.java:103)
> > > > > > > > > org.apache.jasper.compiler.ErrorDispatcher.javacError(
> > > > > > > > > ErrorDispatcher.java:366)
> > > > > > > > >
> > > > > > > > org.apache.jasper.compiler.JDTCompiler.generateClass(
> > > > > > > JDTCompiler.java:490)
> > > > > > > > > org.apache.jasper.compiler.Compiler.compile(Compiler.
> > java:379)
> > > > > > > > > org.apache.jasper.compiler.Compiler.compile(Compiler.
> > java:354)
> > > > > > > > > org.apache.jasper.compiler.Compiler.compile(Compiler.
> > java:341)
> > > > > > > > > I have checked the various threads on tomcat support
> archive
> > > and
> > > > > did
> > > > > > > try
> > > > > > > > > following solution which did not work on 7.0.76 as well as
> on
> > > > > 7.0.77.
> > > > > > > > >
> > > > > > > > > 1. Following changes in conf/web.xml
> > > > > > > > > <init-param>
> > > > > > > > >     <param-name>mappedfile</param-name>
> > > > > > > > >     <param-value>false</param-value>
> > > > > > > > > </init-param>
> > > > > > > > > <init-param>
> > > > > > > > >     <param-name>compiler</param-name>
> > > > > > > > >     <param-value>modern</param-value>
> > > > > > > > > </init-param>
> > > > > > > > > 2. Increased the buffer size.
> > > > > > > > >
> > > > > > > > > Can some one suggest some ways to resolve this error,
> without
> > > > > > > downgrading
> > > > > > > > > to 7.0.42
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > --
> > > > > > > > > Regards,
> > > > > > > > > Vidyadhar
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > Regards,
> > > > > > > > sagar kohli
> > > > > > > >
> > > > > > > --
> > > > > > > Regards,
> > > > > > > Vidyadhar
> > > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Regards,
> > > > > Vidyadhar
> > > > >
> > > >
> > >
> > >
> > >
> > > --
> > > Regards,
> > > Vidyadhar
> > >
> >
>
>
>
> --
> Regards,
> Vidyadhar
>

Re: JSP compilation 65535 bytes limit

Posted by Vidyadhar <te...@gmail.com>.
On Wed, May 17, 2017 at 7:30 PM, Mohammed Manna <ma...@gmail.com> wrote:

> Your ant Build File seems to be incorrect. Could you provide the snippet of
> the Jspc Task and Javac task for this?
>
Following is the tomcat.xml which I am using for precompilation:
<project name="Webapp Precompilation" default="all" basedir=".">

   <import file="${tomcat.home}/bin/catalina-tasks.xml"/>

   <target name="jspc">

    <jasper
             validateXml="false"
             uriroot="${webapp.path}"
             webXmlFragment="${webapp.path}/WEB-INF/generated_web.xml"
             outputDir="${webapp.path}/WEB-INF/src" />

  </target>

  <target name="compile">

    <mkdir dir="${webapp.path}/WEB-INF/classes"/>
    <mkdir dir="${webapp.path}/WEB-INF/lib"/>

    <javac destdir="${webapp.path}/WEB-INF/classes"
           optimize="off"
           debug="on" failonerror="false"
           srcdir="${webapp.path}/WEB-INF/src"
           excludes="**/*.smap">
      <classpath>
        <pathelement location="${webapp.path}/WEB-INF/classes"/>
        <fileset dir="${webapp.path}/WEB-INF/lib">
          <include name="*.jar"/>
        </fileset>
        <pathelement location="${tomcat.home}/lib"/>
        <fileset dir="${tomcat.home}/lib">
          <include name="*.jar"/>
        </fileset>
        <fileset dir="${tomcat.home}/bin">
          <include name="*.jar"/>
        </fileset>
      </classpath>
      <include name="**" />
      <exclude name="tags/**" />
    </javac>

  </target>

  <target name="all" depends="jspc,compile">
  </target>

  <target name="cleanup">
    <delete>
        <fileset dir="${webapp.path}/WEB-INF/src"/>
        <fileset dir="${webapp.path}/WEB-INF/classes/org/apache/jsp"/>
    </delete>
  </target>

</project>

>
> On 17 May 2017 at 14:58, Vidyadhar <te...@gmail.com> wrote:
>
> > Hello KR,
> >
> > On Tue, May 16, 2017 at 8:43 PM, Mohammed Manna <ma...@gmail.com>
> > wrote:
> >
> > > Hi Vidyadhar,
> > >
> > > Some points to note here:
> > >
> > > 1) Setting those parameters in Web.xml file (CATALINA_HOME/conf)
> doesn't
> > > guarantee that it won't happen. Tomcat 8.0.43 onwards have got this
> > relaxed
> > > out by using a more efficient error handling code. But you will have
> this
> > > error if the code is truly hitting near the limit.
> > > 2) The issue occurs with Tomcat 8.0.39 onwards. Try to see if the issue
> > > happens for tomcat 8.0.29. I can vouch for 8.0.29 where it didn't
> happen.
> > > 3) Did you try and follow my suggestion on point 3 (last email) about
> > > checking the method sizes of the precompiled JSPs using apache commons
> > BCEL
> > > (bcel-5.4.1.jar) library? If yes, what did you find?
> > >
> >
> > I already tried to precompile the JSPs using ANT but it is giving
> following
> > error:
> > C:\apache-ant-1.9.4\tomcat.xml:11: org.apache.jasper.JasperException:
> > java.lang.IllegalArgumentException: Page directive: invalid value for
> > import
> >         at org.apache.jasper.JspC.processFile(JspC.java:1296)
> >         at org.apache.jasper.JspC.execute(JspC.java:1415)
> >         at
> > org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
> >         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > I guess I am hitting the bug # 57099 and there are multiple JSPs wherein
> we
> > need to do these changes.
> >
> > >
> > >
> > > You also haven't mentioned what sort of JSPs you have that yields into
> > such
> > > error. Are you having legacy scriptlets which are quite heavy and uses
> > lots
> > > of custom tags? Try to use the following too:
> > >
> > > <init-param>
> > > <param-name>trimSpaces</param-name>
> > > <param-value>true</param-value>
> > > </init-param>
> > >
> > > The above is having some inconsistency reported in a different email
> > > thread, but I assume it should be fine in most of the cases. Try to see
> > if
> > > you can provide some results on the above points.
> > >
> > >
> > > KR,
> > >
> > > On 16 May 2017 at 15:29, Vidyadhar <te...@gmail.com> wrote:
> > >
> > > > Hello KR,
> > > >
> > > > On Fri, May 12, 2017 at 12:37 PM, Mohammed Manna <manmedia@gmail.com
> >
> > > > wrote:
> > > >
> > > > > I have two things which you might want to try out:
> > > > >
> > > > > 1) You will lose your JSP debugging capability - but if that's not
> > your
> > > > > concern, then in your CATALINA_HOME\conf folder append this for
> > > > > "JspServlet"
> > > > >
> > > > >         <init-param>
> > > > >             <param-name>mappedfile</param-name>
> > > > >             <param-value>false</param-value>
> > > > >         </init-param>
> > > > >         <init-param>
> > > > >             <param-name>suppressSmap</param-name>
> > > > >             <param-value>true</param-value>
> > > > >         </init-param>
> > > > >
> > > > We already tried this option. We included these lines in tomcat's
> > web.xml
> > > > file and restarted the services, but still it is giving the same
> error.
> > > >
> > > > >
> > > > >      This will stop generating JSR45 debug info and Symbol Maps for
> > JSP
> > > > > pages ( I think I have said technical things right here, otherwise
> > > please
> > > > > correct me!).
> > > > >
> > > > > 2) I sincerely recommend moving scriptlet code out of your JSP and
> > > remove
> > > > > all unwanted/commented code, newline/carriages from your JSP. Even
> > with
> > > > the
> > > > > config above, this might fail since the code is genuinely too large
> > for
> > > > > __jspService().
> > > > >
> > > > > 3) If possible, try to use Ant and precompile your JSP and iterate
> > > > through
> > > > > the .class files to check which method size is larger or close to
> 90%
> > > or
> > > > > the 64k footprint. You can write a short program by leveraging
> > java.io
> > > > and
> > > > > Apache commons BCEL library. Ant has a strange behaviour which
> > doesn't
> > > > > throw any exceptions if the Jsp method size exceeds the limit. But
> > the
> > > > > compilation occurs anyway. So you can go through those compiled
> files
> > > > using
> > > > > your custom tool and print the size of the methods.
> > > > >
> > > > >
> > > > > I hope this helps you.
> > > > >
> > > > > Further to above we tried various tomcat version and as per our
> > > > observation we are not seeing this error on 8.0.29 version. Note that
> > the
> > > > same error is still there in latest version i.e. 8.5.15.
> > > >
> > > > > KR,
> > > > >
> > > > > On 12 May 2017 at 07:58, Vidyadhar <te...@gmail.com>
> wrote:
> > > > >
> > > > > > Hello Sagar,
> > > > > >
> > > > > > On Fri, 12 May 2017 at 12:26 PM, sagar kohli <
> > sagarkohli01@gmail.com
> > > >
> > > > > > wrote:
> > > > > >
> > > > > > > Try adding following init parameter in
> <tomcat_home>/conf/web.xml
> > > > > > >
> > > > > > > <init-param>
> > > > > > >      <param-name>mappedfile</param-name>
> > > > > > >      <param-value>false</param-value>
> > > > > > > </init-param>
> > > > > >
> > > > > >
> > > > > > We already tried it but no success.
> > > > > >
> > > > > > >
> > > > > > >
> > > > > > > On Fri, May 12, 2017 at 10:28 AM, Vidyadhar <
> > > > techienote.com@gmail.com>
> > > > > > > wrote:
> > > > > > >
> > > > > > > > Hello Team,
> > > > > > > >
> > > > > > > > Recently we did a upgrade existing tomcat from 7.0.42 to
> 7.0.76
> > > on
> > > > > > > windows
> > > > > > > > box. Post the up gradation we are seeing following error in
> > > couple
> > > > of
> > > > > > > JSPs
> > > > > > > >
> > > > > > > > org.apache.jasper.JasperException: Unable to compile class
> for
> > > > JSP:
> > > > > > > >
> > > > > > > > An error occurred at line: [231] in the generated java file:
> > > > > > [C:\Program
> > > > > > > > Files\Apache\Tomcat\work\Catalina\localhost\app\org\
> > > > apache\jsp\jsp\
> > > > > > > > applicationChange\applicationChangeMain_jsp.java]
> > > > > > > > The code of method _jspService(HttpServletRequest,
> > > > > > HttpServletResponse)
> > > > > > > is
> > > > > > > > exceeding the 65535 bytes limit
> > > > > > > >
> > > > > > > > Stacktrace:
> > > > > > > > org.apache.jasper.compiler.DefaultErrorHandler.javacError(
> > > > > > > > DefaultErrorHandler.java:103)
> > > > > > > > org.apache.jasper.compiler.ErrorDispatcher.javacError(
> > > > > > > > ErrorDispatcher.java:366)
> > > > > > > >
> > > > > > > org.apache.jasper.compiler.JDTCompiler.generateClass(
> > > > > > JDTCompiler.java:490)
> > > > > > > > org.apache.jasper.compiler.Compiler.compile(Compiler.
> java:379)
> > > > > > > > org.apache.jasper.compiler.Compiler.compile(Compiler.
> java:354)
> > > > > > > > org.apache.jasper.compiler.Compiler.compile(Compiler.
> java:341)
> > > > > > > > I have checked the various threads on tomcat support archive
> > and
> > > > did
> > > > > > try
> > > > > > > > following solution which did not work on 7.0.76 as well as on
> > > > 7.0.77.
> > > > > > > >
> > > > > > > > 1. Following changes in conf/web.xml
> > > > > > > > <init-param>
> > > > > > > >     <param-name>mappedfile</param-name>
> > > > > > > >     <param-value>false</param-value>
> > > > > > > > </init-param>
> > > > > > > > <init-param>
> > > > > > > >     <param-name>compiler</param-name>
> > > > > > > >     <param-value>modern</param-value>
> > > > > > > > </init-param>
> > > > > > > > 2. Increased the buffer size.
> > > > > > > >
> > > > > > > > Can some one suggest some ways to resolve this error, without
> > > > > > downgrading
> > > > > > > > to 7.0.42
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > Regards,
> > > > > > > > Vidyadhar
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Regards,
> > > > > > > sagar kohli
> > > > > > >
> > > > > > --
> > > > > > Regards,
> > > > > > Vidyadhar
> > > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Regards,
> > > > Vidyadhar
> > > >
> > >
> >
> >
> >
> > --
> > Regards,
> > Vidyadhar
> >
>



-- 
Regards,
Vidyadhar

Re: JSP compilation 65535 bytes limit

Posted by Mohammed Manna <ma...@gmail.com>.
Your ant Build File seems to be incorrect. Could you provide the snippet of
the Jspc Task and Javac task for this?

On 17 May 2017 at 14:58, Vidyadhar <te...@gmail.com> wrote:

> Hello KR,
>
> On Tue, May 16, 2017 at 8:43 PM, Mohammed Manna <ma...@gmail.com>
> wrote:
>
> > Hi Vidyadhar,
> >
> > Some points to note here:
> >
> > 1) Setting those parameters in Web.xml file (CATALINA_HOME/conf) doesn't
> > guarantee that it won't happen. Tomcat 8.0.43 onwards have got this
> relaxed
> > out by using a more efficient error handling code. But you will have this
> > error if the code is truly hitting near the limit.
> > 2) The issue occurs with Tomcat 8.0.39 onwards. Try to see if the issue
> > happens for tomcat 8.0.29. I can vouch for 8.0.29 where it didn't happen.
> > 3) Did you try and follow my suggestion on point 3 (last email) about
> > checking the method sizes of the precompiled JSPs using apache commons
> BCEL
> > (bcel-5.4.1.jar) library? If yes, what did you find?
> >
>
> I already tried to precompile the JSPs using ANT but it is giving following
> error:
> C:\apache-ant-1.9.4\tomcat.xml:11: org.apache.jasper.JasperException:
> java.lang.IllegalArgumentException: Page directive: invalid value for
> import
>         at org.apache.jasper.JspC.processFile(JspC.java:1296)
>         at org.apache.jasper.JspC.execute(JspC.java:1415)
>         at
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> I guess I am hitting the bug # 57099 and there are multiple JSPs wherein we
> need to do these changes.
>
> >
> >
> > You also haven't mentioned what sort of JSPs you have that yields into
> such
> > error. Are you having legacy scriptlets which are quite heavy and uses
> lots
> > of custom tags? Try to use the following too:
> >
> > <init-param>
> > <param-name>trimSpaces</param-name>
> > <param-value>true</param-value>
> > </init-param>
> >
> > The above is having some inconsistency reported in a different email
> > thread, but I assume it should be fine in most of the cases. Try to see
> if
> > you can provide some results on the above points.
> >
> >
> > KR,
> >
> > On 16 May 2017 at 15:29, Vidyadhar <te...@gmail.com> wrote:
> >
> > > Hello KR,
> > >
> > > On Fri, May 12, 2017 at 12:37 PM, Mohammed Manna <ma...@gmail.com>
> > > wrote:
> > >
> > > > I have two things which you might want to try out:
> > > >
> > > > 1) You will lose your JSP debugging capability - but if that's not
> your
> > > > concern, then in your CATALINA_HOME\conf folder append this for
> > > > "JspServlet"
> > > >
> > > >         <init-param>
> > > >             <param-name>mappedfile</param-name>
> > > >             <param-value>false</param-value>
> > > >         </init-param>
> > > >         <init-param>
> > > >             <param-name>suppressSmap</param-name>
> > > >             <param-value>true</param-value>
> > > >         </init-param>
> > > >
> > > We already tried this option. We included these lines in tomcat's
> web.xml
> > > file and restarted the services, but still it is giving the same error.
> > >
> > > >
> > > >      This will stop generating JSR45 debug info and Symbol Maps for
> JSP
> > > > pages ( I think I have said technical things right here, otherwise
> > please
> > > > correct me!).
> > > >
> > > > 2) I sincerely recommend moving scriptlet code out of your JSP and
> > remove
> > > > all unwanted/commented code, newline/carriages from your JSP. Even
> with
> > > the
> > > > config above, this might fail since the code is genuinely too large
> for
> > > > __jspService().
> > > >
> > > > 3) If possible, try to use Ant and precompile your JSP and iterate
> > > through
> > > > the .class files to check which method size is larger or close to 90%
> > or
> > > > the 64k footprint. You can write a short program by leveraging
> java.io
> > > and
> > > > Apache commons BCEL library. Ant has a strange behaviour which
> doesn't
> > > > throw any exceptions if the Jsp method size exceeds the limit. But
> the
> > > > compilation occurs anyway. So you can go through those compiled files
> > > using
> > > > your custom tool and print the size of the methods.
> > > >
> > > >
> > > > I hope this helps you.
> > > >
> > > > Further to above we tried various tomcat version and as per our
> > > observation we are not seeing this error on 8.0.29 version. Note that
> the
> > > same error is still there in latest version i.e. 8.5.15.
> > >
> > > > KR,
> > > >
> > > > On 12 May 2017 at 07:58, Vidyadhar <te...@gmail.com> wrote:
> > > >
> > > > > Hello Sagar,
> > > > >
> > > > > On Fri, 12 May 2017 at 12:26 PM, sagar kohli <
> sagarkohli01@gmail.com
> > >
> > > > > wrote:
> > > > >
> > > > > > Try adding following init parameter in <tomcat_home>/conf/web.xml
> > > > > >
> > > > > > <init-param>
> > > > > >      <param-name>mappedfile</param-name>
> > > > > >      <param-value>false</param-value>
> > > > > > </init-param>
> > > > >
> > > > >
> > > > > We already tried it but no success.
> > > > >
> > > > > >
> > > > > >
> > > > > > On Fri, May 12, 2017 at 10:28 AM, Vidyadhar <
> > > techienote.com@gmail.com>
> > > > > > wrote:
> > > > > >
> > > > > > > Hello Team,
> > > > > > >
> > > > > > > Recently we did a upgrade existing tomcat from 7.0.42 to 7.0.76
> > on
> > > > > > windows
> > > > > > > box. Post the up gradation we are seeing following error in
> > couple
> > > of
> > > > > > JSPs
> > > > > > >
> > > > > > > org.apache.jasper.JasperException: Unable to compile class for
> > > JSP:
> > > > > > >
> > > > > > > An error occurred at line: [231] in the generated java file:
> > > > > [C:\Program
> > > > > > > Files\Apache\Tomcat\work\Catalina\localhost\app\org\
> > > apache\jsp\jsp\
> > > > > > > applicationChange\applicationChangeMain_jsp.java]
> > > > > > > The code of method _jspService(HttpServletRequest,
> > > > > HttpServletResponse)
> > > > > > is
> > > > > > > exceeding the 65535 bytes limit
> > > > > > >
> > > > > > > Stacktrace:
> > > > > > > org.apache.jasper.compiler.DefaultErrorHandler.javacError(
> > > > > > > DefaultErrorHandler.java:103)
> > > > > > > org.apache.jasper.compiler.ErrorDispatcher.javacError(
> > > > > > > ErrorDispatcher.java:366)
> > > > > > >
> > > > > > org.apache.jasper.compiler.JDTCompiler.generateClass(
> > > > > JDTCompiler.java:490)
> > > > > > > org.apache.jasper.compiler.Compiler.compile(Compiler.java:379)
> > > > > > > org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
> > > > > > > org.apache.jasper.compiler.Compiler.compile(Compiler.java:341)
> > > > > > > I have checked the various threads on tomcat support archive
> and
> > > did
> > > > > try
> > > > > > > following solution which did not work on 7.0.76 as well as on
> > > 7.0.77.
> > > > > > >
> > > > > > > 1. Following changes in conf/web.xml
> > > > > > > <init-param>
> > > > > > >     <param-name>mappedfile</param-name>
> > > > > > >     <param-value>false</param-value>
> > > > > > > </init-param>
> > > > > > > <init-param>
> > > > > > >     <param-name>compiler</param-name>
> > > > > > >     <param-value>modern</param-value>
> > > > > > > </init-param>
> > > > > > > 2. Increased the buffer size.
> > > > > > >
> > > > > > > Can some one suggest some ways to resolve this error, without
> > > > > downgrading
> > > > > > > to 7.0.42
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Regards,
> > > > > > > Vidyadhar
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Regards,
> > > > > > sagar kohli
> > > > > >
> > > > > --
> > > > > Regards,
> > > > > Vidyadhar
> > > > >
> > > >
> > >
> > >
> > >
> > > --
> > > Regards,
> > > Vidyadhar
> > >
> >
>
>
>
> --
> Regards,
> Vidyadhar
>

Re: JSP compilation 65535 bytes limit

Posted by Vidyadhar <te...@gmail.com>.
Hello KR,

On Tue, May 16, 2017 at 8:43 PM, Mohammed Manna <ma...@gmail.com> wrote:

> Hi Vidyadhar,
>
> Some points to note here:
>
> 1) Setting those parameters in Web.xml file (CATALINA_HOME/conf) doesn't
> guarantee that it won't happen. Tomcat 8.0.43 onwards have got this relaxed
> out by using a more efficient error handling code. But you will have this
> error if the code is truly hitting near the limit.
> 2) The issue occurs with Tomcat 8.0.39 onwards. Try to see if the issue
> happens for tomcat 8.0.29. I can vouch for 8.0.29 where it didn't happen.
> 3) Did you try and follow my suggestion on point 3 (last email) about
> checking the method sizes of the precompiled JSPs using apache commons BCEL
> (bcel-5.4.1.jar) library? If yes, what did you find?
>

I already tried to precompile the JSPs using ANT but it is giving following
error:
C:\apache-ant-1.9.4\tomcat.xml:11: org.apache.jasper.JasperException:
java.lang.IllegalArgumentException: Page directive: invalid value for import
        at org.apache.jasper.JspC.processFile(JspC.java:1296)
        at org.apache.jasper.JspC.execute(JspC.java:1415)
        at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
I guess I am hitting the bug # 57099 and there are multiple JSPs wherein we
need to do these changes.

>
>
> You also haven't mentioned what sort of JSPs you have that yields into such
> error. Are you having legacy scriptlets which are quite heavy and uses lots
> of custom tags? Try to use the following too:
>
> <init-param>
> <param-name>trimSpaces</param-name>
> <param-value>true</param-value>
> </init-param>
>
> The above is having some inconsistency reported in a different email
> thread, but I assume it should be fine in most of the cases. Try to see if
> you can provide some results on the above points.
>
>
> KR,
>
> On 16 May 2017 at 15:29, Vidyadhar <te...@gmail.com> wrote:
>
> > Hello KR,
> >
> > On Fri, May 12, 2017 at 12:37 PM, Mohammed Manna <ma...@gmail.com>
> > wrote:
> >
> > > I have two things which you might want to try out:
> > >
> > > 1) You will lose your JSP debugging capability - but if that's not your
> > > concern, then in your CATALINA_HOME\conf folder append this for
> > > "JspServlet"
> > >
> > >         <init-param>
> > >             <param-name>mappedfile</param-name>
> > >             <param-value>false</param-value>
> > >         </init-param>
> > >         <init-param>
> > >             <param-name>suppressSmap</param-name>
> > >             <param-value>true</param-value>
> > >         </init-param>
> > >
> > We already tried this option. We included these lines in tomcat's web.xml
> > file and restarted the services, but still it is giving the same error.
> >
> > >
> > >      This will stop generating JSR45 debug info and Symbol Maps for JSP
> > > pages ( I think I have said technical things right here, otherwise
> please
> > > correct me!).
> > >
> > > 2) I sincerely recommend moving scriptlet code out of your JSP and
> remove
> > > all unwanted/commented code, newline/carriages from your JSP. Even with
> > the
> > > config above, this might fail since the code is genuinely too large for
> > > __jspService().
> > >
> > > 3) If possible, try to use Ant and precompile your JSP and iterate
> > through
> > > the .class files to check which method size is larger or close to 90%
> or
> > > the 64k footprint. You can write a short program by leveraging java.io
> > and
> > > Apache commons BCEL library. Ant has a strange behaviour which doesn't
> > > throw any exceptions if the Jsp method size exceeds the limit. But the
> > > compilation occurs anyway. So you can go through those compiled files
> > using
> > > your custom tool and print the size of the methods.
> > >
> > >
> > > I hope this helps you.
> > >
> > > Further to above we tried various tomcat version and as per our
> > observation we are not seeing this error on 8.0.29 version. Note that the
> > same error is still there in latest version i.e. 8.5.15.
> >
> > > KR,
> > >
> > > On 12 May 2017 at 07:58, Vidyadhar <te...@gmail.com> wrote:
> > >
> > > > Hello Sagar,
> > > >
> > > > On Fri, 12 May 2017 at 12:26 PM, sagar kohli <sagarkohli01@gmail.com
> >
> > > > wrote:
> > > >
> > > > > Try adding following init parameter in <tomcat_home>/conf/web.xml
> > > > >
> > > > > <init-param>
> > > > >      <param-name>mappedfile</param-name>
> > > > >      <param-value>false</param-value>
> > > > > </init-param>
> > > >
> > > >
> > > > We already tried it but no success.
> > > >
> > > > >
> > > > >
> > > > > On Fri, May 12, 2017 at 10:28 AM, Vidyadhar <
> > techienote.com@gmail.com>
> > > > > wrote:
> > > > >
> > > > > > Hello Team,
> > > > > >
> > > > > > Recently we did a upgrade existing tomcat from 7.0.42 to 7.0.76
> on
> > > > > windows
> > > > > > box. Post the up gradation we are seeing following error in
> couple
> > of
> > > > > JSPs
> > > > > >
> > > > > > org.apache.jasper.JasperException: Unable to compile class for
> > JSP:
> > > > > >
> > > > > > An error occurred at line: [231] in the generated java file:
> > > > [C:\Program
> > > > > > Files\Apache\Tomcat\work\Catalina\localhost\app\org\
> > apache\jsp\jsp\
> > > > > > applicationChange\applicationChangeMain_jsp.java]
> > > > > > The code of method _jspService(HttpServletRequest,
> > > > HttpServletResponse)
> > > > > is
> > > > > > exceeding the 65535 bytes limit
> > > > > >
> > > > > > Stacktrace:
> > > > > > org.apache.jasper.compiler.DefaultErrorHandler.javacError(
> > > > > > DefaultErrorHandler.java:103)
> > > > > > org.apache.jasper.compiler.ErrorDispatcher.javacError(
> > > > > > ErrorDispatcher.java:366)
> > > > > >
> > > > > org.apache.jasper.compiler.JDTCompiler.generateClass(
> > > > JDTCompiler.java:490)
> > > > > > org.apache.jasper.compiler.Compiler.compile(Compiler.java:379)
> > > > > > org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
> > > > > > org.apache.jasper.compiler.Compiler.compile(Compiler.java:341)
> > > > > > I have checked the various threads on tomcat support archive and
> > did
> > > > try
> > > > > > following solution which did not work on 7.0.76 as well as on
> > 7.0.77.
> > > > > >
> > > > > > 1. Following changes in conf/web.xml
> > > > > > <init-param>
> > > > > >     <param-name>mappedfile</param-name>
> > > > > >     <param-value>false</param-value>
> > > > > > </init-param>
> > > > > > <init-param>
> > > > > >     <param-name>compiler</param-name>
> > > > > >     <param-value>modern</param-value>
> > > > > > </init-param>
> > > > > > 2. Increased the buffer size.
> > > > > >
> > > > > > Can some one suggest some ways to resolve this error, without
> > > > downgrading
> > > > > > to 7.0.42
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Regards,
> > > > > > Vidyadhar
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Regards,
> > > > > sagar kohli
> > > > >
> > > > --
> > > > Regards,
> > > > Vidyadhar
> > > >
> > >
> >
> >
> >
> > --
> > Regards,
> > Vidyadhar
> >
>



-- 
Regards,
Vidyadhar

Re: JSP compilation 65535 bytes limit

Posted by Mohammed Manna <ma...@gmail.com>.
Hi Vidyadhar,

Some points to note here:

1) Setting those parameters in Web.xml file (CATALINA_HOME/conf) doesn't
guarantee that it won't happen. Tomcat 8.0.43 onwards have got this relaxed
out by using a more efficient error handling code. But you will have this
error if the code is truly hitting near the limit.
2) The issue occurs with Tomcat 8.0.39 onwards. Try to see if the issue
happens for tomcat 8.0.29. I can vouch for 8.0.29 where it didn't happen.
3) Did you try and follow my suggestion on point 3 (last email) about
checking the method sizes of the precompiled JSPs using apache commons BCEL
(bcel-5.4.1.jar) library? If yes, what did you find?


You also haven't mentioned what sort of JSPs you have that yields into such
error. Are you having legacy scriptlets which are quite heavy and uses lots
of custom tags? Try to use the following too:

<init-param>
<param-name>trimSpaces</param-name>
<param-value>true</param-value>
</init-param>

The above is having some inconsistency reported in a different email
thread, but I assume it should be fine in most of the cases. Try to see if
you can provide some results on the above points.


KR,

On 16 May 2017 at 15:29, Vidyadhar <te...@gmail.com> wrote:

> Hello KR,
>
> On Fri, May 12, 2017 at 12:37 PM, Mohammed Manna <ma...@gmail.com>
> wrote:
>
> > I have two things which you might want to try out:
> >
> > 1) You will lose your JSP debugging capability - but if that's not your
> > concern, then in your CATALINA_HOME\conf folder append this for
> > "JspServlet"
> >
> >         <init-param>
> >             <param-name>mappedfile</param-name>
> >             <param-value>false</param-value>
> >         </init-param>
> >         <init-param>
> >             <param-name>suppressSmap</param-name>
> >             <param-value>true</param-value>
> >         </init-param>
> >
> We already tried this option. We included these lines in tomcat's web.xml
> file and restarted the services, but still it is giving the same error.
>
> >
> >      This will stop generating JSR45 debug info and Symbol Maps for JSP
> > pages ( I think I have said technical things right here, otherwise please
> > correct me!).
> >
> > 2) I sincerely recommend moving scriptlet code out of your JSP and remove
> > all unwanted/commented code, newline/carriages from your JSP. Even with
> the
> > config above, this might fail since the code is genuinely too large for
> > __jspService().
> >
> > 3) If possible, try to use Ant and precompile your JSP and iterate
> through
> > the .class files to check which method size is larger or close to 90% or
> > the 64k footprint. You can write a short program by leveraging java.io
> and
> > Apache commons BCEL library. Ant has a strange behaviour which doesn't
> > throw any exceptions if the Jsp method size exceeds the limit. But the
> > compilation occurs anyway. So you can go through those compiled files
> using
> > your custom tool and print the size of the methods.
> >
> >
> > I hope this helps you.
> >
> > Further to above we tried various tomcat version and as per our
> observation we are not seeing this error on 8.0.29 version. Note that the
> same error is still there in latest version i.e. 8.5.15.
>
> > KR,
> >
> > On 12 May 2017 at 07:58, Vidyadhar <te...@gmail.com> wrote:
> >
> > > Hello Sagar,
> > >
> > > On Fri, 12 May 2017 at 12:26 PM, sagar kohli <sa...@gmail.com>
> > > wrote:
> > >
> > > > Try adding following init parameter in <tomcat_home>/conf/web.xml
> > > >
> > > > <init-param>
> > > >      <param-name>mappedfile</param-name>
> > > >      <param-value>false</param-value>
> > > > </init-param>
> > >
> > >
> > > We already tried it but no success.
> > >
> > > >
> > > >
> > > > On Fri, May 12, 2017 at 10:28 AM, Vidyadhar <
> techienote.com@gmail.com>
> > > > wrote:
> > > >
> > > > > Hello Team,
> > > > >
> > > > > Recently we did a upgrade existing tomcat from 7.0.42 to 7.0.76 on
> > > > windows
> > > > > box. Post the up gradation we are seeing following error in couple
> of
> > > > JSPs
> > > > >
> > > > > org.apache.jasper.JasperException: Unable to compile class for
> JSP:
> > > > >
> > > > > An error occurred at line: [231] in the generated java file:
> > > [C:\Program
> > > > > Files\Apache\Tomcat\work\Catalina\localhost\app\org\
> apache\jsp\jsp\
> > > > > applicationChange\applicationChangeMain_jsp.java]
> > > > > The code of method _jspService(HttpServletRequest,
> > > HttpServletResponse)
> > > > is
> > > > > exceeding the 65535 bytes limit
> > > > >
> > > > > Stacktrace:
> > > > > org.apache.jasper.compiler.DefaultErrorHandler.javacError(
> > > > > DefaultErrorHandler.java:103)
> > > > > org.apache.jasper.compiler.ErrorDispatcher.javacError(
> > > > > ErrorDispatcher.java:366)
> > > > >
> > > > org.apache.jasper.compiler.JDTCompiler.generateClass(
> > > JDTCompiler.java:490)
> > > > > org.apache.jasper.compiler.Compiler.compile(Compiler.java:379)
> > > > > org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
> > > > > org.apache.jasper.compiler.Compiler.compile(Compiler.java:341)
> > > > > I have checked the various threads on tomcat support archive and
> did
> > > try
> > > > > following solution which did not work on 7.0.76 as well as on
> 7.0.77.
> > > > >
> > > > > 1. Following changes in conf/web.xml
> > > > > <init-param>
> > > > >     <param-name>mappedfile</param-name>
> > > > >     <param-value>false</param-value>
> > > > > </init-param>
> > > > > <init-param>
> > > > >     <param-name>compiler</param-name>
> > > > >     <param-value>modern</param-value>
> > > > > </init-param>
> > > > > 2. Increased the buffer size.
> > > > >
> > > > > Can some one suggest some ways to resolve this error, without
> > > downgrading
> > > > > to 7.0.42
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Regards,
> > > > > Vidyadhar
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Regards,
> > > > sagar kohli
> > > >
> > > --
> > > Regards,
> > > Vidyadhar
> > >
> >
>
>
>
> --
> Regards,
> Vidyadhar
>

Re: JSP compilation 65535 bytes limit

Posted by Vidyadhar <te...@gmail.com>.
Hello KR,

On Fri, May 12, 2017 at 12:37 PM, Mohammed Manna <ma...@gmail.com> wrote:

> I have two things which you might want to try out:
>
> 1) You will lose your JSP debugging capability - but if that's not your
> concern, then in your CATALINA_HOME\conf folder append this for
> "JspServlet"
>
>         <init-param>
>             <param-name>mappedfile</param-name>
>             <param-value>false</param-value>
>         </init-param>
>         <init-param>
>             <param-name>suppressSmap</param-name>
>             <param-value>true</param-value>
>         </init-param>
>
We already tried this option. We included these lines in tomcat's web.xml
file and restarted the services, but still it is giving the same error.

>
>      This will stop generating JSR45 debug info and Symbol Maps for JSP
> pages ( I think I have said technical things right here, otherwise please
> correct me!).
>
> 2) I sincerely recommend moving scriptlet code out of your JSP and remove
> all unwanted/commented code, newline/carriages from your JSP. Even with the
> config above, this might fail since the code is genuinely too large for
> __jspService().
>
> 3) If possible, try to use Ant and precompile your JSP and iterate through
> the .class files to check which method size is larger or close to 90% or
> the 64k footprint. You can write a short program by leveraging java.io and
> Apache commons BCEL library. Ant has a strange behaviour which doesn't
> throw any exceptions if the Jsp method size exceeds the limit. But the
> compilation occurs anyway. So you can go through those compiled files using
> your custom tool and print the size of the methods.
>
>
> I hope this helps you.
>
> Further to above we tried various tomcat version and as per our
observation we are not seeing this error on 8.0.29 version. Note that the
same error is still there in latest version i.e. 8.5.15.

> KR,
>
> On 12 May 2017 at 07:58, Vidyadhar <te...@gmail.com> wrote:
>
> > Hello Sagar,
> >
> > On Fri, 12 May 2017 at 12:26 PM, sagar kohli <sa...@gmail.com>
> > wrote:
> >
> > > Try adding following init parameter in <tomcat_home>/conf/web.xml
> > >
> > > <init-param>
> > >      <param-name>mappedfile</param-name>
> > >      <param-value>false</param-value>
> > > </init-param>
> >
> >
> > We already tried it but no success.
> >
> > >
> > >
> > > On Fri, May 12, 2017 at 10:28 AM, Vidyadhar <te...@gmail.com>
> > > wrote:
> > >
> > > > Hello Team,
> > > >
> > > > Recently we did a upgrade existing tomcat from 7.0.42 to 7.0.76 on
> > > windows
> > > > box. Post the up gradation we are seeing following error in couple of
> > > JSPs
> > > >
> > > > org.apache.jasper.JasperException: Unable to compile class for JSP:
> > > >
> > > > An error occurred at line: [231] in the generated java file:
> > [C:\Program
> > > > Files\Apache\Tomcat\work\Catalina\localhost\app\org\apache\jsp\jsp\
> > > > applicationChange\applicationChangeMain_jsp.java]
> > > > The code of method _jspService(HttpServletRequest,
> > HttpServletResponse)
> > > is
> > > > exceeding the 65535 bytes limit
> > > >
> > > > Stacktrace:
> > > > org.apache.jasper.compiler.DefaultErrorHandler.javacError(
> > > > DefaultErrorHandler.java:103)
> > > > org.apache.jasper.compiler.ErrorDispatcher.javacError(
> > > > ErrorDispatcher.java:366)
> > > >
> > > org.apache.jasper.compiler.JDTCompiler.generateClass(
> > JDTCompiler.java:490)
> > > > org.apache.jasper.compiler.Compiler.compile(Compiler.java:379)
> > > > org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
> > > > org.apache.jasper.compiler.Compiler.compile(Compiler.java:341)
> > > > I have checked the various threads on tomcat support archive and did
> > try
> > > > following solution which did not work on 7.0.76 as well as on 7.0.77.
> > > >
> > > > 1. Following changes in conf/web.xml
> > > > <init-param>
> > > >     <param-name>mappedfile</param-name>
> > > >     <param-value>false</param-value>
> > > > </init-param>
> > > > <init-param>
> > > >     <param-name>compiler</param-name>
> > > >     <param-value>modern</param-value>
> > > > </init-param>
> > > > 2. Increased the buffer size.
> > > >
> > > > Can some one suggest some ways to resolve this error, without
> > downgrading
> > > > to 7.0.42
> > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Regards,
> > > > Vidyadhar
> > > >
> > >
> > >
> > >
> > > --
> > > Regards,
> > > sagar kohli
> > >
> > --
> > Regards,
> > Vidyadhar
> >
>



-- 
Regards,
Vidyadhar

Re: JSP compilation 65535 bytes limit

Posted by Mohammed Manna <ma...@gmail.com>.
I have two things which you might want to try out:

1) You will lose your JSP debugging capability - but if that's not your
concern, then in your CATALINA_HOME\conf folder append this for "JspServlet"

        <init-param>
            <param-name>mappedfile</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>suppressSmap</param-name>
            <param-value>true</param-value>
        </init-param>

     This will stop generating JSR45 debug info and Symbol Maps for JSP
pages ( I think I have said technical things right here, otherwise please
correct me!).

2) I sincerely recommend moving scriptlet code out of your JSP and remove
all unwanted/commented code, newline/carriages from your JSP. Even with the
config above, this might fail since the code is genuinely too large for
__jspService().

3) If possible, try to use Ant and precompile your JSP and iterate through
the .class files to check which method size is larger or close to 90% or
the 64k footprint. You can write a short program by leveraging java.io and
Apache commons BCEL library. Ant has a strange behaviour which doesn't
throw any exceptions if the Jsp method size exceeds the limit. But the
compilation occurs anyway. So you can go through those compiled files using
your custom tool and print the size of the methods.


I hope this helps you.

KR,

On 12 May 2017 at 07:58, Vidyadhar <te...@gmail.com> wrote:

> Hello Sagar,
>
> On Fri, 12 May 2017 at 12:26 PM, sagar kohli <sa...@gmail.com>
> wrote:
>
> > Try adding following init parameter in <tomcat_home>/conf/web.xml
> >
> > <init-param>
> >      <param-name>mappedfile</param-name>
> >      <param-value>false</param-value>
> > </init-param>
>
>
> We already tried it but no success.
>
> >
> >
> > On Fri, May 12, 2017 at 10:28 AM, Vidyadhar <te...@gmail.com>
> > wrote:
> >
> > > Hello Team,
> > >
> > > Recently we did a upgrade existing tomcat from 7.0.42 to 7.0.76 on
> > windows
> > > box. Post the up gradation we are seeing following error in couple of
> > JSPs
> > >
> > > org.apache.jasper.JasperException: Unable to compile class for JSP:
> > >
> > > An error occurred at line: [231] in the generated java file:
> [C:\Program
> > > Files\Apache\Tomcat\work\Catalina\localhost\app\org\apache\jsp\jsp\
> > > applicationChange\applicationChangeMain_jsp.java]
> > > The code of method _jspService(HttpServletRequest,
> HttpServletResponse)
> > is
> > > exceeding the 65535 bytes limit
> > >
> > > Stacktrace:
> > > org.apache.jasper.compiler.DefaultErrorHandler.javacError(
> > > DefaultErrorHandler.java:103)
> > > org.apache.jasper.compiler.ErrorDispatcher.javacError(
> > > ErrorDispatcher.java:366)
> > >
> > org.apache.jasper.compiler.JDTCompiler.generateClass(
> JDTCompiler.java:490)
> > > org.apache.jasper.compiler.Compiler.compile(Compiler.java:379)
> > > org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
> > > org.apache.jasper.compiler.Compiler.compile(Compiler.java:341)
> > > I have checked the various threads on tomcat support archive and did
> try
> > > following solution which did not work on 7.0.76 as well as on 7.0.77.
> > >
> > > 1. Following changes in conf/web.xml
> > > <init-param>
> > >     <param-name>mappedfile</param-name>
> > >     <param-value>false</param-value>
> > > </init-param>
> > > <init-param>
> > >     <param-name>compiler</param-name>
> > >     <param-value>modern</param-value>
> > > </init-param>
> > > 2. Increased the buffer size.
> > >
> > > Can some one suggest some ways to resolve this error, without
> downgrading
> > > to 7.0.42
> > >
> > >
> > >
> > >
> > > --
> > > Regards,
> > > Vidyadhar
> > >
> >
> >
> >
> > --
> > Regards,
> > sagar kohli
> >
> --
> Regards,
> Vidyadhar
>

Re: JSP compilation 65535 bytes limit

Posted by Dhaval Jaiswal <dh...@via.com>.
Have you restarted service post adding parameter ?



On Fri, May 12, 2017 at 12:28 PM, Vidyadhar <te...@gmail.com>
wrote:

> Hello Sagar,
>
> On Fri, 12 May 2017 at 12:26 PM, sagar kohli <sa...@gmail.com>
> wrote:
>
> > Try adding following init parameter in <tomcat_home>/conf/web.xml
> >
> > <init-param>
> >      <param-name>mappedfile</param-name>
> >      <param-value>false</param-value>
> > </init-param>
>
>
> We already tried it but no success.
>
> >
> >
> > On Fri, May 12, 2017 at 10:28 AM, Vidyadhar <te...@gmail.com>
> > wrote:
> >
> > > Hello Team,
> > >
> > > Recently we did a upgrade existing tomcat from 7.0.42 to 7.0.76 on
> > windows
> > > box. Post the up gradation we are seeing following error in couple of
> > JSPs
> > >
> > > org.apache.jasper.JasperException: Unable to compile class for JSP:
> > >
> > > An error occurred at line: [231] in the generated java file:
> [C:\Program
> > > Files\Apache\Tomcat\work\Catalina\localhost\app\org\apache\jsp\jsp\
> > > applicationChange\applicationChangeMain_jsp.java]
> > > The code of method _jspService(HttpServletRequest,
> HttpServletResponse)
> > is
> > > exceeding the 65535 bytes limit
> > >
> > > Stacktrace:
> > > org.apache.jasper.compiler.DefaultErrorHandler.javacError(
> > > DefaultErrorHandler.java:103)
> > > org.apache.jasper.compiler.ErrorDispatcher.javacError(
> > > ErrorDispatcher.java:366)
> > >
> > org.apache.jasper.compiler.JDTCompiler.generateClass(
> JDTCompiler.java:490)
> > > org.apache.jasper.compiler.Compiler.compile(Compiler.java:379)
> > > org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
> > > org.apache.jasper.compiler.Compiler.compile(Compiler.java:341)
> > > I have checked the various threads on tomcat support archive and did
> try
> > > following solution which did not work on 7.0.76 as well as on 7.0.77.
> > >
> > > 1. Following changes in conf/web.xml
> > > <init-param>
> > >     <param-name>mappedfile</param-name>
> > >     <param-value>false</param-value>
> > > </init-param>
> > > <init-param>
> > >     <param-name>compiler</param-name>
> > >     <param-value>modern</param-value>
> > > </init-param>
> > > 2. Increased the buffer size.
> > >
> > > Can some one suggest some ways to resolve this error, without
> downgrading
> > > to 7.0.42
> > >
> > >
> > >
> > >
> > > --
> > > Regards,
> > > Vidyadhar
> > >
> >
> >
> >
> > --
> > Regards,
> > sagar kohli
> >
> --
> Regards,
> Vidyadhar
>

Re: JSP compilation 65535 bytes limit

Posted by Vidyadhar <te...@gmail.com>.
Hello Sagar,

On Fri, 12 May 2017 at 12:26 PM, sagar kohli <sa...@gmail.com> wrote:

> Try adding following init parameter in <tomcat_home>/conf/web.xml
>
> <init-param>
>      <param-name>mappedfile</param-name>
>      <param-value>false</param-value>
> </init-param>


We already tried it but no success.

>
>
> On Fri, May 12, 2017 at 10:28 AM, Vidyadhar <te...@gmail.com>
> wrote:
>
> > Hello Team,
> >
> > Recently we did a upgrade existing tomcat from 7.0.42 to 7.0.76 on
> windows
> > box. Post the up gradation we are seeing following error in couple of
> JSPs
> >
> > org.apache.jasper.JasperException: Unable to compile class for JSP:
> >
> > An error occurred at line: [231] in the generated java file: [C:\Program
> > Files\Apache\Tomcat\work\Catalina\localhost\app\org\apache\jsp\jsp\
> > applicationChange\applicationChangeMain_jsp.java]
> > The code of method _jspService(HttpServletRequest, HttpServletResponse)
> is
> > exceeding the 65535 bytes limit
> >
> > Stacktrace:
> > org.apache.jasper.compiler.DefaultErrorHandler.javacError(
> > DefaultErrorHandler.java:103)
> > org.apache.jasper.compiler.ErrorDispatcher.javacError(
> > ErrorDispatcher.java:366)
> >
> org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:490)
> > org.apache.jasper.compiler.Compiler.compile(Compiler.java:379)
> > org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
> > org.apache.jasper.compiler.Compiler.compile(Compiler.java:341)
> > I have checked the various threads on tomcat support archive and did try
> > following solution which did not work on 7.0.76 as well as on 7.0.77.
> >
> > 1. Following changes in conf/web.xml
> > <init-param>
> >     <param-name>mappedfile</param-name>
> >     <param-value>false</param-value>
> > </init-param>
> > <init-param>
> >     <param-name>compiler</param-name>
> >     <param-value>modern</param-value>
> > </init-param>
> > 2. Increased the buffer size.
> >
> > Can some one suggest some ways to resolve this error, without downgrading
> > to 7.0.42
> >
> >
> >
> >
> > --
> > Regards,
> > Vidyadhar
> >
>
>
>
> --
> Regards,
> sagar kohli
>
-- 
Regards,
Vidyadhar

Re: JSP compilation 65535 bytes limit

Posted by sagar kohli <sa...@gmail.com>.
Try adding following init parameter in <tomcat_home>/conf/web.xml

<init-param>
     <param-name>mappedfile</param-name>
     <param-value>false</param-value>
</init-param>


On Fri, May 12, 2017 at 10:28 AM, Vidyadhar <te...@gmail.com>
wrote:

> Hello Team,
>
> Recently we did a upgrade existing tomcat from 7.0.42 to 7.0.76 on windows
> box. Post the up gradation we are seeing following error in couple of JSPs
>
> org.apache.jasper.JasperException: Unable to compile class for JSP:
>
> An error occurred at line: [231] in the generated java file: [C:\Program
> Files\Apache\Tomcat\work\Catalina\localhost\app\org\apache\jsp\jsp\
> applicationChange\applicationChangeMain_jsp.java]
> The code of method _jspService(HttpServletRequest, HttpServletResponse) is
> exceeding the 65535 bytes limit
>
> Stacktrace:
> org.apache.jasper.compiler.DefaultErrorHandler.javacError(
> DefaultErrorHandler.java:103)
> org.apache.jasper.compiler.ErrorDispatcher.javacError(
> ErrorDispatcher.java:366)
> org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:490)
> org.apache.jasper.compiler.Compiler.compile(Compiler.java:379)
> org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
> org.apache.jasper.compiler.Compiler.compile(Compiler.java:341)
> I have checked the various threads on tomcat support archive and did try
> following solution which did not work on 7.0.76 as well as on 7.0.77.
>
> 1. Following changes in conf/web.xml
> <init-param>
>     <param-name>mappedfile</param-name>
>     <param-value>false</param-value>
> </init-param>
> <init-param>
>     <param-name>compiler</param-name>
>     <param-value>modern</param-value>
> </init-param>
> 2. Increased the buffer size.
>
> Can some one suggest some ways to resolve this error, without downgrading
> to 7.0.42
>
>
>
>
> --
> Regards,
> Vidyadhar
>



-- 
Regards,
sagar kohli