当前位置: 首页 > 知识库问答 >
问题:

Tomcat Maven插件-无法编译Jsp页面

裴泰平
2023-03-14

我是Maven构建工具的初学者。为了了解maven,我从eclipse中的原型创建了一个简单的j2ee 1.4 Web应用程序项目。

之后,我在pom.xml中添加了maven tomcat插件。然后我让maven来构建、测试和打包项目。之后,我设定了运行tomcat插件的目标。tomcat插件成功运行,并向我显示了应用部署的链接http://localhost:8080/FirstMavenApp.但是,每当我试图在locahost上测试应用程序时,就会出现Jsp编译错误-

SEVERE: Compilation error

org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
at org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.<init>(ClassFileReader.java:342)
at org.apache.jasper.compiler.JDTCompiler$1.findType(JDTCompiler.java:206)
at org.apache.jasper.compiler.JDTCompiler$1.findType(JDTCompiler.java:163)
at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:96)
at org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.java:49)
at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:97)
at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:167)
at org.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:2187)
at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:974)
at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1164)
at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:366)
at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:623)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:392)
at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:429)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)

Apr 18, 2017 10:02:58 PM org.apache.catalina.core.StandardWrapperValve 
invoke
SEVERE: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP: 


An error occurred at line: 1 in the generated java file
The type java.io.ObjectInputStream cannot be resolved. It is indirectly 
referenced from required .class files

Stacktrace:

at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)

然而,我也试着在eclipse中用配置好的tomcat 7服务器运行这个应用程序,它运行得很好。但是maven tomcat插件显示jsp编译错误。

这是我试图在Pom.xml中使用的tomcat插件

 <plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
</plugin>

这些是依赖关系

<dependencies>
   <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.4</version>
      <scope>provided</scope>
   </dependency>
   <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.2</version>
      <scope>provided</scope>
   </dependency>
   <dependency>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
     <version>4.12</version>
     <scope>test</scope>
  </dependency>

正如我之前所说,我甚至没有创建一个servlet或pojo类。只有一个由maven创建的简单jsp。但是maven tomcat插件无法编译它。

所以我几乎不知道这里出了什么问题。如果有人能帮助我,那就太好了。

共有2个答案

秦德海
2023-03-14

我认为问题在于创建tomcat版本,升级tomcat版本,同时升级其他依赖项的版本。也可以使用jdk 8。

邬英武
2023-03-14

不知怎的,我找到了这个问题的解决方案。这就是更改命令来启动tomcat插件。

运行tomcat 7 2.2版的正确命令是tomcat7:run-X,而不是tomcat:run

如果某人将来面临同样的问题,这可能会有所帮助。

 类似资料:
  • 问题内容: 我是使用库的新手,但是我需要能够向忘记密码的用户发送电子邮件。我正在尝试使用JavaMail和Apache Commons Email来实现这一点。但是,我认为我一定是错误地导入了库。 当我尝试发送电子邮件时,收到以下消息: 编码: 堆栈跟踪: 我已经尝试了几件事: 将包含所有.java文件的org.apache.commons.mail文件夹复制到我的netbeans项目的源文件中,

  • 嗨,我正试图用tomcat编译一个简单的jsp文件,但我一直收到这个错误消息 test.jsp(在Webcontent上) member.java } 据我所知,我有这个问题是因为我的tomcat找不到类文件,所以我把类文件放在 生成/类/pageNumber(其中pageNumber是我的包名) WEB-INF/类/PageNumber Tomcat\work\catalina\localhos

  • 我使用的是最新的TomCat版本,我最近安装了Eclipse Java EE版本,所以它也是最新的版本。顺便说一句,我有最新版本的Java SE(JDK)。 这是我的课: 这是我真正简单的jsp代码: 我得到了这个错误: 类型异常报告 消息无法为JSP编译类: 说明服务器遇到意外情况,无法完成请求。 异常org.apache.jasper.jasperException:无法为JSP编译类: 在生

  • 我是Spring MVC的新手,我试图创建一个简单的Hello World程序,但当我运行该程序时,它显示出以下错误: StackTrace:]根本原因为org.apache.jasper.JasperException:无法为JSP编译类: 在生成的java文件[d:\workspace\springtest1.metadata.plugins\org.eclipse.wst.server.co

  • 每次我在TomCat上运行我的web应用程序时,它都会给我一个错误。这辆车没什么问题。jsp文件,只是我必须重新启动服务器,有时还要重新启动完整的IDE,才能消除这个错误。 错误如下 2014年3月12日下午5:57:01组织。阿帕奇。卡塔琳娜。果心StandardWrapperValve:Servlet。路径为[/Assignment_1_Flight_Reservation_System]的上

  • 我已经尝试了stackoverflow上提到的大多数建议,但还没有找到解决方案。我遇到的错误如下所示。 我正在使用IntelliJ IDEA 2016.2,并应用了这些设置。 →、到 →、到 →→→,到 →→→,到 我使用的是Tomcat V8.0.36,对于JSP servlet有以下内容。 任何建议将不胜感激!