我有一个从我的classes目录中的package文件夹导入的jsp文件。当我尝试使用它时,我得到“无法编译”和“无法解析为类型”错误。这是我的代码。
<%@ page language="java" import="cs5530.*" %>
<html>
<head>
<script type="text/javascript">
function showInvalid()
{
document.getElementById("invalid").style.display = 'block';
document.getElementById("loginForm").reset();
}
</script>
</head>
<body>
<p>Welcome to FlixNet. Sign In</p>
<form name="loginForm" method="post" action="index.jsp">
User Name: <input type="text" name="username"><br>
Password: <input type="Password" name="password"><br>
<input type="submit" value="Submit">
<div id="invalid" style="display:none">
<p>Invalid username or password</p>
</div>
</form>
<%
Connector con = new Connector();
con.closeConnection();
%>
</body>
</html>
这是错误
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 23 in the jsp file: /index.jsp
Connector cannot be resolved to a type
20: </div>
21: </form>
22: <%
23: Connector con = new Connector();
24: con.closeConnection();
25: %>
26: </body>
An error occurred at line: 23 in the jsp file: /index.jsp
Connector cannot be resolved to a type
20: </div>
21: </form>
22: <%
23: Connector con = new Connector();
24: con.closeConnection();
25: %>
26: </body>
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:334)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
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)
这是我的文件结构
public_html
index.jsp
|WEB-INF
|classes
mysql.jar
|cs5530
Connector.java
Connector.class
other java and class files.
我的Connector类位于包cs5530下,因此不是问题。连接器类是我测试过的简单数据库连接器类,它可以工作。
答案 0 :(得分:1)
将jar复制到WEB-INF/lib/
目录中,然后重新启动Web容器
答案 1 :(得分:0)
请检查Connector.class
是否真正导入。看起来你没有导入它。
答案 2 :(得分:0)
尝试
<%@ page import="cs5530.*" %>
答案 3 :(得分:0)
这是因为我不负责我的Tomcat服务器。显然,如果发生重大变化,需要对其进行清理。我的代码一尘不染。
答案 4 :(得分:0)
这是因为描述您尝试导入的包的xxx.jar文件必须直接在lib文件夹中。例如:WebContent / WEB-INF / lib / xxx.jar。如果它只能找到/ lib中的包文件夹,那么即使你的.jar在这个包文件夹中,它仍然足以创建错误,它只能解析为'package'而无法解析为'type'。
答案 5 :(得分:0)
您的.jsp文件顶部缺少导入:
<%@页面import =“ packageWhatever.packageWhatever.ClassName”%>
问题的简化示例:
JSP文件:
错误:
Select-AzureSubscription
正确:
<html><body><h1>
<%= Main.TEST_FUNCTION() %>
</h1></body></html>
文件已导入:
<%@ page import="launch.Main" %>
<html><body><h1>
<%= Main.TEST_FUNCTION() %>
</h1></body></html>
使用的堆栈:Java + Tomcat + Maven