Java Wildfly Swarm:类不在CDI Wildfly Swarm微服务的类路径中

Java Wildfly Swarm:类不在CDI Wildfly Swarm微服务的类路径中,java,cdi,wildfly-10,wildfly-swarm,Java,Cdi,Wildfly 10,Wildfly Swarm,我正在与wildfly swarm建立多个微服务。我有一个可以正常工作的微服务,还有一个在尝试启动CDI容器时失败,因为类com.google.common.cache.cache不在类路径中,而是从应用程序范围的Bean引用的。这是我得到的stacktrace: WELD-001474: Class [...].core.framework.timeseries.cache.TimeseriesDataCache is on the classpath, but was ignored bec

我正在与wildfly swarm建立多个微服务。我有一个可以正常工作的微服务,还有一个在尝试启动CDI容器时失败,因为类com.google.common.cache.cache不在类路径中,而是从应用程序范围的Bean引用的。这是我得到的stacktrace:

WELD-001474: Class [...].core.framework.timeseries.cache.TimeseriesDataCache is on the classpath, but was ignored because a class it references was not found: com.google.common.cache.Cache from [Module \"deployment.43ef34ae-45a8-4468-aa7d-40d75c0f0a79.war:main\" from Service Module Loader].
奇怪的是,两个微服务都从同一个maven依赖项使用这个类,但另一个服务的工作方式与预期的相同。主要区别在于,失败的微服务使用Ribbon(通过swarm依赖项),这带来了第二个Guava依赖项(版本14.0.1)。因此,我试图以任何方式从Ribbon(来自netflix guava模块)中排除guava依赖项(通过直接在主Ribbon工件上排除guava依赖项,并通过从主Ribbon aratifact中排除netflix guava依赖项,然后添加netflix guava的依赖项并将其排除在那里)。
通过在我的主类中手动排除14.0.1版的guava工件,我取得了部分成功,但这导致了其他问题,并且在我看来,这不是一个可行的选择(因为这种行为可能导致我们不得不手动排除任何在出现问题时带有某种依赖性的工件。
因此,我的问题是:有没有办法解决这个问题?或者我没有从swarm文档中得到解决方案?我现在真的很迷茫,非常感谢任何帮助/想法。以防万一,下面是构建我的部署的代码,我希望它能正常工作(无需手动添加必要的工件以排除不需要的工件):

public static void main(String[] args) throws Exception {
    Swarm container = new Swarm(args);
    final String offset = args.length > 0 ? args[0] : null;
    container = container.socketBindingGroup(new SocketBindingGroup("default-sockets","public","${jboss.socket.binding.port-offset:" +
            offset != null ? offset : "0" +
            "}"));
    container
            .fraction(new JAXRSFraction())
            .fraction(new CDIFraction())
            .fraction(new LoggingFraction());

    JAXRSArchive jaxrsArchive = ShrinkWrap.create(JAXRSArchive.class);
    jaxrsArchive.addAsResource(new ClassLoaderAsset("META-INF/beans.xml", FormulaDeployment.class.getClassLoader()), "classes/META-INF/beans.xml");
    jaxrsArchive.addAllDependencies();
    jaxrsArchive.addAsLibrary(container.createDefaultDeployment());
    jaxrsArchive.as(RibbonArchive.class).advertise();

    container.start().deploy(jaxrsArchive);

}