无法发布 Web 应用程序:SpringSource 工具套件问题?

Posted

技术标签:

【中文标题】无法发布 Web 应用程序:SpringSource 工具套件问题?【英文标题】:Unable to publish web app: SpringSource Tool Suite problem? 【发布时间】:2010-11-30 18:31:40 【问题描述】:

我有一个现有的、功能齐全的 Spring Web 应用程序,它基于 Spring 2.5.6 - 使用 SpringSource Tool Suite 2.1.0.SR1 开发。

因为我想使用 REST,所以我决定升级到 Spring 3.0.0.M4。在编辑 pom.xml 中的依赖项并更改我的代码以反映 Spring 3.0 中的 API 更改后,我尝试将我的 Web 应用程序发布到本地服务器(SpringSource tc - Tomcat 派生类)。

结果是一个几乎空的 Web 应用程序文件夹,因此是一个非功能性应用程序。该应用的文件夹仅包含 WEB-INF/lib 以及 Maven 依赖项所需的所有库。

在意识到出现问题后,我创建了一个新的 Spring MVC 项目(基于默认的 2.5.6)并将其发布到同一台服务器。没问题。我试图调整我的项目文件(.settings/*.project.classpath.springBeans),但这并没有改变任何东西。

我现在很迷茫。我的猜测是 STS 不能正确处理 3.0 应用程序。有什么建议吗?

PS:如果不是绝对必要,我不想恢复到 2.5。我不需要 STS 和 tc,所以我使用其他工具没有问题,但到目前为止效果很好。

【问题讨论】:

我不确定我是否得到了问题:是 maven2 问题还是 STS 问题?在依赖项中使用spring-3.0.0.M4时,maven是否会创建一个功能齐全的应用程序? maven搭建的WAR完整,功能齐全,但是部署不行。 【参考方案1】:

我一直在使用 Eclipse Galileo 和 m2eclipse 0.9.8 以及带有 WTP 的 Tomcat 遇到这个问题。我认为是 m2eclipse 是罪魁祸首。从 Ganymede 切换后问题似乎更糟。解决方法是运行 mvn 来创建战争,然后将战争内容从“目标”复制到 WTP 的“wtpwebapps”目录。您可以通过在“服务器”视图中双击服务器并从中选择“打开启动配置”来方便地找到这条可怕的长路径,单击我认为的参数(?)选项卡并复制定义为参数的 catalina.home java 属性在那里。

【讨论】:

【参考方案2】:

随着新版本的 STS,问题消失了。此外,自从我发布这个问题以来,我的开发环境发生了一些变化,所以我无法真正说出导致问题的原因。 对我来说,这看起来像是 STS 内部的一个奇怪的小问题。

【讨论】:

【参考方案3】:

Spring Tool Suite 2.1.0 claims partial support 适用于 Spring 3.0,但不适用于 REST 功能。根据发布,未来的版本将增加全面支持。来自发布声明:

特点

支持 Spring 3.0 的里程碑,包括 XML 编辑和验证,支持 @Configuration 和 @Bean 注解

未来

完整的 Spring 3.0 支持,包括用于开发 RESTful Web 应用程序的工具

【讨论】:

我不认为这是我的问题的原因。 STS 功能不应干扰构建和部署应用程序的纯粹能力。现在我可以使用 NetBeans 成功部署。 NB 也不支持 Spring 3.0 - 但它可以工作。 我明白了,您在尝试部署时在日志中看到了什么? 据我所知没有什么特别的。 maven 构建似乎像往常一样工作(生成的 WAR 包含所有文件),但将其部署到服务器不起作用。【参考方案4】:

尝试将您的应用部署到嵌入式码头。 'mvn jetty:run' 帮助您确认您的构建是否有问题(所有正确的清单和 deps 都已到位)

【讨论】:

使用 NetBeans 或 Cargo (cargo.codehaus.org/Maven2+plugin) 部署没有问题。

以上是关于无法发布 Web 应用程序:SpringSource 工具套件问题?的主要内容,如果未能解决你的问题,请参考以下文章

无法从 .net 核心应用程序发布到 Azure Web 应用程序

Rider 无法在 Mac 上发布 .NET Web 应用程序

无法从程序集“System.Web,...”加载类型“...”

Redmine 2.4.4 - 无法启动 Web 应用程序

Azure 应用服务响应 Web 应用(Linux Web 应用)容器无法启动

无法在 IIS 中托管 Web 服务