Класс не будет компилироваться в динамическом веб-проекте в Eclipse - PullRequest
1 голос
/ 21 марта 2012

Я изучаю 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 ]

1 голос
/ 21 марта 2012

У вас не может быть простой Java в файлах JSP, как показано здесь ..

Создайте отдельный класс в соответствующей исходной папке внутри Eclipse для этого.

0 голосов
/ 21 марта 2012

Согласен с предыдущими комментариями. Похоже, вы пытаетесь установить соединение с базой данных непосредственно из вашего JSP.

Пожалуйста, проверьте строку в JSP, особенно там, где вы устанавливаете драйвер в jsp.

Вы также можете попробовать это из своего jsp.

<%
 Class.forName("org.postgresql.Driver");
 Connection myConn=DriverManager.getConnection("jdbcostgresql://localhost/db_name?user=db_user&password=db_pwd");
%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...