アプリケーションサーバーとしてJBossAS7.1.1.Finalを使用しています。
JBoss Communityユーザーフォーラムに質問を投稿しました:question-here
以下に再現:
MacBookProにAS7.1.1.Finalをインストールしました。
クイックスタートの例をダウンロードしました。helloworld、jboss-as-greeterwarsのデプロイとテストに成功しました。
次に、postgresqlデータベースエンジンをセットアップして、jboss-as-cmtの例を試します。コンパイルしてデプロイすることができました。
1つを除いて、すべてがうまく機能します。アプリケーションサーバーに付属しているh2consoleWebアプリからpostgresqlデータベースに接続できません。
jboss-as-cmt戦争は完全に機能します。つまり、請求書に顧客を追加できます。私はdbエンジンにpsqlすることができ、すべてのレコードを見ることができます。私の唯一の問題は、h2consolewebappを使用して作成したjboss-as-cmtpostgresデータベースにアクセスできないことです。
ドライバークラスフィールドに「org.postgresql.Driver」を使用しています。JDBC URLの場合は「jdbc:postgresql://127.0.0.1:5432/jboss-as-cmt」。これは、standalone-full.xml構成ファイルで設定したconnection-url値と同じです。ユーザー名とパスワードは「sa」。
h2consoleアプリの[接続のテスト]ボタンを押すと、残念ながら次のように表示されます-
Class "org.postgresql.Driver" not found [90086-161]
org.h2.message.DbException: Class "org.postgresql.Driver" not found [90086-161]
at org.h2.message.DbException.get(DbException.java:158)
at org.h2.util.Utils.loadUserClass(Utils.java:429)
at org.h2.util.JdbcUtils.getConnection(JdbcUtils.java:146)
at org.h2.server.web.WebServer.getConnection(WebServer.java:653)
at org.h2.server.web.WebApp.test(WebApp.java:839)
at org.h2.server.web.WebApp.process(WebApp.java:215)
at org.h2.server.web.WebApp.processRequest(WebApp.java:164)
at org.h2.server.web.WebServlet.doGet(WebServlet.java:118)
at org.h2.server.web.WebServlet.doPost(WebServlet.java:153)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)
at java.lang.Thread.run(Thread.java:680)
Caused by: org.h2.jdbc.JdbcSQLException: Class "org.postgresql.Driver" not found [90086-161]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
... 24 more
Caused by: java.lang.ClassNotFoundException: org.postgresql.Driver from [Module "com.h2database.h2:main" from local module loader @b4e29b (roots: /Users/avyayatek/Downloads/jboss-as-7.1.1.Final/modules)]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.h2.util.Utils.loadUserClass(Utils.java:424)
... 22 more
jboss管理管理コンソール(http:// localhost:9990 / console)からデータソースへの正常な接続を確立できます。データソースプロファイルパネルで、データソースの名前を「postgresDS」に設定し、jndiを「java:jboss/postgresDS」に設定しています。接続URLは、h2consoleで使用しているものと同じです-"jdbc:postgresql://127.0.0.1:5432 / jboss-as-cmt"
h2consoleがpostgresqlデータベースエンジンに接続していない理由がわかりません。これにより、jboss-as-greeterの例で使用されているh2インメモリデータベースへの接続が成功します。
JDBCドライバーを$JBOSS_HOME/ modules / org / postgresql/mainフォルダーに配置しました。そこでmodule.xmlを作成しました。jar内の〜/ org /postgresql/フォルダーにDriver.classファイルがあります。$ JBOSS_HOME / Standalone / configuration / Standalone-full.xmlを変更して、postgresql関連のデータソースとドライバーのセクションを追加しました。
私が言ったように、jboss-as-cmtをビルドしてデプロイすることができ、期待どおりに機能します。h2consoleをこのpostgresqlデータベースに接続させることができれば、ある程度の安心感が得られます。
私は一般的にJBossとサーバーサイドのものの初心者です。
参考までに写真を添付しました。
御時間ありがとうございます。
どんな考えでも大歓迎です。あなたの洞察と時間をありがとう。