Java 无法在tomcat中手动解析为JSP编译部署中的类型

Java 无法在tomcat中手动解析为JSP编译部署中的类型,java,jsp,tomcat,servlets,Java,Jsp,Tomcat,Servlets,我不熟悉Java的Web开发。我正在尝试在ApacheTomcat(9.0.17)中部署web应用程序。我已经安装了预装Java OpenJDK的Linux操作系统。我不能编译JSP 终端中“java-版本”的输出: openjdk version "1.8.0_202" OpenJDK Runtime Environment (build 1.8.0_202-b26) OpenJDK 64-Bit Server VM (build 25.202-b26, mixed mode) 我已经将我的

我不熟悉Java的Web开发。我正在尝试在ApacheTomcat(9.0.17)中部署web应用程序。我已经安装了预装Java OpenJDK的Linux操作系统。我不能编译JSP

终端中“java-版本”的输出:

openjdk version "1.8.0_202"
OpenJDK Runtime Environment (build 1.8.0_202-b26)
OpenJDK 64-Bit Server VM (build 25.202-b26, mixed mode)
我已经将我的java包放在TOMCAT_INSTALLATION_DIR/webapps/app/WEB_INF/classes/中。 在classes目录中,我有一个名为abc的java包。在这里面,我放了Test.java

package abc;
public class Test{
    public  String f(){
            return ("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
    }
    public Test(){
        System.out.println("I am created");
    }
}
下面是Test.java中的代码

package abc;
public class Test{
    public  String f(){
            return ("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
    }
    public Test(){
        System.out.println("I am created");
    }
}
我成功地编译了它,并将它放在Test.java文件所在的目录中(在abc目录中)

我在web-INF文件夹中创建了web.xml。 web.xml中的内容:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>app</display-name>
  <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>


应用程序
index.jsp
我在app/目录中有index.jsp文件。 JSP的内容:

<%@ page  import="abc.*"%>
<!DOCTYPE html>
<html>
<head>

<title>Insert title here</title>
</head>
<body>
    <%
    Test cc=new Test();
    cc.f();
    %>
</body>
</html>


在此处插入标题
我在安装目录中的bin目录中通过./cataline.sh run命令运行apache。然后我打开localhost:8080/appuri。我犯了个错误

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

An error occurred at line: [10] in the jsp file: [/index.jsp]
Test cannot be resolved to a type
7: </head>
8: <body>
9:  <%
10:     Test cc=new Test();
11:     cc.f();
12:     %>
13: </body>


An error occurred at line: [10] in the jsp file: [/index.jsp]
Test cannot be resolved to a type
7: </head>
8: <body>
9:  <%
10:     Test cc=new Test();
11:     cc.f();
12:     %>
13: </body>


Stacktrace:
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103)

org.apache.jasper.jaspereException:无法为JSP编译类:
jsp文件:[/index.jsp]中的第[10]行出错
无法将测试解析为类型
7: 
8: 
9:  
13: 
jsp文件:[/index.jsp]中的第[10]行出错
无法将测试解析为类型
7: 
8: 
9:  
13: 
堆栈跟踪:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103)

感谢您对问题的详细说明。我根据这些详细信息设置了web应用程序,发现了两个问题:

  • 它不是WEB\U INF,而是WEB-INF。请检查文件夹名称是否确实是WEB-INF
  • 下面是
    更新后的index.jsp
    ,以便在网页上显示返回的值。JSP文件中的代码在tomcat服务器中执行,任何System.out.println行都将记录在服务器日志中(即tomcat_INSTALLATION_DIR/logs/catalina.out)。类似地,函数调用返回的值也不会显示,除非您使用
  • 
    在此处插入标题
    
    如果这些更改不起作用,请粘贴Tomcat安装目录下所有文件的整个文件夹结构的屏幕截图?我问这个问题,因为其他一切都是正确的,这对我来说是有效的


    谢谢@deepak。这只是WEB-INF的命名问题。@KavarRushikesh我很高兴能帮上忙