0

我们有一个 Java 应用程序,我们在 tomcat 服务器上使用 .war 文件部署该应用程序。战争被复制到 webapp 目录(tomcat 停止),然后我们启动服务器。我们有几个脚本可以自动化这个过程,直到两天前我们已经部署在开发备份和生产服务器上没有问题......然后我们能够在开发机器上部署,但是在备份和生产(ovh机器)中,我们收到了一个异常启动tomcat:

### Error building SqlSession.
### Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance.  Cause: java.io.IOException: Stream closed
org.apache.ibatis.exceptions.PersistenceException: 
### Error building SqlSession.
### Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance.  Cause: java.io.IOException: Stream closed
    at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:23)
    at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:51)
    at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:39)

重新部署旧的 .war 可以正常工作,但新的 .war 始终会产生此异常。我们花了很多时间试图找出问题所在,但是如果我们使用另一个名称来部署战争(只是重命名 .war war 文件)应用程序工作。但我们需要应用程序使用这个特定的上下文名称工作。

请帮忙!

4

1 回答 1

0

终于解决了...

主要原因是在此版本中使用数据库的 haproxy 的检查 url,因此,当上下文正在部署 haproxy 时,尝试加载此 url 并导致 mybatis 上的几次初始化......

更改 url haproxy 查询可以解决问题,但我不确定避免负载下初始化问题的好方法。

于 2013-03-02T21:48:13.527 回答