gpt4 book ai didi

java - 当 Tomcat 在另一个部署的应用程序中寻找资源时怎么办?

转载 作者:行者123 更新时间:2023-11-28 23:13:27 24 4
gpt4 key购买 nike

我在 tomcat/webapps 下有两个应用程序,appOne 正在尝试在 appTwo 子文件夹中查找资源。

我在 logs/catalina.out 中看到 Tomcat 没有找到资源/pages/templates/email-message.xhtml(它确实存在于 appOne 子文件夹下)。

错误日志:

com.sun.faces.lifecycle.InvokeApplicationPhase.execute #{action.sendEmail}: java.lang.IllegalArgumentException: resource doesn't exist: /pages/templates/email-message.xhtml

如果我将资源 appOne/pages/templates/email-template.xhtml 复制到 appTwo/pages/templates/(实际上我还有其他模板),Tomcat 将找到该资源。

我该怎么办?

[编辑 1]:

  • 我可以登录这两个应用程序,这似乎没问题。
  • 我不想在这些应用程序之间共享任何资源。
  • 我希望 appOne 和 appTwo 使用自己的/pages/templates/
  • 如果我删除 appTwo 并重新启动 Tomcat,appOne 最终将使用它自己的/pages/templates/。
  • 似乎有些地方还不够孤立。

最佳答案

我想这是一个问题,为什么它在另一个应用程序中。他们都在使用它,还是只是用在了错误的应用程序中。

如果它在错误的应用程序中,只需移动它。

如果两者都使用它,您至少有两个选择。

简单的答案是将模板复制到缺少它的应用程序中。

潜在的缺点是您现在有两个模板副本,如果您需要保持它们相同,那么您将面临维护挑战。

不太容易的答案是想出一种方法让一个应用程序访问另一个应用程序的资源。在成熟的 Java EE 服务器中,您可以将两个应用程序捆绑到一个 .ear 文件中,并让一个应用程序访问另一个应用程序,但 Tomcat 不支持 .ear 文件...

如果只有一个文件,我会复制它。但请密切关注项目 - 如果您开始需要对大量文件执行此操作(无论您对“大量”的定义是什么),那么您应该想出一种共享资源的方法。

关于java - 当 Tomcat 在另一个部署的应用程序中寻找资源时怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53890135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com