`
eils2000
  • 浏览: 50365 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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

阅读更多

jboss-4.0.5.GA\server\default\deploy\jbossweb-tomcat55.sar\conf\web.xml中中有这么一段配置:

<init-param>
         <param-name>compilerSourceVM</param-name>
         <param-value>1.5</param-value>
</init-param>

 

这段配置的作用是用java 1.5去编译jboss下的web应用,包括jsp,jboss4默认将这段配置注释掉了,所以jboss4.0.5下的web应用是用java1.4去编译的。

这是一段jsp代码:

    keyStat = (KeyStat) request.getSession().getAttribute("k");
    size = keyStat.getDataValue1().size();
    for (int i = 0; i < size; i++) {
        if (keyStat.getDataValue1().get(i) == 0) {
            request.getSession().setAttribute("h", "0");
        } else {
            request.getSession().setAttribute(
                    "h",
                    100.0 * keyStat.getDataValue2().get(i) / 100.0
                            / keyStat.getDataValue1().get(i));
        }

  keyStat.getDataValue2().get(i) 中保存的是Long型的数据,在java 1.4下,double*Long是不允许的,所以上面这段jsp代码会报错:

Incompatible operand types Object and int


	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:414)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:297)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:305)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	com.taobao.common.stat.web.ReportServlet.index(ReportServlet.java:247)
	com.taobao.common.stat.web.ReportServlet.doPost(ReportServlet.java:111)
	com.taobao.common.stat.web.ReportServlet.doGet(ReportServlet.java:88)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

 

因此需要激活文首提到的配置,让jboss用java 1.5去编译 部署在它上面的应用。

 

 

 

分享到:
评论
2 楼 feitianxia007 2014-07-23  
刚刚用jboss  ,就遇到这个问题了。

谢谢分享! 学习了 。
1 楼 zxjllz 2010-08-13  
你篇文章解决了我很大的问题,在下刚学EJB,谢谢了!

相关推荐

Global site tag (gtag.js) - Google Analytics