2016-09-23 21 views
2

Java EE WebアプリケーションでJDBC経由でPostgreSQLデータベースに接続しようとすると問題が発生します。 と同じコードがで、のNetbeansのEclipseでは動作しますが、IntelliJでは動作しません。データベーステーブルから文字列を返し、私は方法のgetName(と、「ConexaoBD」という名前のクラスへのリンクを作っていますJava EE - IntelliJでJDBC経由でデータベースに接続できません

PrintWriter writer = response.getWriter(); 
writer.println("<!DOCTYPE HTML>"); 
writer.println("<html>"); 
writer.println("<body>"); 
writer.println("<h1>TEST H1</h1>"); 
writer.println("<ul>"); 
writer.println("<li>TESTE LI</li>"); 
writer.println("<p>" + ConexaoBD.getName() + "</p>"); 
writer.println("</ul>"); 
writer.println("</body>"); 
writer.println("</html>"); 

)(単に:

私のJava EEアプリケーション次のサーブレットを持っていますテストする)。

私のメソッドはgetName()です。コンソールアプリケーションでは動作しますが、Java EEでは動作しません。

Connection con = null; 
Class.forName("org.postgresql.Driver"); 
Properties props = new Properties(); 
String url = "jdbc:postgresql://localhost/customers"; 
props.setProperty("user","postgres"); 
props.setProperty("password","pass"); 
props.setProperty("ssl","true"); 
con = DriverManager.getConnection(url, props); 
Statement st = con.createStatement(); 
ResultSet rs = st.executeQuery("select * from table limit 1"); 
return rs.getString(2); 
+0

完全なスタックトレースを投稿できますか? –

答えて

0

これは、Java EEアプリケーションのデータベースに接続する方法ではありません。 name="java:global/jdbc/myDataSource"とDataSourceがそのマニュアルに従って、アプリケーションサーバーで設定されている

public class SomeService { 

     @Resource(name="java:global/jdbc/myDataSource") 
     private DataSource ds; 

     public String performSomeQuery(...) { 

      try (Connection con = ds.getConnection(); 
       Statement st = con.createStatement()) { 
       ResultSet rs = st.executeQuery("select * from table limit 1"); 
       return rs.getString(2); 
      } 

     } 

} 

通常、次のようなものになり、コードを持っているでしょう。この構成には、JDBC URLや認証情報などが含まれます。

+0

私はそれを知らなかった!ありがとう、と私のプロジェクトで確かにこれを試してみます。 –

0

エラースタックトレースを送信できますか。一方、クラスパス(Libフォルダ)にドライバjarが適切に追加されているかどうかを確認します。

+0

はい、それはこのようなものでした。 私はすでに外部ライブラリフォルダに.jarを持っていましたが、私のサーブレットがjdbc接続用のドライバを認識していなかったので、WEB-INF - > libフォルダにそれを置く必要がありました。 その解決済みです。 –

関連する問題