Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSP/Tomcat开发:intellij idea是否自动将包移动到web inf文件夹?_Jsp_Tomcat_Intellij Idea - Fatal编程技术网

JSP/Tomcat开发:intellij idea是否自动将包移动到web inf文件夹?

JSP/Tomcat开发:intellij idea是否自动将包移动到web inf文件夹?,jsp,tomcat,intellij-idea,Jsp,Tomcat,Intellij Idea,我遇到以下错误问题: HTTP Status 500 - -------------------------------------------------------------------------------- type Exception report message description The server encountered an internal error () that prevented it from fulfilling this reque

我遇到以下错误问题:

    HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

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

An error occurred at line: 9 in the generated java file
Only a type can be imported. com.test.util.ConnectionManager resolves to a package

An error occurred at line: 31 in the jsp file: /test.jsp
EmployeeDAO cannot be resolved to a type
28:                 <td>Job Title</td>
29:                 <td>Hire Date</td>
30:             </tr>
31:             <%  EmployeeDAO em = new EmployeeDAO();
32:             Connection ct = ConnectionManager.getInstance().getConnection();
33:             ResultSet rs = em.selectByFirstNameRS(empN,ct);
34:             try {


An error occurred at line: 31 in the jsp file: /test.jsp
EmployeeDAO cannot be resolved to a type
28:                 <td>Job Title</td>
29:                 <td>Hire Date</td>
30:             </tr>
31:             <%  EmployeeDAO em = new EmployeeDAO();
32:             Connection ct = ConnectionManager.getInstance().getConnection();
33:             ResultSet rs = em.selectByFirstNameRS(empN,ct);
34:             try {


An error occurred at line: 32 in the jsp file: /test.jsp
ConnectionManager cannot be resolved
29:                 <td>Hire Date</td>
30:             </tr>
31:             <%  EmployeeDAO em = new EmployeeDAO();
32:             Connection ct = ConnectionManager.getInstance().getConnection();
33:             ResultSet rs = em.selectByFirstNameRS(empN,ct);
34:             try {
35:                     if(rs != null) {%>


An error occurred at line: 53 in the jsp file: /test.jsp
ConnectionManager cannot be resolved
50:             } catch (Exception e) {
51:                 e.printStackTrace();
52:             } finally {
53:                 ConnectionManager.getInstance().releaseConnection(ct);
54:             }%>
55:         </table>
56:             <a href="index.html">Return to search</a>


Stacktrace:
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


Note The full stack trace of the root cause is available in the Apache Tomcat/6.0.33 logs.


--------------------------------------------------------------------------------

Apache Tomcat/6.0.33
和test.jsp:

<%@ page import="com.sun.xml.internal.ws.wsdl.writer.document.xsd.Import" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="com.test.dao.*" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="com.test.util.ConnectionManager" %>
<%@ page import="java.sql.ResultSet" %>
<% String empN = request.getParameter("empName"); %>
<html>
<head><title>Employee Test Web App</title></head>
<body>
        Your results are:

        <table cellpadding="15" border="1" style="background-color: #ffffcc;">
            <tr>
                <td>Employee ID</td>
                <td>First Name</td>
                <td>Last Name</td>
                <td>Company Name</td>
                <td>Department Name</td>
                <td>Job Title</td>
                <td>Hire Date</td>
            </tr>
            <%  EmployeeDAO em = new EmployeeDAO();
            Connection ct = ConnectionManager.getInstance().getConnection();
            ResultSet rs = em.selectByFirstNameRS(empN,ct);
            try {
                    if(rs != null) {%>
                        <%while (rs.next()) {%>
                        <tr>
                            <td><%=rs.getInt(1)%></td>
                            <td><%=rs.getString(2)%></td>
                            <td><%=rs.getString(3)%></td>
                            <td><%=rs.getString(4)%></td>
                            <td><%=rs.getString(5)%></td>
                            <td><%=rs.getString(6)%></td>
                            <td><%=rs.getString(7)%></td>
                        </tr><%
                        }
                    }else{
                        %> <tr>Table empty</tr> <%
                    }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                ConnectionManager.getInstance().releaseConnection(ct);
            }%>
        </table>
            <a href="index.html">Return to search</a>
  </body>
</html>
有些想法是自己提出的。这是我的文件路径:


请提供帮助。

查看WAR文件或分解的WAR目录的内容会有所帮助

通常IntelliJ会将构建路径中的所有内容复制到WAR中的适当位置,但有时,对于某些文件类型,IntelliJ并不总是注意到更改。在本例中,这不应该是一个问题,因为它是一个类文件。我认为它认为com.test.util.ConnectionManager是一个包也很奇怪


我的建议是,在执行构建之前,确保停止tomcat,如果这没有帮助,因为我真的不认为它会检查您的WAR工件的设置,并确保它拉入了所有正确的文件。

项目结构正确,intellij处理了所有事情。解析错误是必须首先更正的内部运行时错误的产物。为了找到它,我使用了tomcat日志。感谢您的帮助。

我没有一起使用Intellij和Tomcat。但我不认为这是IDE的问题所在。要检查它,可以单击Build->Build Test.war分解工件。现在在proj目录中会有一个out文件夹。打开该文件夹,查看类文件是否进入工件。Out文件夹有3个子文件夹:工件、生产和测试。这些课程正在测试中。它们应该在那里吗?如果你已经创建了war文件,在artifact下,应该有一个分解的war文件。在war文件下,查找web_inf下的类。如果不起作用,请进入聊天室。我在原始文件上发布了一个指向项目结构图片的链接,但这里又是:希望这也有帮助:项目结构下的工件您需要查看部署到tomcat的生成的WAR文件或分解的WAR目录中的实际内容。从您的第二个屏幕截图来看,它看起来应该在Test\out\artifacts\Test\u war\u中,在您进行构建之后,它会爆炸。
<%@ page import="com.sun.xml.internal.ws.wsdl.writer.document.xsd.Import" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="com.test.dao.*" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="com.test.util.ConnectionManager" %>
<%@ page import="java.sql.ResultSet" %>
<% String empN = request.getParameter("empName"); %>
<html>
<head><title>Employee Test Web App</title></head>
<body>
        Your results are:

        <table cellpadding="15" border="1" style="background-color: #ffffcc;">
            <tr>
                <td>Employee ID</td>
                <td>First Name</td>
                <td>Last Name</td>
                <td>Company Name</td>
                <td>Department Name</td>
                <td>Job Title</td>
                <td>Hire Date</td>
            </tr>
            <%  EmployeeDAO em = new EmployeeDAO();
            Connection ct = ConnectionManager.getInstance().getConnection();
            ResultSet rs = em.selectByFirstNameRS(empN,ct);
            try {
                    if(rs != null) {%>
                        <%while (rs.next()) {%>
                        <tr>
                            <td><%=rs.getInt(1)%></td>
                            <td><%=rs.getString(2)%></td>
                            <td><%=rs.getString(3)%></td>
                            <td><%=rs.getString(4)%></td>
                            <td><%=rs.getString(5)%></td>
                            <td><%=rs.getString(6)%></td>
                            <td><%=rs.getString(7)%></td>
                        </tr><%
                        }
                    }else{
                        %> <tr>Table empty</tr> <%
                    }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                ConnectionManager.getInstance().releaseConnection(ct);
            }%>
        </table>
            <a href="index.html">Return to search</a>
  </body>
</html>