在战争库中热部署资源

     2023-02-27     48

关键词:

【中文标题】在战争库中热部署资源【英文标题】:Hot deploying resources in war libs 【发布时间】:2015-04-04 06:41:15 【问题描述】:

使用 Wildfly 8.2.0.Final、Windows 7、JBoss Developer Studio 8.0.2.GA。

我们正在尝试将我们的战争拆分为模块。似乎最自然的方法是依靠 web 片段 + JSF/Facelet 能力在 war/WEB-INF/lib jars 中查找资源。 问题是对 xhtml facelet 模板和静态资源的更改不会即时应用,因为如果相同的东西位于战争本身,就会发生这种情况。

据我了解是因为:

片段 jar 由 IDE 打包部署,而不是分解; VFS 在 tmp 目录中创建 jar 的副本,然后将其解包;VFS3 User Guide 说“JavaZipFileSystem 尽可能尝试使用 JarEntry 来支持文件系统操作。当这不可能时它会将 JarEntry 的副本写入临时目录”。我不明白这个“不可能时”是什么意思,单步执行org.wildfly.extension.undertow.deployment.WarStructureDeploymentProcessor 代码似乎总是制作一个 jar 副本。 org.jboss.vfs.spi.JavaZipFileSystem 似乎试图查看 jar 的最后修改时间,但它查看的是副本,而不是原始文件; JBoss Developer Studio 无论如何都不会更改原始 jar 的最后修改时间,例如更新 xhtml 时。

问题。

    某处是否存在错误?虚拟文件系统?暗流?我不确定所描述的行为是否有意。 Wildfly 是否应该支持? IE。合理吗? 如何使用 Wildfly 8.2.0.Final 实现此功能?
      替代 Undertow 的战争部署 ResourceManager,以某种方式修改 getResource? 对 VFS.mounts 做些什么?什么? 放弃这种方法。取而代之的是把这些war子模块做成ear级别的EJB,这样它们就会被爆炸式地部署。添加这些“EJB”作为战争部署资源根,就像 WarStructureDeploymentProcessor 一样。

【问题讨论】:

也在这里问:developer.jboss.org/message/917787 似乎在 Wildfly 8.2 中有一种方法可以使用 JAR 中的标签库,这些标签库位于 EAR 中,WAR 旁边:issues.jboss.org/browse/WFLY-1172 不确定 JBoss Developer Studio,但这一切对我来说都适用于普通的 Eclipse + JRebel(和 Maven,但它在这里不起作用),部署到 WildFly 时也是如此。也许你应该试试 JRebel 看看它是否能解决你的问题。 刚刚试过,如果片段项目是通过部署程序集引用的,即使没有 JRebel 的我也可以使用。 @BalusC,你有 EAR\WAR\JAR 结构吗? WAR 的部署程序集中引用了 JAR? JAR 中对 XHTML 的更改会在运行时反映在 UI 中吗? 【参考方案1】:

最终在JBIDE-20071 Allow deploying exploded jars to war/WEB-INF/lib 中修复了这个问题,这样 JBoss 工具就会部署爆炸的 Web 片段。 Web 片段正在打包部署,只是因为之前 JBoss AS7 中存在一个错误 (AS7-4704)。

【讨论】:

如何读取部署在 Tomcat 中的未爆炸战争文件中的资源文件?

】如何读取部署在Tomcat中的未爆炸战争文件中的资源文件?【英文标题】:HowcanIreadaresourcefileinanunexplodedwarfiledeployedinTomcat?【发布时间】:2012-02-0411:33:23【问题描述】:我正在尝试加载二进制图像文件以在我的服务器端Java代码中... 查看详情

在 Spring Boot 2.1 中热重载 Thymeleaf 模板和资源包

】在SpringBoot2.1中热重载Thymeleaf模板和资源包【英文标题】:HotReloadingThymeleafTemplatesandResourceBundlesinSpringBoot2.1【发布时间】:2019-07-1714:33:45【问题描述】:我创建了一个启用i18n的SpringBoot2.1.3应用程序,添加了开发工具,并安装了F... 查看详情

spring-boot-devtools在idea中热部署方法

一、概述springboob项目在开发中修改了项目文件不能进行热部署,着实影响效率。二、热部署配置2.1POM文件<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configura 查看详情

如何在 NestJS 中热重载联邦网关

】如何在NestJS中热重载联邦网关【英文标题】:howtohotreloadfederationgatewayinNestJS【发布时间】:2021-08-0809:44:46【问题描述】:问题在联邦嵌套应用程序中,网关会收集来自其他服务的所有模式并形成完整的图表。问题是,子模式改... 查看详情

具有相同资源的多个 JBoss Web 应用程序部署描述符

...0【问题描述】:我有一个耳朵,包括部署在jboss上的几个战争作为7.1.1。每场战争都有一个自定义的JBossWeb应用程序部署描述符(jboss-web.xml)声明上下文根和几个jndi数据 查看详情

Spring boot --> 在战争部署期间动态添加 jars(不是在战争生成期间)

】Springboot-->在战争部署期间动态添加jars(不是在战争生成期间)【英文标题】:Springboot-->Addjarsdynamicallyduringwardeployment(notduringwargeneration)【发布时间】:2019-02-1310:31:00【问题描述】:我已经删除了嵌入式tomcat并生成了战争... 查看详情

有没有办法在 Ktor 中热重载静态文件?

】有没有办法在Ktor中热重载静态文件?【英文标题】:Isthereanywaytohot-reloadstaticfilesinKtor?【发布时间】:2020-11-0720:19:45【问题描述】:我一直在关注ktortutorial制作网站,并注意到每次我对资源文件进行更改时,我都必须重新编译... 查看详情

在 Glassfish 中部署战争文件失败

】在Glassfish中部署战争文件失败【英文标题】:DeployWarFileinGlassfishFails【发布时间】:2016-02-0605:00:12【问题描述】:我正在尝试部署一些SmartGWT应用程序。他们都使用HSQLDB进行持久化。在Eclipse中使用SuperDevMode时,它​​们都运行... 查看详情

如何在 Liferay 门户 6.2 中部署地理服务器战争

】如何在Liferay门户6.2中部署地理服务器战争【英文标题】:HowtodeploygeoserverwarinLiferayportal6.2【发布时间】:2017-03-0716:32:00【问题描述】:我正在尝试在Liferay门户6.2中部署Geoserver战争,我按照以下步骤操作:在netbeans中编辑Geoserver... 查看详情

如何在部署阶段设置战争名称到 Nexus 存储库?

】如何在部署阶段设置战争名称到Nexus存储库?【英文标题】:HowtosetwarnameondeployphasetoNexusrepository?【发布时间】:2014-09-2512:32:50【问题描述】:我有用于存储Nexus快照的快照存储库。构建管道由Jenkins和构建作业组成。此构建作业... 查看详情

在 Grails 3 中部署战争后无法创建文件流

】在Grails3中部署战争后无法创建文件流【英文标题】:FilestreamcouldnotbecreatedafterdeployingwarinGrails3【发布时间】:2021-12-2209:33:02【问题描述】:我的代码最后进入else块,并在战争模式下(部署到tomcat)记录“找不到文件”,但在... 查看详情

Flyway 数据库迁移在部署新战争时自动运行

】Flyway数据库迁移在部署新战争时自动运行【英文标题】:Flywaydatabasemigrationtorunautomaticallywhennewwardeployed【发布时间】:2016-09-0611:32:18【问题描述】:每当我向服务器部署新战争时,我希望Flyway运行。部署服务器时flyway会自动运... 查看详情

无法在 Tomcat 8 上部署战争文件

】无法在Tomcat8上部署战争文件【英文标题】:UnabletodeploywarfileonTomcat8【发布时间】:2014-11-1520:17:45【问题描述】:您好以前我使用的是tomcat7,并将我的war文件部署在tomcat7(在linux服务器上)上。现在我已经安装了tomcat8(在linux... 查看详情

在 Wildfly 的战争部署期间无法访问 jar 中的类

】在Wildfly的战争部署期间无法访问jar中的类【英文标题】:classesinjararenotaccessibleduringwardeploymentinWildfly【发布时间】:2017-04-1914:21:03【问题描述】:我正在尝试将我的应用程序服务器从JBoss4迁移到Wildfly9。我的战争结构是myWar.war-... 查看详情

无法在 Apache Tomcat 6 上部署战争

】无法在ApacheTomcat6上部署战争【英文标题】:Can\'tdeploywaronApacheTomcat6【发布时间】:2011-12-0117:42:04【问题描述】:我正在使用64位DebianSqueeze并在eclipse上工作,我尝试通过将其粘贴到Tomcat的webapps文件夹中来部署一个war文件,但它... 查看详情

无法在 Wildfly 中部署 keyclock 快速入门示例战争

】无法在Wildfly中部署keyclock快速入门示例战争【英文标题】:Notabletodeploykeyclockquickstartexamplewarinwildfly【发布时间】:2020-09-0522:28:52【问题描述】:我无法重现tutorial在Wildfly上部署此应用程序。我下载了wildfly并启动wildfly-19.1.0.Fina... 查看详情

LifecycleException:无法在 Tomcat 中启动组件部署战争

】LifecycleException:无法在Tomcat中启动组件部署战争【英文标题】:LifecycleException:FailedtostartcomponentdeployingwarinTomcat【发布时间】:2016-07-2311:38:35【问题描述】:我用SpringBoot实现了restfulapi。当我在带有嵌入式Tomcat服务器的SpringBootSu... 查看详情

Spring AWS:在 Elastic Beanstalk 上部署战争时访问被拒绝错误

】SpringAWS:在ElasticBeanstalk上部署战争时访问被拒绝错误【英文标题】:SpringAWS:AccessdeniederrorwhendeployingwaronElasticBeanstalk【发布时间】:2015-11-1209:02:30【问题描述】:在AWSEB上使用SpringAWS部署战争时,我看到以下错误:org.springframewo... 查看详情