zjcfan
发贴: 4
积分: 0
|
于 2005-01-01 02:15
由于在回贴中没有再回我,所以在这里加贴 (解决编译问题,如下解决的,但出现了新的问题),我用的是jboss-3.2.6+JBuilderX(系统XP SP2)
环境变量设置了JBOSS_HOME,JAVA_HOME,ANT_HOME,在JB中配置好了服务器,只要没有JSP的情况下编译正常,编译JSP的时候出现错误: "test.jsp": java.lang.NoClassDefFoundError: org/apache/jasper/JspC 将编译JSP的类的包(jasper-compiler.jar,jasper-runtime.jar)引入以后,再次编译JSP,又出现以下错误: "test.jsp": java.lang.NoClassDefFoundError: org/apache/tools/ant/AntClassLoader
都不知道它为什么又要ANT,所以再一次把ANT的所以包都引入.最后编译入通过(不过我觉得有必要这么麻烦吗,是不是我哪里弄错了,JBX里面也没有多少地方可以配置的呀...??)
=======>>接下来是新的问题(不知道是不是刚才那个处理方法的影响): 我把当时做好的WAR包放到\jboss-3.2.6\server\default\deploy, 运行run.bat,访问这个JSP的时候出现以下错误 ( JSP 使用的是JBX自已生成的 test.jsp): E:\jboss-3.2.6\server\default\work\jboss.web\localhost\WebTest\org\apache\jsp\test_jsp.java:7: org.apache.jsp.test_jsp is not abstract and does not override abstract method getIncludes() in org.apache.jasper.runtime.HttpJspBase public final class test_jsp extends org.apache.jasper.runtime.HttpJspBase ^ 1 error org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84) org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:332) org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:412) org.apache.jasper.compiler.Compiler.compile(Compiler.java:472) org.apache.jasper.compiler.Compiler.compile(Compiler.java:451) org.apache.jasper.compiler.Compiler.compile(Compiler.java:439) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) javax.servlet.http.HttpServlet.service(HttpServlet.java:810) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
=======>>经过我的查看,发现以下情况: ==>查看编译过的文件 在我的工程目录里的..\classes\Generated Source\下生成的JSP的的确确是override了getIncludes()这个方法的: public class test_0002ejsp_jsp extends HttpJspBase { ... public java.util.List getIncludes() { return _jspx_includes; } ... } ==>再看JBOSS部署后的\jboss-3.2.6\server\default\work\jboss.web\localhost\WebTest\org\apache\jsp中的JSP(编译后的) public final class test_jsp extends org.apache.jasper.runtime.HttpJspBase implements org.apache.jasper.runtime.JspSourceDependent { ... public java.util.List getDependants() { return _jspx_dependants; } ... } 在JBOSS中又实现了一个接口(这个接口我没有在runtime包中找到),而前面的那个getIncludes()方法掉了,这个方法是HttpJspBase类的抽象方法,在这里没有实现所以才报错(上面列的错误信息).
<问题>:为什么JBX中编译生成的JAVA类文件和JBoss部署后生成的不一样?怎样解决不能访问这个JSP的问题?
请赐教! 跪谢先...
|