Java 中的 Rest 服务从 Tomcat 服务器运行,但不在 Eclipse

问题描述

我找不到可以解决我的问题的另一篇文章,但很高兴听到您知道答案的文章

我有一个使用 Eclipse 用 Ja​​va 构建的 RESTful 服务。它使用 Spring 及其所有功能

在对配置文件进行大量工作后,我能够将服务构建到一个 war 文件中,将其部署到我的 Tomcat webapps 文件夹,然后从独立的 Tomcat 运行它。但是,当我尝试从 Eclipse 中定义的服务启动它时,它仍然会在启动时抛出几个错误。这些错误与我在为独立 Tomcat 获得正确的配置文件之前看到的错误相同。错误是由于无法找到对属性的引用而无法创建所需的 bean。

我是如何让它在 Tomcat 中运行的?我添加了几个 .properties 文件来定义启动时启动的 bean 所需的属性,然后在 Tomcat bin 文件夹中的 setenv.bat 文件添加了“set CLAsspATH=...”行。这一新行将属性文件添加到 CLAsspATH。这似乎修复了独立 Tomcat 的所有问题。

所以,我的问题是,“如何在我的 Eclipse 服务器中进行这些相同的更改?”我在 Eclipse 中的 config 文件夹下添加了带有属性文件属性文件夹,就像在我的本机 Tomcat 文件夹中一样,但我不知道如何修改 CLAsspATH 字符串以专门指向我的 .properties 文件(因为我有在独立 Tomcat 的 setenv.bat 文件中完成)。

我想我明白问题所在,但不知道解决方案。

感谢收听。

戴夫

解决方法

Eclipse 不使用任何 *.sh/*.bat 文件来启动 Tomcat。为了修改服务器的启动方式,您必须在 Servers 视图中双击服务器来打开服务器的配置 UI。

从那里您将能够通过“打开启动配置”修改系统类加载器的类路径。

另一个重要的设置是“服务器路径”,它告诉 Eclipse $CATALINA_BASE 的值。只有在卸下所有模块并清洁服务器后才能对其进行修改。将其设置为易于访问的目录很有用:这样您就可以直接验证 Eclipse 没有弄乱您的应用程序部署(有时它“忘记”复制一些库)。

“配置路径” 设置告诉 Eclipse 在哪里可以找到将复制到 $CATALINA_BASE/conf 中的文件(但不是子目录)。

备注:如果您的应用程序要求您将库添加到顶级类加载器,则您的项目可能存在问题。应将“缺失” 库添加到您的应用程序的WEB-INF/lib:查看 Eclipse 项目配置的“部署程序集”