【问题标题】:Rest service in Java runs from Tomcat server but not inside EclipseJava 中的 Rest 服务从 Tomcat 服务器运行,但不在 Eclipse 内部
【发布时间】:2021-02-26 19:11:49
【问题描述】:

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

我有一个用 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 文件夹下添加了 properties 文件夹和属性文件,就像它在我的本地 Tomcat 文件夹中一样,但我不知道如何修改 CLASSPATH 字符串以专门指向我的 .properties 文件(因为我有在独立 Tomcat 的 setenv.bat 文件中完成)。

我想我理解问题,但不知道解决方案。

感谢收听。

戴夫

【问题讨论】:

    标签: java eclipse tomcat properties javabeans


    【解决方案1】:

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

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

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

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

    备注:如果您的应用程序需要您将库添加到顶级类加载器,那么您的项目可能存在问题。 "missing" 库应该添加到您的应用程序的 WEB-INF/lib 中:查看 Eclipse 项目配置的 "Deployment assembly"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-11
      • 1970-01-01
      • 2020-12-18
      • 1970-01-01
      • 1970-01-01
      • 2020-02-13
      • 1970-01-01
      相关资源
      最近更新 更多