0

私はjdk1.4.2の新しい部分であるJSF+iBatisWebアプリケーションを開発しています。

データベースのことについては、このようにSqlMapConfig.xmlに新しい行を追加しました

<sqlMapConfig>
        ...
    <sqlMap resource="com/example/properties/SqlMapLockOfferte.xml" />
</sqlMapConfig>

クエリを使用して、その位置に新しいSqlMapLockOfferte.xmlファイルを作成しました。

私はそれをTomcat4.1にデプロイしましたが、すべて正常に動作しているようです。

私はそれをパックしてテスト環境のWebLogic8.1にデプロイしましたが、Beaの起動時に最初の奇妙なエラーが表示されます。

ERROR [IBatisSqlMapClientSingletonFactory] java.io.IOException: Could not find resource com/example/properties/SqlMapConfig.xml

しかし、設定ファイルはまだここにあります、私はそれを移動していません。次に、アプリケーションログに別の奇妙なことがわかります。

DEBUG com.example.ibatisimpl.IBatisSqlMapClientSingletonFactory - configuration successfully ended
DEBUG com.example.ibatisimpl.IBatisSqlMapClientSingletonFactory - configuration successfully ended

しかし、名前が示すように、このログはパブリック静的メソッド内にあるので、なぜこれが2回表示されるのか疑問に思っています。

最後に、最も面白いこと。Webアプリケーションは稼働しており、上記のXMLで定義した新しいクエリを利用する部分を除いて、iBatisは正常に動作しているようです。その場合、私がインスタンス化NullPointerExceptionしようとしたオブジェクトを使用しようとするとSqlMapClient、シングルトンを取得します。

何か案が?

ありがとう、ピワッキオ。

4

1 に答える 1

0

この問題の原因を突き止めました。

私のWebアプリケーションでは、を使用しHttpSessionListener、彼のコンストラクターでは、iBatisオブジェクトのインスタンス化を配置しました。

Tomcat 4.1ではすべて正常に動作しますが、WebLogic 8.1では、代わりにWebアプリケーションの起動時にセッションリスナーが作成されているように見え、それが問題の原因でした。どうやらTomcatは、Webアプリケーションから要求された場合にのみセッションリスナーを開始します。

于 2012-11-19T09:26:46.377 に答える