- - PR -
weblogicでjndiの利用
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-09-27 15:37
JNDIは利用したことがない初心者なのですが、今回、JNDIを利用してwebアプリケーションからDB(postgre SQL)への接続を行おうと考えています。方法を調べていると、tomcatの場合の方法は見つかったのですが、weblogicの場合の設定ファイル記述方法が見つかりません。
tomcatではweb.xmlとserver.xmlに記述を行うようなのですが、アプリケーションサーバがweblogic7の場合はどのファイルに何の記述をすればよいのか分からないのです。 ちなみにjava言語を使用してまして、プログラム中からは DataSource datasource = context.lookup("java:comp/env/jdbc/resourcename"); のようにしてデータソースを取得しています。"jdbc/resourcename"の部分を設定ファイルに定義しなくてはならないと思うのですが、どなたか設定方法、若しくは設定方法の調べられるサイトをご存知ないでしょうか。 | ||||||||||||||||
|
投稿日時: 2004-09-27 16:30
Weblogicの場合は設定ファイル直書きしなくても
consoleからGUIで設定ができますよ。 たぶん接続プールの設定とデータソースの設定を すればOKかと。 # その時割り当てたJNDI名で検索すれば使える | ||||||||||||||||
|
投稿日時: 2004-09-27 16:55
WebLogicならオンラインでマニュアルが見られます。
http://edocs.beasys.co.jp/e-docs/wls/docs70/index.html | ||||||||||||||||
|
投稿日時: 2004-09-28 13:32
どうもありがとうございます。コンソールから設定で接続プールの作成から行ってみました。
接続プールが 名前: MyJDBC Connection Pool URL: jdbc:postgresql:test ドライバ クラス名: org.postgresql.Driver プロパティ:user=dbuser password=password useUnicode=true characterEncoding=Windows-31J とし、データソースが 名前: MyJDBC Data Source JNDI 名: myjndi プール名: MyJDBC Connection Pool としました。web.xmlには必要かどうか分かりませんでしたが、 <resource-ref> <res-ref-name>jdbc/FAQDataSource</res-ref-name> <res-type>javax.sql</res-type> <res-auth>Container</res-auth> </resource-ref> という設定を記述しておきました。この設定で実行すると、 javax.naming.NameNotFoundException: While trying to look up comp/env/myjndi in /app/webapp/project1/3655662. というエラーが発生し、DBにつなぐことができませんでした。上記の設定はまったく自身も無いのですが、やはり間違ってますでしょうか。JDBCのドライバはpostgresql.jarというjarファイルがあり、libの下にコピーしてあります。 | ||||||||||||||||
|
投稿日時: 2004-09-28 13:41
↑失礼しました。上記の
<res-ref-name>jdbc/FAQDataSource</res-ref-name> の部分はtomcatでサンプルを動かそうとした際に使っていたときの設定なので 特に意味がないかもしれません。tomcatでもドライバが見つからないようなエラーでまだ動作できてないですが。lib配下にちゃんとpostgresql.jarは入っているんですけど‥ | ||||||||||||||||
|
投稿日時: 2004-09-28 13:44
こんにちわ。
実行というのは、どういうコードで実行したのでしょうか? | ||||||||||||||||
|
投稿日時: 2004-09-28 14:05
Weblogic7.0を使用した場合は
Context context = new InitialContext(); dataSource = (DataSource) context.lookup("java:comp/env/myjndi"); Connection connection = dataSource.getConnection(); Statement statement = connection.createStatement(); とし、後はsqlを実行するような感じです。 tomcat5.0.28を使用した場合は上記のソース2行目が dataSource = (DataSource) context.lookup("java:comp/env/jdbc/FAQDataSource"); となってます。FAQDataSourceというのはサンプルで作ったもので、web.xmlとserver.xmlに設定してあります。tomcatの場合はサンプルが載ってたのでまったく同じコードなのですが、実行すると java.sql.SQLException: No suitable driver というエラーなんです。 | ||||||||||||||||
|
投稿日時: 2004-09-28 14:09
J2EEに準拠した、汎用性のある記述方法です。
下記の場合、APサーバがWAS等に変わった場合でもコードの修正が少なくすみます。 config.xmlに下記のような記述があるか確認します。 下記はオラクルの例です。
web.xmlに
weblogic.xmlに下記を記述。 ここでアプリケーションと、APサーバをマッピングする。
Javaプログラムから内部参照呼出し。
|