当前位置: 首页 > 知识库问答 >
问题:

Tomcat 8.0.32-更新的web应用程序未使用的共享库

谭曦
2023-03-14

我有一个tomcat 8.0.32运行在windows上。

在tomcat\lib文件夹中,我有一个共享文件夹。jar文件。共享。jar是所有web应用程序都使用的全局共享库。该文件包含一个包含常量的java类:

public final int CONSTANTVALUE = 1000;

我有2个Web应用程序正在使用这个CONSTANTVALUE。我删除shared.jar并将一个新shared.jar复制到tomcat\lib中,其中包含一个新的常量值:

public final int CONSTANTVALUE = 2000;

我重新启动了windows(和tomcat),但应用程序仍然看到旧版本shared.jar的值“1000”。

我已经确认这个类只存在于tomcat\lib文件夹下,而不是其他地方。应用程序 WEB-INF\lib 没有这个 jar。

如果我删除共享。然后由于ClassNotFoundException(确认正在使用shared.jar),web应用程序无法运行。

如果我重新部署 Web 应用程序,它们会选取新的常量值“2000”

为什么/如何tomcat记得旧版本的shared.jar?

为什么我必须重新部署web应用程序来获取shared.jar,因为它已经被新代码所取代?(违背了共享库的目的)

共有1个答案

周翰池
2023-03-14

事实证明,这是一个java问题,而不是Tomcat。Java编译使用常量折叠(内联常量值),从而消除对共享库的依赖。

使用避免不断折叠的技术,我设法强制执行对共享库的依赖。

 类似资料:
  • 问题内容: 序言 。我想问一下,如何为网络上的桌面屏幕共享创建解决方案,但是后来发现有很多这样的问题。要用几串来回答这个任务是相当复杂的。所以我花了一些时间试图找到合适的解决方案。看来我找到了一个–只想分享。 首要任务 :我们有一个Web应用程序。我们需要找到一种让用户与其他任何用户共享其屏幕的方式。实施于:Win 7 x64,Java,Wowza-3.5.0。 我们怎样才能做到这一点? 问题答案

  • 我目前正在规划一个我想构建的移动应用程序,以及一个配套的web应用程序。移动应用程序和Web应用程序将共享通用数据(例如,用户可以在移动应用程序中进行问卷调查,也可以在Web应用程序上进行相同的问卷调查)。 几年前我曾使用Azure创建和托管一个web应用程序,但这是我在移动开发领域的第一次尝试。我正试图理解Azure中托管API的架构。 我到处寻找,但是要么找不到我的问题的明确答案,要么不太理解

  • null 这是我第一次尝试将Firebase集成到我的一个项目中,因此一些关于实现这项任务的指导将是非常有用的。 谢了!

  • 我正在使用FB。允许用户使用此代码共享我的页面的ui: 当从 Android 移动应用程序中的嵌入式浏览器共享页面时,用户可以选择要用于打开共享对话框的应用程序。如果选择了脸书应用,则不会有回调响应。在普通的桌面浏览器中,一切都按预期工作。这种行为是预期的吗?

  • 我有一个网络应用程序,在其中,我正在尝试分享一个链接到WhatsApp网络应用程序,但不是在移动应用程序。 我已经通过了WhatsApp网页版的共享链接?但没有提供解决方案。 可行吗? 这段代码帮助我通过WhatsApp移动应用程序分享它。在WhatsApp web应用程序中有没有同样的方法?

  • 问题内容: 假设我在Linux中有一个使用共享库(文件)的应用程序。我的问题是这些库中的代码是否将在与主应用程序相同的堆中分配内存,还是使用自己的堆? 因此,例如,文件中的某些函数调用,它将使用与应用程序相同的堆管理器,还是使用另一个应用程序?同样,那些共享内存中的全局数据又如何呢?它在哪里?对于应用程序,我知道它位于bss和数据段中,但是不知道这些共享对象文件在哪里。 问题答案: 我的问题是这些