0

以下のコードには、2 つのファイルがあります。1 つはデータベース接続用で、もう 1 つは HTML ベースの jsp ファイル用です。データベースのバージョンを確認して画面に出力しようとしています。CheckVersion の値を返し、out.println を使用して Web ページに配置しようとしています。

次のエラーが発生します。

タイプ例外レポート

メッセージ

説明サーバーで内部エラー () が発生したため、この要求を実行できませんでした。

例外

org.apache.jasper.JasperException: PWC6033: JSP の Javac コンパイルでエラーが発生しました

PWC6199: 生成されたサーブレット エラー: パッケージ com.sun.xml.rpc.processor.modeler.j2ee.xml が存在しません

PWC6199: 生成されたサーブレット エラー: パッケージ databaseFiles が存在しません

PWC6197: 次の行でエラーが発生しました: jsp ファイルの 18: /index.jsp PWC6199: 生成されたサーブレット エラー: シンボルが見つかりません symbol: クラス DatabaseManagement 場所: クラス org.apache.jsp.index_jsp

PWC6197: 次の行でエラーが発生しました: jsp ファイルの 18: /index.jsp PWC6199: 生成されたサーブレット エラー: シンボルが見つかりません symbol: クラス DatabaseManagement 場所: クラス org.apache.jsp.index_jsp

私は何を間違っていますか?私は netbeans を使用していますが、ファイルの作成方法に関する問題は報告されていません。index.jsp はルート領域にあり、DatabaseManagement.java ファイルを保持する databaseFiles という名前のフォルダーを作成しました。

ありがとう。

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package databaseFiles;

import com.sun.corba.se.impl.util.Version;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Aaron
 */
public class DatabaseManagement {
    private final String urlDB = "jdbc:mysql://correct:3306/javaBBS";
    private final String userDB = "correct";
    private final String passwordDB = "correct";
    Connection conDB = null;
    Statement st = null;
    ResultSet rs = null;

    /*
     * 
     * 
     */
    public DatabaseManagement() {

    }

    /*
     * 
     */
    public void OpenConnection()
    {
        try {
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch(Exception e) {
                System.out.println("Could not load database driver");
            }
            conDB = DriverManager.getConnection(urlDB, userDB, passwordDB);
        } catch(SQLException ex) {
            Logger lgr = Logger.getLogger(Version.class.getName());
            lgr.log(Level.SEVERE, ex.getMessage(), ex);
        }
    }

    /*
     * Closes the current database object
     */
    public void CloseConnection() {
        try {
            if (rs != null) {
                rs.close();
            }
            if (st != null) {
                st.close();
            }
            if (conDB != null) {
                conDB.close();
            }
        } catch (SQLException ex) {
            Logger lgr = Logger.getLogger(Version.class.getName());
            lgr.log(Level.WARNING, ex.getMessage(), ex);
        }
    }

     /**
     * Checks the database version
     */
    public String CheckVersion() throws SQLException {
        try {
            st = conDB.createStatement();
            rs = st.executeQuery("SELECT VERSION()");
        } catch(Exception e) {
            System.out.println("Could not get the version of the DB.");
        }
        if (rs.next()) {
            System.out.println(rs.getString(1));
        }
        return rs.getString(1);
    }
}

以下は index.jsp です。

<%-- 
    Document   : index
    Created on : May 30, 2013, 1:48:03 PM
    Author     : Aaron
--%>

<%@page import="com.sun.xml.rpc.processor.modeler.j2ee.xml.string"%>
<%@page import="databaseFiles.DatabaseManagement"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Hello World!</h1>
<%
    out.println("<br/>Your IP address is " + request.getRemoteAddr());
    String userAgent = request.getHeader("user-agent");
    String browser = "unknown";
    out.print("<br/>and your browser is ");
    if (userAgent != null) {
    if (userAgent.indexOf("MSIE") > -1) {
    browser = "MS Internet Explorer";
    }
    else if (userAgent.indexOf("Firefox") > -1) {
    browser = "Mozilla Firefox";
    }
    else if (userAgent.indexOf("Opera") > -1) {
    browser = "Opera";
    }
    else if (userAgent.indexOf("Chrome") > -1) {
    browser = "Google Chrome";
    }
    else if (userAgent.indexOf("Safari") > -1) {
    browser = "Apple Safari";
    }
    }
    out.println(browser);

    DatabaseManagement dbConnector = new DatabaseManagement();
    dbConnector.OpenConnection();
    out.println(dbConnector.CheckVersion());
    dbConnector.CloseConnection();
 %>
    </body>
</html>
4

1 に答える 1

1

プロジェクトのレイアウトが問題だと思います。次のようになります。

root
    WEB-INF
        classes
            databaseFiles
                DatabaseManagement.class
    index.jsp

そのため、コンパイル済みの .class ファイルをWEB-INF/classesディレクトリに配置する必要があり、.jsp ファイルは Web アプリケーションのルート ディレクトリのどこにでも配置できます。また、.java ファイルではなく、.class ファイルを使用していることを確認してください。

于 2013-05-31T14:22:00.063 に答える