Weblogic 8.1で動作するように作成されたWebアプリケーションがあります。これは、Java 1.4を使用するStruts 1.1アプリケーションです。struts 1.1 Webアプリケーションをweblogic 8.1からweblogic 10.3に変換する
メンテナンス性のために、このアプリケーションをJava 6およびWeblogic 10gR3で実行することを、他のすべてのアプリケーションに合わせて試行することにしました。私たちはユーザーが叫んでいた機能のために大きなリリースをしていたので、これを無視していましたが、アプリケーションがユーザー受け入れテストに入ったので、指を抜いてこの機能を実行する時間だとわかりましたより最新のJVMとコンテナの下で実行されます。
ソースコードをロードしてJava 6でコンパイルし、そのビルドスクリプトを使用してアプリケーションを構成する.warファイルを生成しました。
次に、このアプリケーションをweblogic 10gR3サーバーに展開しようとしました。しかし、展開手順は問題なく進行しているように見えますが、完了したら、weblogicコンソールの[ドメイン構造]パネルで[展開]をクリックすると、アプリケーションは「失敗」の状態で一覧表示されます。
私はweblogicログをチェックしましたが、私が見ることができた唯一のエラーはlog4j設定を見つけることができなかったことでした。私はを推測しましたおそらく、jdbc接続が設定されている方法で間違った方法がありました。これは8.1からweblogic 10.3と大きく異なります。しかし、私はこれが問題の原因であるとは確信していません - とにかく、weblogic 10.3の下でデータソースを設定して、同じjndi名を持つようにしてください。はでなければなりません私は間違っている可能性がありますので、これらの問題について専門家に)。
私が気づいたことは、私たちが持っている他のweblogic 10gR3アプリケーションとは異なり、このプログラムがデータベースにアクセスする方法です。私が変換しようとしているプログラムは、そのweb.xmlファイルに次のエントリがありますので、deploy.propertiesファイルからそれらを取得し、ビルドスクリプトによって実際の値に置き換えられるフィールド@様々な@のsomestringと
<context-param>
<param-name>dataSource</param-name>
<param-value>@[email protected]</param-value>
</context-param>
<context-param>
<param-name>db.drivertype</param-name>
<param-value>@[email protected]</param-value>
</context-param>
<context-param>
<param-name>db.host</param-name>
<param-value>@[email protected]</param-value>
</context-param>
<context-param>
<param-name>db.dbname</param-name>
<param-value>@[email protected]</param-value>
</context-param>
<context-param>
<param-name>db.username</param-name>
<param-value>@[email protected]</param-value>
</context-param>
<context-param>
<param-name>db.password</param-name>
<param-value>@[email protected]</param-value>
</context-param>
<context-param>
<param-name>db.port</param-name>
<param-value>@[email protected]</param-value>
</context-param>
<context-param>
<param-name>db.protocol</param-name>
<param-value>@[email protected]</param-value>
</context-param>
私たちが開発用か制作用にコンパイルしているかに応じて、実稼動データベースか開発データベースかを指定することができます。
私は一方の基準として使用しています、他のアプリケーションは、persistence.xmlのファイルを使用して構成されているEJBエンティティBeanを使用しています - と私は、実際のデータベースに見つけることができますそこに唯一の参照がある:
weblogicコンソールの[ドメイン構造]ペインの[サービス]セクションのJDBCの[データソース]セクションに設定されているデータソースを、weblogic 10gR3用に参照します。
weblogic 8アプリでは、すべてのデータベースの詳細を持つJDBC接続プールを設定してから、別のJDBCデータソースを設定する必要があったため、元のweblogic 8アプリケーションとはまったく異なります。 JDBC接続プールを提供しますが、Javaアプリケーション内のデータソースを見つけるために使用できるJNDI名が提供されています。
これは、weblogic 10gR3が認識しようとしているものにどのように挑戦して、従来のweblogic 8アプリケーションがそのデータを見つける方法を知っているかわかりません。私はもちろん、これがなぜアプリケーションがうまく展開されないのかという大きな問題です(私は間違っているかもしれません)。この問題を解決しようとして、私はweblogic 8アプリケーションに必要なものをエミュレートできる可能性があることを願って、(Weblogic 10gR3の下で)Data Source Factoryを作成しました。しかし
<context-param>
<param-name>dataSource</param-name>
<param-value>@[email protected]</param-value>
</context-param>
:私は、それはアプリケーションのweb.xmlに次のエントリにスワップされるように、私は.properyファイル内database.dataSourceエントリで作成したデータソースファクトリ名を参照しましたそれは問題を解決していないようです。
私はこのアプリケーション(weblogic 8.1用に書かれています)をweblogic 10gR3の下で実行するために、集中しなければならないもののいくつかの手がかりを教えてもらえますか?
ありがとうheaps guys
David Buddrige