0

我正在开发我们的 jdk 1.4.2、JSF + iBatis Web 应用程序的新部分。

对于数据库,我在 SqlMapConfig.xml 中添加了一个新行,如下所示

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

我用我的查询在那个位置创建了一个新的 SqlMapLockOfferte.xml 文件。

我已经将它部署在我的 tomcat 4.1 上,一切似乎都运行良好。

我已经打包并部署在我们的测试环境 WebLogic 8.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

但是,顾名思义,这个日志在一个公共静态方法中,所以我想知道为什么我会看到这两次。

最后,最有趣的事情。Web 应用程序已启动并运行,iBatis 似乎工作正常,除了使用我在上述 XML 中定义的新查询的部分。在那种情况下,NullPointerException当我尝试使用我尝试SqlMapClient实例化的对象时,我会收到一个单例。

任何想法?

谢谢,皮瓦基奥。

4

1 回答 1

0

我弄清楚了这个问题的根源。

在我的 Web 应用程序中,我使用了 aHttpSessionListener并且在他的构造函数中,我将 iBatis 对象的实例化。

在 Tomcat 4.1 中一切正常,而在 WebLogic 8.1 中,会话侦听器似乎是在 Web 应用程序启动时创建的,这导致了麻烦。显然,Tomcat 仅在 Web 应用程序请求时才启动会话侦听器。

于 2012-11-19T09:26:46.377 回答