簡體   English   中英

Wildfly中的WAR擴展策略

[英]WAR extension strategy in Wildfly

在一個WildFly項目中,我有一個很大的WAR文件(大約100 MB),其中包含JAR文件中的整個應用程序(EJB,GUI,Web服務等)

在此WAR中,有些函數實現了自定義的Function接口(還有其他一些類,如AbstractFunction等)。 現在,我想用用戶提供的功能擴展應用程序(它們應該在類路徑上,然后可以由應用程序訪問。

問題是我無法在主WAR之前部署Function ,因為FunctionAbstractFunction等是尚未部署的WAR。

出於相同的原因,使用這些功能添加WildFly模塊失敗。

一種可能是重組WAR文件,以使FunctionAbstractionFunction位於單獨部署的自己的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包含插件接口
  • 插件* .jar的集合(取決於core.war)

在我的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM