Wildfly 如何删除 Mail 等模块

Wildfly how to remove module such as Mail

为了服务瘦身,我尝试去掉了javax.xml下的mail模块。

在 standalone-full.xml 中删除对该模块的所有引用并尝试 运行 Wildfly 时,我收到以下 异常

13:09:36,301 ERROR [org.jboss.as.controller] (Controller Boot Thread) JBAS014601: Error booting the container: org.jboss.modules.ModuleLoadError: javax.mail.api:main at org.jboss.modules.ModuleLoadException.toError(ModuleLoadException.java:78) [jboss-modules.jar:1.3.3.Final] at org.jboss.modules.Module.getPathsUnchecked(Module.java:1392) [jboss-modules.jar:1.3.3.Final] at org.jboss.modules.Module.loadModuleClass(Module.java:563) [jboss-modules.jar:1.3.3.Final] at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205) [jboss-modules.jar:1.3.3.Final] at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.3.Final] at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.3.Final] at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.3.Final] at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.3.Final] at org.wildfly.extension.batch.BatchSubsystemDefinition.(BatchSubsystemDefinition.java:86) at org.wildfly.extension.batch.BatchSubsystemParser.readElement(BatchSubsystemParser.java:59) at org.wildfly.extension.batch.BatchSubsystemParser.readElement(BatchSubsystemParser.java:47) at org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:110) [staxmapper-1.1.0.Final.jar:1.1.0.Final] at org.jboss.staxmapper.XMLExtendedStreamReaderImpl.handleAny(XMLExtendedStreamReaderImpl.java:69) [staxmapper-1.1.0.Final.jar:1.1.0.Final] at org.jboss.as.server.parsing.StandaloneXml.parseServerProfile(StandaloneXml.java:1131) [wildfly-server-8.2.1.Final.jar:8.2.1.Final] at org.jboss.as.server.parsing.StandaloneXml.readServerElement_1_4(StandaloneXml.java:458) [wildfly-server-8.2.1.Final.jar:8.2.1.Final] at org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:145) [wildfly-server-8.2.1.Final.jar:8.2.1.Final] at org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:107) [wildfly-server-8.2.1.Final.jar:8.2.1.Final] at org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:110) [staxmapper-1.1.0.Final.jar:1.1.0.Final] at org.jboss.staxmapper.XMLMapperImpl.parseDocument(XMLMapperImpl.java:69) [staxmapper-1.1.0.Final.jar:1.1.0.Final] at org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:104) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final] at org.jboss.as.server.ServerService.boot(ServerService.java:331) [wildfly-server-8.2.1.Final.jar:8.2.1.Final] at org.jboss.as.controller.AbstractControllerService.run(AbstractControllerService.java:259) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final] at java.lang.Thread.run(Unknown Source) [rt.jar:1.8.0_45]

13:09:36,321 INFO [org.jboss.as] (MSC service thread 1-8) JBAS015950: WildFly 8.2.1.Final "Tweek" stopped in 20ms Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0

谁能告诉我我做错了什么?

是否还有其他地方需要删除模块依赖项?如果有,它位于哪个文件中?

您混淆了模块和子系统。

要减少运行时服务的数量,您可以从 standalone.xml 中删除扩展和相应的子系统定义。

如果从安装中删除模块,则必须删除其所有依赖项或确保它们不在运行时使用。

这在您的示例中不起作用,因为 javaee.api 依赖于 javax.mail.api,而 org.wildfly.extension.batch(和大多数其他模块)依赖于 javaee.api