2012-03-21 72 views
1

我正在學習Servlets/jsps並編寫了一些測試類。一切似乎按預期工作,我遇到的唯一問題是能夠編譯一個簡單的Java類。這是類:類不會在Eclipse中的動態Web項目中編譯

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> 
+0

問題出在您的JSP中,請張貼它。服務器無法編譯JSP,它不是關於您的Java類('無法編譯JSP的類')。 – home 2012-03-21 13:48:57

+0

同意; JSP與它有關,也許你想如何導入。並不是說我們應該將類導入到JSP中。 – 2012-03-21 13:53:10

+0

我也嘗試添加一個主要方法,並自行編譯/運行類。它也不會編譯。 – webhound 2012-03-21 14:19:51

回答

1

你不能在JSP文件中普通的Java爲您展示在這裏..

在Eclipse中的相​​應的源文件夾此創建一個單獨的類。

+0

這是一個單獨的課程。這就是班級中的所有代碼。 – webhound 2012-03-21 14:31:59

+0

您的構建系統已損壞。嘗試導出到WAR並調查WEB-INF /類層次結構。 – 2012-03-21 17:26:14

+0

我認爲你的權利,構建系統無法正常工作。我在另一臺電腦上嘗試過同樣的項目,並且一切正常。 – webhound 2012-03-22 04:48:59

0

同意以前的評論。它看起來像,你試圖直接從你的JSP建立數據庫連接。

請檢查JSP中的行,特別是在jsp中設置驅動程序的位置。

你也可以從你的jsp試試這個。

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

JSP中只有一個jspInit()方法中的DatabaseConnection對象的導入指令和實例化。 – webhound 2012-03-21 14:34:36

+0

jspInit()方法是JSP翻譯階段生成的方法。無論你在jsp中寫什麼,都會在Java類中進行翻譯。你有沒有嘗試寫一個scriptlet連接到你的數據庫? – conceptSeeker 2012-03-21 14:58:52

+0

也許這只是init()。我正在記憶中。我知道它工作正常,直到我添加了導入語句和對象實例化。當我回家後,我會在大約3個小時後發佈實際的JSP。 – webhound 2012-03-21 15:02:31