0

データベース接続のための非常に単純なメソッドを持つJavaクラスがあります。このコードを使用している間に接続が確立されるのはjspファイルですが、.javaクラスからこのメソッドを呼び出すと例外が発生します。そのメソッドを呼び出すために使用するコードは次のとおりです

  <% db d = new db();
d.db1("testing", "dspace", "dspace");
  %>

コードが.Javaクラスである間、Fallowと同じです

 public boolean  db1 (String db, String username, String pwd) throws SQLException, ClassNotFoundException
                       {
            Connection connection; 

            Class.forName("org.postgresql.Driver");
            connection = DriverManager.getConnection(
                "jdbc:postgresql:5432//127.0.0.1:5432/testing", username,
                pwd);
            if(connection!= null)
                                   {
          System.out.println("done");
            }          
    return false;
    }

エラーがあります

    org.apache.jasper.JasperException: PWC6033: Error in Javac compilation for JSP
4

5 に答える 5

1

DB URL は

"jdbc:postgresql://127.0.0.1:5432/testing"

それ以外の

"jdbc:postgresql:5432//127.0.0.1:5432/testing"

?

于 2013-01-28T07:40:05.933 に答える
1

これを試して

<% 
db d ;
try{
d = new db();
d.db1("testing", "dspace", "dspace");
}catch(Exception e){
 //do something
 }
  %>

コードが実行時例外を処理していないためです。

于 2013-01-28T06:40:09.813 に答える
0

あなたは瓶の間違いを犯していると思いますが、以下のような完全なエラーリストを表示してください:

org.apache.jasper.JasperException: PWC6033: Error in Javac compilation for JSP

PWC6197: An error occurred at line: 9 in the jsp file: /index.jsp
PWC6199: Generated servlet error:
';' expected

より詳細な情報により、問題の解決が容易になります

于 2013-01-28T13:56:43.393 に答える
0

試す

 <% db d = new db();
    try{
       d.db1("testing", "dspace", "dspace");
    }catch(Exception e){
       //wtf?
    }
 %>

記載されていないケースもあります。

  • 接続が切断された場合
  • 接続が閉じている場合
  • 接続がタイムアウトした場合
  • 接続が汚れている場合
  • データベースが使用できなくなった場合
  • データベースが削除された場合
  • データベースサーバーが利用できない場合
  • データベースサーバーがタイムアウトした場合
  • ユーザーが利用できない場合
  • ユーザーが権利を持っていない場合
  • ...

jstl/sql と jndi を使用して db.java を取り除くことができます。

于 2013-01-28T14:07:25.827 に答える
-3

JSP で Class.forname を使用したとは思いません encapsulate を試してください

于 2013-01-28T08:44:38.180 に答える