java - 关于 Java 中 Web 应用程序的 "org.eclipse.wst.server.core"文件夹的几个一般问题

标签 java glassfish temporary-files

我有几个关于 eclipse 工作空间中 .metadata\.plugins 文件夹中的 org.eclipse.wst.server.core 文件夹的问题。我知道在本地主机上运行应用程序时,这是我们必须替换前端文件的文件夹,例如 JSPJS 文件、CSS 文件、HTML 文件、图片

将有一些 tmp 文件夹,我必须将文件替换到这些文件夹中的相应位置。该文件夹将有另一个文件夹,其结构为 WAR 文件,我将从我的工作空间中获取该文件,有时会有多个 tmp 文件夹,如 tmp0tmp1tmp2 等(其中大部分都有所有必需的文件)。当有多个文件夹时,很难确定我需要将文件替换到哪个文件夹中。

enter image description here

然后我必须停止服务器,杀死所有在后台运行的 java(手动)并且必须清除所有 tmp 文件夹(因为如果 java未正确终止 tmp 中的 jar 文件无法删除,说明其当前正在使用)。我猜服务器使用这些 tmp 文件夹中的一个来运行应用程序。

清除所有 tmp 文件夹后,如果我再次启动服务器,在该文件夹中创建的第一个文件 (org.eclipse.wst.server.core) 将是一个 servers.xml,然后将创建一个 tmp0 可能是 tmp1。整个项目发布时只有一个tmp文件夹,如果我发布多次,将创建另一个tmp文件夹,可能是第2次,第3次或第n次.

所以我的问题是

  1. org.eclipse.wst.server.core 文件夹是否有通用名称?
  2. 为什么多次发布时会创建多个tmp文件夹?我们可以将它限制在单个 tmp 文件夹中吗?

  3. 项目发布后,服务器是否有可能使用多个tmp文件夹来处理不同的请求。就像我使用 tmp0 的第一个请求一样,当我刷新页面时它使用 tmp1 文件夹?

针对第三个问题进行了编辑

我打开了上图中给出的文件夹中的所有xml文件,在tmp-data.xml中,我找到了这个内容

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<temp-directories>
  <temp-directory age="0" key="GlassFish v2.1 Java EE 5 at localhost" path="tmp0"/>
</temp-directories>

其中 path 属性的值为 tmp0。所以我猜这将是我第三个问题的答案。我猜当有多个 tmp 文件夹时会创建这个文件,因为在删除所有 tmp 文件夹和文件夹中的文件并发布工作空间后 tmp-data.xml 文件不存在。

关于 WTP 的编辑

我没有太多关于 WTP 的详细信息,但是当我在我的 eclipse 中单击 Help 并选择 About Eclipse 时,我得到了这个窗口

enter image description here

最佳答案

  1. 据我所知不是。它是由 WTP(Web 工具平台)使用 WST(Web 标准工具)创建的。如果你找到了,也请告诉我。

  2. 这取决于 WTP 和 WST 在发布工件之前所做的不同检查。它不会一直发生,但比预期的要多得多,因为文件锁会阻止 eclipse 发布应用程序的新副本。因此,代码必须尝试创建新的 tmp 文件夹作为解决方法。然后更新元数据 (publish.xml),一切正常,我觉得这要好得多,因为开发人员不必知道很多关于这些故障的信息。我们可以在您的 eclipse 的服务器属性中更改此设置。请注意,不同的插件有不同的方式来执行此操作,我的 STS 将默认部署路径设置为 wtpwebapps。

  3. 这必须在您的发布 xml 文件中可用。它还取决于您使用的 WTP/WST 版本。很难看出文件夹生成的位置(至少目前对我而言),但您可以查看 WTP 中的 PublishUtils.java 和 PublishDelegate.java。 Github here .

  4. 不,当然不是,在项目发布后,整个服务器都指向工件所在的位置。尽管上下文刷新可能会因线程重叠或等待时间而失败,但不可能将两个不同的实例部署到具有相同应用程序/上下文名称的同一服务器中。

阅读thisthis

关于java - 关于 Java 中 Web 应用程序的 "org.eclipse.wst.server.core"文件夹的几个一般问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46860523/

相关文章:

java - 我的代码中出现内存不足异常

java - 将内容写入TemporaryFolder并在测试后删除文件

java - 如何使用 GET 方法传递隐藏字段值

java - 覆盖 CORS 配置

java - 在 CloudBees 上部署 NetBeans JAXWS

java - 在 gllashfish 上手动部署 java web 服务

macos - 为什么即使我将自定义 URL 重定向到 127.0.0.1,我仍然看到正在使用本地主机证书?

c - 在 C 中使用 tmpfile() 时的临时文件位置

java - 如何删除fileupload struts2中的.tmp文件

java - 不存在 while 循环(java 代码)