繁体   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