类不会在Eclipse中的Dynamic Web Project中编译

时间:2012-03-21 13:45:42

标签: java eclipse dynamic

我正在学习Servlets / jsps并编写了一些测试类。一切似乎按预期工作,我遇到的唯一问题是能够编译一个简单的Java类。这是班级:

package ilya.model;

public class DatabaseConnection {

public String getConnection()
{
    String result;
    try {
        Class.forName("org.postgresql.Driver");
        System.out.println("found the driver");
        result = "Connection established!";
    }
    catch (ClassNotFoundException e)
    {
        System.out.println("No driver");
        result = "No Connection";
    }

    return result;
}

}

尝试访问它的jsp非常简单,我不认为它与它有任何关系。如果有人要我发布,请告诉我。

这是我第一次初始化课时收到的异常:

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

An error occurred at line: 15 in the generated java file
Only a type can be imported. ilya.model.DatabaseConnection resolves to a package

这在常规Java项目中编译良好。有什么想法吗?

更新 这是JSP文件。它现在实际上正在运作。我在不同的机器上尝试了相同的项目,一切正常。 Eclipse必定有问题。

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="ilya.model.BeerSuggestor, ilya.model.DatabaseConnection" %>
<%! 
int count=0; 
String connect;

public void jspInit() {
        ServletConfig sconfig = getServletConfig();
        String lname = sconfig.getInitParameter("lastName");
        ServletContext context = sconfig.getServletContext();
        context.setAttribute("lastName", lname);
    }
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
  "http://www.w3.org/TR/html4/loose.dtd">      
<html>
<head>
<%-- DatabaseConnection intialized here --%>
<% 
DatabaseConnection db = new DatabaseConnection();
connect = db.getConnection(); 
%>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<p>The count is: <%= this.count++ %></p>
<p>The count is: <%= 500 %></p>
<p>The count is: <%= config.getInitParameter("lastName") %></p>

<%-- Value of connect printed here --%>
<p>The connection result is: <%=" " + connect %>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

您在此处显示的JSP文件中不能使用普通Java ..

在Eclipse中的相​​应源文件夹中为此创建一个单独的类。

答案 1 :(得分:0)

同意先前的意见。看起来,您正在尝试直接从JSP建立数据库连接。

请检查JSP中的行,特别是在jsp中设置驱动程序的位置。

你也可以从你的jsp尝试这个。

<%
 Class.forName("org.postgresql.Driver");
 Connection myConn=DriverManager.getConnection("jdbcostgresql://localhost/db_name?user=db_user&password=db_pwd");
%>