2

我正在尝试在 JBoss AS 7.1.1 上运行 Spring Petclinic 示例。我已将 maven 项目从https://github.com/SpringSource/spring-petclinic/导入到 Eclipse Juno 并成功部署它,但http://localhost:8080/petclinic/给了我 HTTP 状态 404 错误。我可以从日志中看到的唯一问题是

JBAS011006:由于异常,未安装可选组件 org.springframework.web.context.request.async.StandardServletAsyncWebRequest:org.jboss.as.server.deployment.DeploymentUnitProcessingException:JBAS011054:找不到类 org.springframework.web 的默认构造函数。 context.request.async.StandardServletAsyncWebRequest

但根据Spring3.2 和 jboss as 7这是正常行为。我找到了一些关于修改 JBoss 的 Petclinic 示例的建议,但所有这些建议都是针对旧版本的示例,而不是更新的 2013 版本(http://blog.springsource.org/2013/03/21/spring -petclinic-is-on-github/)。该示例适用于 Tomcat 7.0.39。

更新:

仅当我使用 JBoss 从 Eclipse 运行示例时才会出现此问题。正如 Andrzej 所说,使用独立的 maven 构建应用程序并部署由此产生的战争工作正常。问题是 JBoss/JBoss 工具在从 Eclipse 部署时使用了不正确的战争名称和上下文根。在 pom.xml 中,战争名称被指定为<warName>petclinic</warName>,但 JBoss 使用“spring-petclinic”代替。Tomcat、Glassfish 和 Weblogic 没有这个问题,并且可以在 Eclipse 的部署中正常工作。

解决方法是使用WEB-INF/jboss-web.xmlhttp://localhost:8080/spring-petclinic/代替或配置上下文根:http://localhost:8080/petclinic/

<jboss-web>
    <context-root>petclinic</context-root>
</jboss-web>
4

1 回答 1

1

Spring Petclinic(2013 版)与 Jboss AS7 配合得很好。尝试了两个 Jboss 版本。您需要的是使用 maven 构建应用程序并将其部署到独立/部署文件夹。问题是从 Eclipse Juno 运行它。

于 2013-04-26T17:06:43.690 回答