![](/img/trans.png)
[英]WAR deployment to JBoss fails because it calls a SAR packaged in an EAR
[英]JBoss - how set deployment runtime name (not using CLI, but directly from ear/war)
我现在正面临着这个特殊问题而且我真的不知道是否有可能以某种方式实现这一目标。 但情况如下:
我们有这个webapp(Java EE 6) ,它被组织成两个模块。 一个是服务模块 ,另一个是前端模块 。 通过远程ejb进行通信,它们部署在不同的jboss服务器上(均为EAP 6.2)。 (模块只共享ejb接口(服务模块实现它们),并且在前端模块中,实际服务bean实现被注入(@Inject)并通过远程JNDI定位器实例化,然后使用远程处理)。 这一切都按预期工作。
但是当我们部署应用程序时(使用jboss管理控制台),我们有这样的app war名称: app-service-1.0.war ,在上传过程中,当jboss询问“ name ”和“ runtinme name ”时需要摆脱“版本”部分,因此运行时名称将像这个app-service (名称必须保持原样,版本号)。 但问题是此运行时名称始终基于部署名称,因此我们始终需要手动删除版本部分。 我知道可以通过CLI设置名称,但我想知道是否也可以设置在部署内部(war / ear文件),以便管理员不需要更改运行时名称使用Web管理控制台。 谢谢
绝对有可能,您只需要在WEB-INF
文件夹中创建名为jboss-web.xml
文件,其中包含以下内容:
<?xml version="1.0" ?>
<jboss-web>
<context-root>/app-service</context-root>
</jboss-web>
应该可以在/ app-service下访问打包,部署和您的应用。
有关选项的完整列表,请参阅https://docs.jboss.org/jbossweb/7.0.x/appdev/jbossweb.html
如果你想改变战争的名称,你可以像这样使用ShrinkWrap:
WebArchive wa = ShrinkWrap.create(WebArchive.class,"XXX.war")
然后,
JBAS015859:Deploiement de“XXX.war”(runtime-name:“XXX.war”)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.