java - Wildfly 部署进入临时文件夹

标签 java deployment wildfly-10

在将 Web 服务部署到 WAR 文件时,我遇到了一个奇怪的问题。

如果我通过 Netbeans IDE 部署应用程序,它将位于\standalone\deployments 目录下。

但是,如果我从管理控制台部署 war 文件,它总是部署在\standalone\tmp 目录中。

请指导解决这个问题。部署应仅位于\standalone\deployments 目录下。

最佳答案

The deployment should go under \standalone\deployments directory only

你说得不太对。

这不是问题。就是这样。

  • standalone/deployment 文件夹仅用于仅在独立模式下可用的“热部署”功能。 因此,Netbeans 使用它。您可以通过将 EAR 或 WAR 保存到独立/部署中来执行相同的操作,服务器将选择它。 (默认扫描间隔为5秒。)
  • 但管理控制台或 CLI 是在域上部署应用程序的唯一(且标准)方式。在域模式下,部署文件夹未使用,并且没有部署扫描程序。 然后,当您使用控制台时,它会采用常见的方式 - 在域上部署,无论它是域还是独立服务器。

更新/后续:

一般来说,最好将 .properties 文件保留在部署之外,放在单独的位置。它们背后的主要思想是能够更改属性而无需重建和重新部署应用程序。通常属性在不同环境(DEV/UAT/PROD)下是不同的

因此有两种最流行的解决方案:

  • 将属性存储在不同位置,将该位置添加到类路径中,并通过 ClassLoader.getResourceAsStream() 机制访问它们

  • 将属性存储在不同的位置,通过系统(或-D)变量传递该位置并将它们作为文件访问。对于 JBoss,您可以将 .properties 放置在配置目录下。已经有 JBoss 变量。类似 jboss.config.dir(或者类似的,您可以在管理控制台中找到它,我现在没有 JBoss)。

但是当然有时它仍然需要访问 WAR/EAR 内部的资源 - 在这种情况下它与上面的第一个解决方案几乎相同。

只需确保您的 .properties 文件可通过 ClassLoader(在类路径中)访问,并从 ClassLoader.getResourceAsStream 中使用它们(或者如果您使用 Spring 将其指向“类路径:”不是“文件:”。

关于java - Wildfly 部署进入临时文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41301164/

相关文章:

java - 不可变中的可变项

java - 在 android 中集成 org.apache.poi 和 javax.xml.stream.* 包 (stax-api) - 如何在 Android Studio 中设置 --core-library 参数?

java - 将 Web 应用程序本地部署到客户端

java - 在wildfly Maven插件中更改http端口

java - 避免代码重复——最好的方法

java - 如何选择不符合Mongo中某些字段的文档使用Java?

c# - .NET 部署 Office 2003 可再发行主互操作程序集 (o2003pia.msi)

reactjs - Create-React-App/React Router 无法通过渲染进行部署

java - Infinispan 未在文件 Wildfly 10 中保留缓存

java - 无效 session 和无效 session 有什么区别