0

我们正在将我们的生产应用程序复制到我们的 DR 机器上。我们的应用程序是一个使用 Hibernate Spring 和 Struts2 框架的 Web 应用程序,运行在 Sun Java System Application Server 9.1_02(构建 b04-fcs)上。该应用程序在生产环境中是稳定的。还让它在我们的第一次复制期间运行。最近我们遇到了 HTTP 状态 503。
我们尝试了从重新部署到应用程序服务器(servlet 容器)重启的所有方法。我们甚至尝试从源代码重建应用程序并重新部署它只是为了解决 http 状态 503。什么可能导致这个 HTTP 状态 503?提前谢谢各位。

这是我的依赖项/jar 文件

  • antlr-2.7.6.jar
  • 琶音-1.1.jar
  • cglib-2.2.jar
  • commons-collections-3.1.jar
  • commons-dbcp-1.2.2.jar
  • commons-fileupload-1.2.2.jar
  • commons-io-2.0.1.jar
  • commons-lang-2.4.jar
  • commons-logging-1.1.1.jar
  • commons-pool-1.4.jar
  • dom4j-1.6.1.jar
  • freemarker-2.3.16.jar
  • ganymed-ssh2-build210.jar
  • hibernate-jpa-2.0-api-1.0.1.Final.jar
  • hibernate3.jar
  • javassist-3.12.0.GA.jar
  • 抛弃-1.3.2.jar
  • jta-1.1.jar
  • ldap.jar
  • log4j-1.2.14.jar
  • mime-util-2.1.3.jar
  • ognl-3.0.1.jar
  • oracle10g.jar
  • org.springframework.asm-3.0.6.RELEASE.jar
  • org.springframework.beans-3.0.6.RELEASE.jar
  • org.springframework.context-3.0.6.RELEASE.jar
  • org.springframework.core-3.0.6.RELEASE.jar
  • org.springframework.expression-3.0.6.RELEASE.jar
  • org.springframework.jdbc-3.0.6.RELEASE.jar
  • org.springframework.orm-3.0.6.RELEASE.jar
  • org.springframework.transaction-3.0.6.RELEASE.jar
  • org.springframework.web-3.0.6.RELEASE.jar
  • slf4j-api-1.6.1.jar
  • slf4j-log4j12-1.6.1.jar
  • struts2-core-2.2.3.1.jar
  • struts2-json-plugin-2.2.3.1.jar
  • struts2-spring-plugin-2.2.3.1.jar
  • xwork-core-2.2.3.1.jar

这是应用程序服务器日志

Log Entry Detail

时间戳 2013 年 4 月 25 日 17:03:12.981 日志级别 SEVERE 记录器 org.apache.catalina.core.StandardContext 名称-值对 _ThreadID=14;_ThreadName=pool-1-thread-7;_RequestID=d73c920a-2b6a-4f42-b523 -93503d089b74;记录号 302 消息 ID PWC1306 Complete Message Startup of context /myproject 由于先前的错误而失败

Log Entry Detail

时间戳 2013 年 4 月 25 日 17:03:12.980 日志级别 SEVERE 记录器 javax.enterprise.system.container.web 名称-值对 _ThreadID=14;_ThreadName=pool-1-thread-7;_RequestID=d73c920a-2b6a-4f42-b523 -93503d089b74;记录号 301 消息 ID WebModule[/myproject]PWC1275 完成消息异常将上下文初始化事件发送到类 org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException 的侦听器实例:创建名为“myprojectSessionFactory”的 bean 时出错在类路径资源 [hibernate-config/myproject-hibernate-spring.xml] 中定义:调用 init 方法失败;嵌套异常是 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory 的 java.lang.NoSuchMethodError: javax/persistence/OneToMany.orphanRemoval()Z。

4

1 回答 1

2

这是一个大线索:

Caused by: java.lang.NoSuchMethodError: 
           javax/persistence/OneToMany.orphanRemoval()Z

就是说有些代码需要在 API 上调用带有签名的方法boolean orphanRemoval()……javax.persistence.OneToMany但是刚刚加载的 API 版本没有提供该方法。

换句话说,您在 WAR 文件中的某些 JAR 之间存在版本不匹配。

我不认为这是 hibernate 和 hibernate-jpa 文件之间的不匹配,因为 JBoss Hibernate 3.x 发行版 zip 包含具有这些名称的文件。

相反,我认为这是 Hibernate 和 Spring 之间的不匹配。特别是,Spring手册说:

注意:从 Spring 3.0 开始,Spring 需要 Hibernate 3.2 或更高版本。

目前尚不清楚您使用的是哪个版本的 Hibernate 3,但我的理论是它对于 Spring 3.0.x 来说太旧了。

于 2013-04-25T15:04:52.627 回答