Java JBoss Wildfly-部署是临时文件。房产呢?

Java JBoss Wildfly-部署是临时文件。房产呢?,java,deployment,jboss,wildfly,Java,Deployment,Jboss,Wildfly,我正在从事一个Java项目,在Wildfly 10的部署方面遇到了问题。我在它的文档中找不到解决方案,希望能得到一些帮助 部署.WAR时,Wildfly会创建一个临时文件夹来存储分解的文件: ./standalone/tmp/vfs/temp/tempb75b67d7adb84a3d/web.war-47f6d3d54946006d/ 当我用/etc/init.d/Wildfly stop停止Wildfly时,所有这些临时文件都会立即从磁盘中删除 问题: WAR包含默认的.propertie

我正在从事一个Java项目,在Wildfly 10的部署方面遇到了问题。我在它的文档中找不到解决方案,希望能得到一些帮助


部署.WAR时,Wildfly会创建一个临时文件夹来存储分解的文件:

./standalone/tmp/vfs/temp/tempb75b67d7adb84a3d/web.war-47f6d3d54946006d/
当我用
/etc/init.d/Wildfly stop
停止Wildfly时,所有这些临时文件都会立即从磁盘中删除

问题:

WAR包含默认的.properties文件,管理员必须修改/配置这些文件。由于每次部署都会删除这些文件,因此目前不可能这样做

问题:

  • 有没有办法让Wildfly将.WAR部署到一个永久文件夹(类似于
    ApacheTomcat
  • 考虑到客户端希望将这个.WAR部署到Debian云基础设施,但偶尔也部署到Windows服务器,这样做是否是一个好的J2E实践
  • 我们应该考虑什么样的选择来存储属性值?
WildFly支持解压(分解)部署。有关详细信息,请查看
$JBOSS_HOME/standalone/deployments/README.txt
。基本上,您只需将WAR解压到一个子目录,然后添加一个标记文件进行部署

但是,任何依赖于给定主机环境的配置信息都不应放在WAR中。WAR是编译时工件,在运行时应视为不可变。(一些web容器解压WAR并公开其内部,这是一个您永远不应该依赖的实现细节。)

相反,您可以通过系统属性、环境变量、JNDI条目等来定义配置数据

我经常对WildFly使用的一种非常简单的方法是
-p
选项:

cd $JBOSS_HOME/bin
./standalone.sh -P myconfig.properties
其中
myconfig.properties
是一个简单的Java属性文件。WildFly在启动阶段很早就读取该文件,并将所有属性设置为系统属性

作为系统属性,这些配置项对所有部署都是可见的,只要您控制部署到服务器上的内容,就不会有问题。为了避免不同部署的属性之间发生冲突,可以为属性键使用部署特定的前缀,例如

app1.jdbc.url = jdbc:postgresql://localhost/app1
app2.jdbc.url = jdbc:postgresql://localhost/app2