gpt4 book ai didi

java - 当我在 eclipse gwt 项目中运行我的代码时,无法为 JSP 错误编译类

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:54:23 26 4
gpt4 key购买 nike

您好,当我尝试访问我的 gwt 项目中的 jsp 页面时出现以下错误。其他非 jsp 页面访问正常。

奇怪的是,当 GWT SDK 按构建路径顺序移动到底部时,我能够看到 JSP 文件,这给出了另一个错误,即未安装 GWT SDK

有人能帮帮我吗?

org.apache.jasper.JasperException: Unable to compile class for JSP
Generated servlet error:
2016/01/07 14:30:51:128 IST [ERROR] Compiler - Javac exception <Compile failed; see the compiler error output for details.>Compile failed; see the compiler error output for details.
at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:933)
at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:757)
at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:379)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494)
at com.rapapp.gwt.server.common.util.CompressionFilter.doFilter(CompressionFilter.java:113)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
at com.rapapp.gwt.server.common.util.CacheFilter.doFilter(CacheFilter.java:69)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:68)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:370)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Unknown Source)



Generated servlet error:
2016/01/07 14:30:51:129 IST [ERROR] Compiler - Env: Compile: javaFileName=/C:/Users/USER/AppData/Local/Temp/jetty-127.0.0.1-8888-war-_-any-//org/apache/jsp\login_jsp.java

最佳答案

因为您没有提供 login.jsp文件,所以我想分享一些解决这个问题的建议。

  1. 使用最新的 tomcat - http://www.howopensource.com/2015/07/unable-to-compile-class-for-jsp-the-type-java-util-mapentry-cannot-be-resolved/

  2. jsp-api由您提供Servlet container .至少使用 2.1版本。更改 pom.xml 中的依赖项

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
  1. class name处使用你的bean将写成 package name .例如,
<%@ page import="com.Test.Person" %> 
<html>
<head></head>
<body>
<jsp:useBean id="person" class="com.Test.Person" scope="request" />
<jsp:setProperty name="person" property="name" value="Tripti" />
This JSP Page is created by:<jsp:getProperty name="person" property="name" />

</body>
</html>
  1. Tomcat 容器缓存 .java.class生成的文件Web 应用程序使用它们的 JSP 解析器。有时这些得到已损坏或无法找到。 这可能发生在补丁或包含对 JSP 修改的升级

Resolution

  • 删除 <JIRA_INSTALL>/work 的内容文件夹,如果使用 standalone JIRA<CATALINA_BASE>/work如果使用 EAR/WAR安装。
  • 验证运行 JIRA 应用程序进程的用户具有读/写权限对 <JIRA_INSTALL|CATALINA_BASE>/work 的许可目录。
  • 重新启动 JIRA 应用程序容器以重建文件。

还有一些其他的方法--

  1. 在现代 Java 中不鼓励不在包内的类,对于在许多情况下它们不起作用的地方。把你的课放入包中(使用 .java 顶部的包语句文件)——所有这些。

  2. 此问题是由 JspServlet 使用的默认值生成的,它使用 1.4 编译源/目标值。

您可以通过添加配置此 servlet

<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>compilerSourceVM</param-name>
<param-value>1.5</param-value>
</init-param>
<init-param>
<param-name>compilerTargetVM</param-name>
<param-value>1.5</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
  1. 还有一个问题是您无法使用当前的 jasper-compiler-5.0.28 配置 JspServlet .你应该下载jasper-compiler-5.0.30make sure is in your classpath before gwt .还有其他最新的 jasper 编译器 jars,但我不关心与 jakarta-tomcat-5.0.28 的兼容性如何。

  2. https://code.google.com/archive/p/raisercostin/wikis/GwtEclipsePluginDebug.wiki

  3. 这可能是jar冲突造成的。删除 servlet-api.jar在你的servlet/WEB-INF/目录,%Tomcat home%/lib已经有了这个库。

  4. 每次我看到这些错误都是因为找不到 jasperjava编译器。试着把 tools.jar在你的common/lib看看是否然后服务工作..

关于java - 当我在 eclipse gwt 项目中运行我的代码时,无法为 JSP 错误编译类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34651119/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com