我正在开发一个Java项目,并且遇到了Wildfly 10的部署问题。我没有在其文档中找到解决方案,并希望得到一些帮助。
当我部署 .WAR 时,Wildfly会创建一个临时文件夹来存储爆炸文件:
./standalone/tmp/vfs/temp/tempb75b67d7adb84a3d/web.war-47f6d3d54946006d/
一旦我使用/etc/init.d/wildfly stop
停止Wildfly,所有这些临时文件都会立即从磁盘中删除。
问题:
WAR包含默认的 .properties 文件,必须由管理员修改/配置。由于每次部署都会删除文件,因此目前无法实现。
问题:
Apache Tomcat
)?答案 0 :(得分:4)
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