3

我正在尝试通过转到 Main > Manage > Applications > Add > Web Applications 并上传我的 Spring MVC 的 WAR 文件来在 WSO2 Application Server 上部署我的 Spring MVC 应用程序。上传成功完成,但我仍然无法运行网络应用程序本身。错误消息基本上只是抱怨它没有 org.springframework。

相同的 WAR 文件可以毫无问题地在 Apache Tomcat 上运行。我所做的只是将相同的 WAR 文件放到 \webapps 中,它可以工作。

是否需要配置特殊设置才能在 WSO2 应用程序服务器上运行 Spring MVC?我会假设 WSO2 应用程序也在使用 Apache Tomcat,那么为什么它不会仅通过上传 WAR 文件来运行呢?

谢谢!

4

4 回答 4

1

你的 WSO2 AS 版本是什么?请确保使用最新的 AS 5.1.0 版本。我们已经在 AS 5.1.0 上测试了大量基于 Spring(包括 SpringMVC)的应用程序,基本上如果在 Tomcat 上运行的东西也应该在 WSO2 AS 上运行。如果您在 AS 5.1.0 上仍有问题,请告诉我。

于 2013-04-03T12:50:12.807 回答
1

我通过以下方式解决了这个问题:

  1. 如 Sagara Gunathunga 所述,将 WSO2 AS 升级到最新版本 (5.1.0)。由于某些原因,以前的 WSO2 AS 不采用我的 JSTL 模板(类似于 $ {blabla})。仅在 5.1.0 中问题得到解决。我开始想知道这个 WSO2 用它的半生不熟的产品做了什么。

  2. 修改 Maven POM 文件,特别是 slf4j-api 依赖。WSO2 有自己的 slf4j-api 库,在部署到 WSO2 之前,我必须在我的应用程序中将 slf4j-api 的范围设置为“已提供”。这解决了无法加载所有 JavaScript 文件的问题。这样做的缺点是,当您在常规 Tomcat 下本地运行它时,您需要“编译” slf4j-api 的范围。将其设置为“提供”在 Tomcat 下将不起作用。但在 WSO2 中,需要“提供”范围才能运行。因此,在部署应用程序之前需要进行手动更改。我确实尝试匹配 slf4j-api 版本以匹配 WSO2 并将范围设置为“编译”,但它仍然无法正常工作。WSO2,由于一些不好的原因,不能使用我的应用程序编译的 slf4j-api。

于 2013-04-03T15:57:58.567 回答
0

是的,有一个单独的解决方法可以将 spring 服务部署到 wso2 appserver。请按照 [1] 的说明进行操作。

[1]。http://docs.wso2.org/wiki/display/AS510/Spring+Services

谢谢你,达沙那

于 2013-04-02T00:54:24.583 回答
0

@stack247,
我来自 WSO2,很高兴听到您的 JSTL 问题现在已解决。但我完全不同意“我开始怀疑这个 WSO2 用它的半生不熟的产品做了什么”的说法。您可能知道像 Servelt 、 JSP 和 JSTL 这样的规范有不同的版本,并随着时间的推移更新它的版本。最新的 JSP 2.0 和 JSTL 1.2 规范不支持以前版本的应用程序服务器,因此您不能使用依赖于 JSP 2.0 或 JSTL 1.2 的应用程序,这是一个已知的限制,但不能将其视为半生不熟的产品。 . 这是任何软件产品都非常普遍的性质,这就是为什么我们积极开发、修复问题、升级依赖项和频繁发布新版本的原因,我们也在回应此类社区问题。

随着最新的 AS 5.1.0 版本,我们正式支持 Servelt 3.0、JSP 2.0 和 JSTL 1.2 以及任何相关的应用程序。当涉及到日志记录案例时,大多数应用程序服务器都有自己的日志记录机制,在某些情况下,需要从应用程序中删除日志记录依赖项。

于 2013-04-03T16:40:05.593 回答