我正在处理一个Java项目,并且在Wildfly 10的部署上遇到了问题。我在它的文档中找不到解决方案,希望得到一些帮助。
当我部署一个.WAR时,Wildfly创建一个临时文件夹来存储已爆炸的文件:
./standalone/tmp/vfs/temp/tempb75b67d7adb84a3d/web.war-47f6d3d54946006d/
当我停止使用/etc/init.d/wildfly stop
时,所有这些临时文件都会立即从磁盘中删除。
问题:
WAR包含管理员必须修改/配置的默认.properties文件。由于每个部署都会删除这些文件,因此目前不可能这样做。
问题:
Apache Tomcat
)?发布于 2016-01-25 10:38:37
WildFly确实支持解压缩(爆炸性)部署。有关详细信息,请查看$JBOSS_HOME/standalone/deployments/README.txt
。基本上,您可以将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
https://stackoverflow.com/questions/34988709
复制