title: How do I keep Weblogic from using an ExpressionInterceptor?
body: <p>I am working on migrating a website from Java 6, running on Weblogic 11g (10.3.5) to Java 8, running Weblogic 12c (12.1.3).  I have found several issues (it helps that others on my team have tried it before, without enough success), but one seems insurmountable, and I can't find out anything about it.</p>
  
  <p>One of our JSPs fails to load in the browser with a <code>weblogic.servlet.jsp.CompilationException</code>, complaining that "The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit."  Examining the differences between the generated <code>.java</code> file for the JSP in two versions of Weblogic, I see that each JSP expression is wrapped in an ExpressionInterceptor.</p>
  
  <p>For example, in WebLogic 10 running Java 6, <code>&lt;%=user.getLanguage()%&gt;</code> becomes <code>out.print(user.getLanguage());</code>.  In WebLogic 12 running Java 8, it becomes:</p>
  
  <pre><code>out.print(_jsp_expressionInterceptor.intercept(
      String.valueOf(user.getLanguage()), pageContext,
      weblogic.servlet.jsp.ExpressionInterceptor.Type.Scripting));
  </code></pre>
  
  <p>It seems to me that the extra few method calls - 2 method calls, about 250 times in the file - is enough to bring the <code>_jspService</code> method above the 64K limit.  (The method size in Java 6, based on output from <code>javap</code>, is 62912 bytes, so that makes sense.)</p>
  
  <p>My question is: is there any way to keep Weblogic from generating the calls to the <code>ExpressionInterceptor</code>?</p>
  
  <p>Thanks.</p>