Weblogic9.2 WebサービスでExceptionInInitializerError

2009-10-12 04:55:42 | WebLogic
Weblogic 9.2でcilentgenでスタブを作成して、webサービスを呼び出す簡単なpojoを作成したところ、java.lang.ExceptionInInitializerErrorが発生!

原因と対策)
weblogic-container-binding.jarとweblogic.jarで、fullyqualifiedclasstyped2a5type.xsb がコンフリクトしていて、駄目らしい。
(weblogic-container-binding.jarのほうが古い。)
クラスパス上で、weblogic.jarを先にしたところ、解決した。

weblogicでEditNotEditorExceptionが発生

2009-05-23 18:13:11 | WebLogic
weblogic.management.provider.EditNotEditorException: Not edit lock owner
というエラーは、別のユーザがWeblogic管理コンソールで編集中である場合におきる。(同じユーザIDであれば、発生しない。)

これは同時に別々のユーザでWeblogicの管理情報を更新して不整合なデータがおきるのを防ぐ為である。

なお、管理サーバのログを見ると、Weblogic管理コンソールの操作情報がわかる。
<MakeChangesAction>は「ロックして編集」を行った際に出力されるログ。
<StopEditAction>は「コンフィグレーションの解放」を行った際に出力されるログ。
<ActivateChangesAction>は「変更のアクティブ化」を行った際に出力されるログ。

antでの再デプロイ(Weblogic9.2)

2008-10-26 23:12:44 | WebLogic
ant(1.7)を使用して、warファイルを再デプロイする。
方法として、ftpタスクでwarファイルのアップし、その後weblogicに付属
しているwldeployで再デプロイを行った。

以下、build.xmlの抜粋。

<!-- ftp サーバ -->
<property name="ftp_server" value="localhost"></property>
<!-- ftp サーバ ユーザID -->
<property name="ftp_user" value="weblogic"></property>
<!-- ftp サーバ パスワード -->
<property name="ftp_pass" value="weblogic"></property>
<!-- warファイル移送先ディレクトリ -->
<property name="ftp_dir" value="AdminServer/upload"></property>

<!-- APサーバへftp *commons-net-ftp.jarをclasspathに追加すること -->
<target name="ftp">
<ftp server="${ftp_server}" userid="${ftp_user}" password="${ftp_pass}"
remotedir="${ftp_dir}">
<fileset file="${war_file}" />
</ftp>
</target>

<!--Weblogic ユーザ -->
<property name="ap_user" value="weblogic"></property>
<!--Weblogic パスワード -->
<property name="ap_pass" value="weblogic"></property>
<!--Weblogic サーバ -->
<property name="ap_server" value="Server-0"></property>
<!--Weblogic 管理サーバ URL-->
<property name="admin_url" value="t3://localhost:7001"></property>
<!--Weblogic.jar -->
<property name="wl_jar" value="C:/bea/weblogic92/server/lib/weblogic.jar"></property>

<!-- 再デプロイのみ -->
<target name="redeployOnly">
<taskdef name="wldeploy" classname="weblogic.ant.taskdefs.management.WLDeploy"
classpath="${wl_jar}"/>
<wldeploy action="redeploy" verbose="true" name="${context}"
user="${ap_user}" password="${ap_pass}"adminurl="${admin_url}" targets="${ap_server}" />
</target>


Oracle10gRACのJDBC設定でORA-12505

2008-08-25 21:27:46 | WebLogic
Weblogic9.2でOracle10gRACでJDBC設定を行うと、ORA-12505(TNS: リスナーは接続記述子で指定されたSIDを現在認識していません )が発生する。

・URLのjdbc:oracle:thin:@hostname:1521:sidのsidの部分が間違っていた。うちのDBA(?)から教えてもらったsidがorclだったが、実際は、orcl1,orcl2が正解だった。
OracleRACでdbcaでデータベースを作成すると、指定したsid接頭辞に1から始まるノード番号を加えたものを各インスタンスのsidに設定する。
ex) sid接頭辞がorclの場合、各インスタンスのsidは、orcl1,orcl2,orcl3...になる。
ソース
URLをjdbc:oracle:thin:@hostname:1521:orcl1,jdbc:oracle:thin:@hostname:1521:orcl2と設定することで、成功した。

以下は、参考。
Weblogic推奨のOracleRACを使用する場合のjdbc設定)
Weblogic AdministrationConsoleで、各インスタンスのデータソースを作成し、マルチデータソースを作成するさいに、設定したデータソースを選択する。またアプリケーションで使用するjndi名はマルチデータソースに設定する。
各データソースを設定する場合のURL設定は、sidを設定する方法(sidには上記のようにsid接頭辞+ノード番号を設定する。)以外にも、sidに変えてservice_nameを設定する方法もある。以下はその構文。
ex)jdbc:oracle:thin:@//hostname:1521/service_name
ソース

上記以外の方法)
マルチデータソースを使用せず、データソースで、OracleRACを使用する。この場合は、単独のデータソースのみで完結する。そのURLの構文は以下になる。
jdbc:oracle:thin:@(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=hpstname1)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=hostname2)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=service_name)))