![](/img/trans.png)
[英]OpenShift template with the jboss/wildfly docker image that deploys my war (binary source strategy)
[英]WAR extension strategy in Wildfly
在一個WildFly項目中,我有一個很大的WAR文件(大約100 MB),其中包含JAR文件中的整個應用程序(EJB,GUI,Web服務等)
在此WAR中,有些函數實現了自定義的Function
接口(還有其他一些類,如AbstractFunction
等)。 現在,我想用用戶提供的功能擴展應用程序(它們應該在類路徑上,然后可以由應用程序訪問。
問題是我無法在主WAR之前部署Function
,因為Function
, AbstractFunction
等是尚未部署的WAR。
出於相同的原因,使用這些功能添加WildFly模塊失敗。
一種可能是重組WAR文件,以使Function
, AbstractionFunction
位於單獨部署的自己的jar中。 不幸的是,這將是主要的重構,目前尚無法實現。
那么將用戶定義函數放在JAR中放入WAR文件的唯一(簡單)可能性是嗎?
您可以使用EJB將用戶代碼部署為獨立的jar / war。 EJB實現Function
。 主模塊可以通過JNDI查找並找到它們。 另外,您還必須使諸如Function
和DTO之類的通用類可用於用戶模塊和主要戰爭。 最簡單的方法是主戰中的共享類。 您可以將META-INF / jboss-deployment-structure.xml添加到客戶端模塊:
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<dependencies>
<module name="deployment.main.war"/>
</dependencies>
</deployment>
</jboss-deployment-structure>
聚苯乙烯
我有類似的項目結構:
在我的core.war中,我有如下代碼:
Plugin srv = (Plugin) new InitialContext().lookup(jndi);
我的插件看起來像:
@Stateless
public class UserPlugin implements Plugin
JNDI看起來像java:global/user-plugin/UserPlugin
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.