java.lang.NoClassDefFoundError: Lorg/infinispan/manager/EmbeddedCacheManager

java.lang.NoClassDefFoundError: Lorg/infinispan/manager/EmbeddedCacheManager

请帮忙。我正在尝试使用 Jboss 8.1.0 缓存功能做一个简单的缓存机制。这就是我实现项目结构的方式:

pomn 文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.jboss</groupId>
        <artifactId>jboss-parent</artifactId>
        <version>21</version>
        <relativePath />
    </parent>

    <groupId>org.jboss.spec</groupId>
    <artifactId>jboss-javaee-web-7.0</artifactId>
    <version>1.1.0.Final</version>
    <packaging>pom</packaging>

    <name>JBoss Java EE 7 Web Profile APIs</name>
    <description>JBoss Java EE 7 Web Profile APIs</description>

    <url>http://jboss.org/infinispan</url>
    <licenses>
        <license>
            <name>GNU Lesser General Public License</name>
            <url>http://www.gnu.org/copyleft/lesser.html</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <properties>
        <!-- Explicitly declaring the source encoding eliminates the following 
            message: -->
        <!-- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered 
            resources, i.e. build is platform dependent! -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <version.jboss.javaee.web>2.0.0.Final</version.jboss.javaee.web>
        <infinispan.version>6.0.2.Final</infinispan.version>
    </properties>

    <scm>
        <connection>scm:git:git@github.com:jboss/jboss-javaee-specs.git</connection>
        <developerConnection>scm:git:git@github.com:jboss/jboss-javaee-specs.git</developerConnection>
        <url>https://github.com/jboss/jboss-javaee-specs</url>
        <tag>jboss-javaee-7.0-1.1.0.Final</tag>
    </scm>

    <issueManagement>
        <system>jira</system>
        <url>http://jira.jboss.com/jira/browse/JBEE</url>
    </issueManagement>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.jboss.spec</groupId>
                <artifactId>jboss-javaee-7.0</artifactId>
                <version>${project.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>

        <!-- External JavaEE spec APIs (not part of the JBoss JavaEE Specs project) -->
        <dependency>
            <groupId>javax.enterprise</groupId>
            <artifactId>cdi-api</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.1-api</artifactId>
        </dependency>

        <!-- JBoss JavaEE API Specs Projects -->
        <dependency>
            <groupId>org.jboss.spec.javax.annotation</groupId>
            <artifactId>jboss-annotations-api_1.2_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.ejb</groupId>
            <artifactId>jboss-ejb-api_3.2_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.el</groupId>
            <artifactId>jboss-el-api_3.0_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.faces</groupId>
            <artifactId>jboss-jsf-api_2.2_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.interceptor</groupId>
            <artifactId>jboss-interceptors-api_1.2_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.json</groupId>
            <artifactId>jboss-json-api_1.0_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.resource</groupId>
            <artifactId>jboss-connector-api_1.7_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.servlet</groupId>
            <artifactId>jboss-servlet-api_3.1_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.servlet.jsp</groupId>
            <artifactId>jboss-jsp-api_2.3_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.taglibs</groupId>
            <artifactId>taglibs-standard-spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.transaction</groupId>
            <artifactId>jboss-transaction-api_1.2_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.websocket</groupId>
            <artifactId>jboss-websocket-api_1.1_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.ws.rs</groupId>
            <artifactId>jboss-jaxrs-api_2.0_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.xml.bind</groupId>
            <artifactId>jboss-jaxb-api_2.2_spec</artifactId>
        </dependency>

        <!-- JBoss JavaEE API Specs Projects -->
        <dependency>
            <groupId>org.jboss.spec.javax.annotation</groupId>
            <artifactId>jboss-annotations-api_1.2_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.ejb</groupId>
            <artifactId>jboss-ejb-api_3.2_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.el</groupId>
            <artifactId>jboss-el-api_3.0_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.faces</groupId>
            <artifactId>jboss-jsf-api_2.2_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.interceptor</groupId>
            <artifactId>jboss-interceptors-api_1.2_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.json</groupId>
            <artifactId>jboss-json-api_1.0_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.resource</groupId>
            <artifactId>jboss-connector-api_1.7_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.servlet</groupId>
            <artifactId>jboss-servlet-api_3.1_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.servlet.jsp</groupId>
            <artifactId>jboss-jsp-api_2.3_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.taglibs</groupId>
            <artifactId>taglibs-standard-spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.transaction</groupId>
            <artifactId>jboss-transaction-api_1.2_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.websocket</groupId>
            <artifactId>jboss-websocket-api_1.1_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.ws.rs</groupId>
            <artifactId>jboss-jaxrs-api_2.0_spec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.javax.xml.bind</groupId>
            <artifactId>jboss-jaxb-api_2.2_spec</artifactId>
        </dependency>



    </dependencies>


    <build>
        <!-- Set the name of the war, used as the context root when the app is 
            deployed -->
        <finalName>infinispan-jboss-as7</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.1.1</version>
                <configuration>
                    <!-- Java EE 6 doesn't require web.xml, Maven needs to catch up! -->
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                    <archive>
                        <manifestEntries>
                            <Dependencies>org.infinispan export</Dependencies>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>

            <!-- JBoss AS plugin to deploy war -->
            <plugin>
                <groupId>org.jboss.as.plugins</groupId>
                <artifactId>jboss-as-maven-plugin</artifactId>
                <version>7.1.1.Final</version>
            </plugin>

            <!-- Compiler plugin enforces Java 1.6 compatibility and activates annotation 
                processors -->
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>


    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ejb-plugin</artifactId>
            <configuration>
                <archive>
                    <manifestEntries>
                        <Dependencies>org.infinispan export</Dependencies>
                    </manifestEntries>
                </archive>
            </configuration>
        </plugin>
    </plugins>

</project>

还有一张带有其余依赖项的图片,很抱歉像这样添加它们(不好的做法)。我有那些在我的本地驱动器上。

项目方面:

standalone.xml 文件:

           <subsystem xmlns="urn:jboss:domain:infinispan:2.0">
        <cache-container name="web" default-cache="passivation" module="org.wildfly.clustering.web.infinispan">
            <local-cache name="passivation" batching="true">
                <file-store passivation="true" purge="false"/>
            </local-cache>
            <local-cache name="persistent" batching="true">
                <file-store passivation="false" purge="false"/>
            </local-cache>
        </cache-container>
        <cache-container name="ejb" default-cache="passivation" module="org.wildfly.clustering.ejb.infinispan" aliases="sfsb">
            <local-cache name="passivation" batching="true">
                <file-store passivation="true" purge="false"/>
            </local-cache>
            <local-cache name="persistent" batching="true">
                <file-store passivation="false" purge="false"/>
            </local-cache>
        </cache-container>
        <cache-container name="hibernate" default-cache="local-query" module="org.hibernate">
            <local-cache name="entity">
                <transaction mode="NON_XA"/>
                <eviction strategy="LRU" max-entries="10000"/>
                <expiration max-idle="100000"/>
            </local-cache>
            <local-cache name="local-query">
                <transaction mode="NONE"/>
                <eviction strategy="LRU" max-entries="10000"/>
                <expiration max-idle="100000"/>
            </local-cache>
            <local-cache name="timestamps">
                <transaction mode="NONE"/>
                <eviction strategy="NONE"/>
            </local-cache>
        </cache-container>
        <cache-container name="jboss-as7-quickstart" default-cache="my_local_cache">
            <local-cache name="entity">
                <transaction mode="NON_XA"/>
                <eviction strategy="LRU" max-entries="10000"/>
                <expiration max-idle="100000"/>
            </local-cache>
            <local-cache name="my_local_cache">
                <transaction mode="NONE"/>
                <eviction strategy="LRU" max-entries="10000"/>
                <expiration max-idle="100000"/>
            </local-cache>
            <local-cache name="timestamps">
                <transaction mode="NONE"/>
                <eviction strategy="NONE"/>
            </local-cache>
        </cache-container>
    </subsystem>

服务器的java代码:

import java.io.IOException;

import javax.annotation.Resource;
import javax.enterprise.inject.Produces;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.infinispan.Cache;
import org.infinispan.manager.EmbeddedCacheManager;

import javax.enterprise.context.ApplicationScoped;



@WebServlet("/TestCache")
public class TestCache extends HttpServlet {
    private static final long serialVersionUID = 1L;

    @Produces
    @ApplicationScoped
    @Resource(lookup = "java:jboss/infinispan/container/jboss-as7-quickstart")
    private static EmbeddedCacheManager container;


    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        Cache<String, Object> localCache = container.getCache();
    }

}

以及错误的日志:

11:05:18,748 INFO  [org.jboss.modules] (main) JBoss Modules version 1.3.3.Final
11:05:19,170 INFO  [org.jboss.msc] (main) JBoss MSC version 1.2.2.Final
11:05:19,309 INFO  [org.jboss.as] (MSC service thread 1-6) JBAS015899: WildFly 8.1.0.CR2 "Kenny" starting
11:05:21,368 INFO  [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) JBAS015003: Found infinispan-cdi.war in deployment directory. To trigger deployment create a file called infinispan-cdi.war.dodeploy
11:05:21,405 INFO  [org.jboss.as.server] (Controller Boot Thread) JBAS015888: Creating http management service using socket-binding (management-http)
11:05:21,446 INFO  [org.xnio] (MSC service thread 1-1) XNIO version 3.2.2.Final
11:05:21,462 INFO  [org.xnio.nio] (MSC service thread 1-1) XNIO NIO Implementation Version 3.2.2.Final
11:05:21,528 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 32) JBAS010280: Activating Infinispan subsystem.
11:05:21,531 INFO  [org.jboss.as.security] (ServerService Thread Pool -- 45) JBAS013171: Activating Security Subsystem
11:05:21,540 INFO  [org.jboss.as.jsf] (ServerService Thread Pool -- 38) JBAS012615: Activated the following JSF Implementations: [main]
11:05:21,542 INFO  [org.jboss.as.webservices] (ServerService Thread Pool -- 48) JBAS015537: Activating WebServices Extension
11:05:21,545 INFO  [org.jboss.as.naming] (ServerService Thread Pool -- 40) JBAS011800: Activating Naming Subsystem
11:05:21,548 WARN  [org.jboss.as.txn] (ServerService Thread Pool -- 46) JBAS010153: Node identifier property is set to the default value. Please make sure it is unique.
11:05:21,554 INFO  [org.jboss.as.security] (MSC service thread 1-2) JBAS013170: Current PicketBox version=4.0.21.Beta1
11:05:21,558 INFO  [org.jboss.as.connector.logging] (MSC service thread 1-13) JBAS010408: Starting JCA Subsystem (IronJacamar 1.1.5.Final)
11:05:21,645 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 47) JBAS017502: Undertow 1.0.10.Final starting
11:05:21,645 INFO  [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)
11:05:21,648 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-15) JBAS017502: Undertow 1.0.10.Final starting
11:05:21,653 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-6) JBAS010417: Started Driver service with driver-name = h2
11:05:21,775 INFO  [org.jboss.as.mail.extension] (MSC service thread 1-2) JBAS015400: Bound mail session [java:jboss/mail/Default]
11:05:21,775 INFO  [org.jboss.as.naming] (MSC service thread 1-14) JBAS011802: Starting Naming Service
11:05:22,036 INFO  [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010403: Deploying JDBC-compliant driver class oracle.jdbc.OracleDriver (version 11.2)
11:05:22,039 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-15) JBAS010417: Started Driver service with driver-name = ojdbc6
11:05:22,354 INFO  [org.jboss.remoting] (MSC service thread 1-1) JBoss Remoting version 4.0.3.Final
11:05:22,380 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 47) JBAS017527: Creating file handler for path E:/Ditech/MORE/PPN
11:05:22,410 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 47) JBAS017527: Creating file handler for path E:\Ditech\MORE\Server\JBoss\JBoss/docs
11:05:22,427 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-11) JBAS017525: Started server default-server.
11:05:22,464 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-14) JBAS017531: Host default-host starting
11:05:22,635 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-5) JBAS017519: Undertow HTTP listener default listening on /0.0.0.0:8080
11:05:22,873 INFO  [org.jboss.as.server.deployment.scanner] (MSC service thread 1-9) JBAS015012: Started FileSystemDeploymentService for directory E:\Ditech\MORE\Server\JBoss\JBoss\standalone\deployments
11:05:22,877 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-1) JBAS015876: Starting deployment of "infinispan-cdi.war" (runtime-name: "infinispan-cdi.war")
11:05:22,893 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-16) JBAS010400: Bound data source [java:jboss/jdbc/PpnDS]
11:05:22,894 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-6) JBAS010400: Bound data source [java:jboss/jdbc/PUDS]
11:05:22,895 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-3) JBAS010400: Bound data source [java:jboss/datasources/ExampleDS]
11:05:23,600 INFO  [org.jboss.ws.common.management] (MSC service thread 1-5) JBWS022052: Starting JBoss Web Services - Stack CXF Server 4.2.4.Final
11:05:24,777 INFO  [org.jboss.weld.deployer] (MSC service thread 1-15) JBAS016002: Processing weld deployment infinispan-cdi.war
11:05:24,912 INFO  [org.hibernate.validator.internal.util.Version] (MSC service thread 1-15) HV000001: Hibernate Validator 5.1.0.Final
11:05:25,204 INFO  [org.jboss.weld.deployer] (MSC service thread 1-12) JBAS016005: Starting Services for CDI deployment: infinispan-cdi.war
11:05:25,272 INFO  [org.jboss.weld.Version] (MSC service thread 1-12) WELD-000900: 2.1.2 (Final)
11:05:25,337 INFO  [org.jboss.weld.deployer] (MSC service thread 1-11) JBAS016008: Starting weld service for deployment infinispan-cdi.war
11:05:25,788 WARN  [org.jboss.weld.Event] (MSC service thread 1-14) WELD-000411: Observer method [BackedAnnotatedMethod] org.infinispan.cdi.util.defaultbean.DefaultBeanExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>, BeanManager) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
11:05:27,678 INFO  [org.infinispan.cdi.util.defaultbean.DefaultBeanExtension] (MSC service thread 1-14) Preventing install of default bean Producer Method [Configuration] with qualifiers [@Synthetic @Any] declared as [[UnbackedAnnotatedMethod] @Produces @DefaultBeanInformation @ConfigureCache @Synthetic @DefaultBean public org.infinispan.cdi.DefaultEmbeddedCacheConfigurationProducer.getDefaultEmbeddedCacheConfiguration(@OverrideDefault Instance<Configuration>)]
11:05:28,319 INFO  [javax.enterprise.resource.webcontainer.jsf.config] (MSC service thread 1-8) Initializing Mojarra 2.2.6-jbossorg-4 20140501-1134 for context '/infinispan-cdi'
11:05:29,683 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-8) JBAS017534: Registered web context: /infinispan-cdi
11:05:29,783 INFO  [org.jboss.as.server] (ServerService Thread Pool -- 28) JBAS018559: Deployed "infinispan-cdi.war" (runtime-name : "infinispan-cdi.war")
11:05:29,930 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on http://0.0.0.0:9990/management
11:05:29,932 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://0.0.0.0:9990
11:05:29,933 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015874: WildFly 8.1.0.CR2 "Kenny" started in 11766ms - Started 307 of 374 services (115 services are lazy, passive or on-demand)
11:05:39,866 INFO  [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 2) JBAS015003: Found CacheTest6.war in deployment directory. To trigger deployment create a file called CacheTest6.war.dodeploy
11:05:39,888 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-3) JBAS015876: Starting deployment of "CacheTest6.war" (runtime-name: "CacheTest6.war")
11:05:39,966 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-16) MSC000001: Failed to start service jboss.deployment.unit."CacheTest6.war".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.unit."CacheTest6.war".POST_MODULE: JBAS018733: Failed to process phase POST_MODULE of deployment "CacheTest6.war"
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:166) [wildfly-server-8.1.0.CR2.jar:8.1.0.CR2]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_131]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_131]
    at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_131]
Caused by: java.lang.RuntimeException: JBAS018757: Error getting reflective information for class test.TestCache with ClassLoader ModuleClassLoader for Module "deployment.CacheTest6.war:main" from Service Module Loader
    at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:72) [wildfly-server-8.1.0.CR2.jar:8.1.0.CR2]
    at org.jboss.as.ee.metadata.MethodAnnotationAggregator.runtimeAnnotationInformation(MethodAnnotationAggregator.java:58)
    at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.handleAnnotations(InterceptorAnnotationProcessor.java:107)
    at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processComponentConfig(InterceptorAnnotationProcessor.java:92)
    at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(InterceptorAnnotationProcessor.java:77)
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:159) [wildfly-server-8.1.0.CR2.jar:8.1.0.CR2]
    ... 5 more
Caused by: java.lang.NoClassDefFoundError: Lorg/infinispan/manager/EmbeddedCacheManager;
    at java.lang.Class.getDeclaredFields0(Native Method) [rt.jar:1.8.0_131]
    at java.lang.Class.privateGetDeclaredFields(Class.java:2583) [rt.jar:1.8.0_131]
    at java.lang.Class.getDeclaredFields(Class.java:1916) [rt.jar:1.8.0_131]
    at org.jboss.as.server.deployment.reflect.ClassReflectionIndex.<init>(ClassReflectionIndex.java:57) [wildfly-server-8.1.0.CR2.jar:8.1.0.CR2]
    at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:68) [wildfly-server-8.1.0.CR2.jar:8.1.0.CR2]
    ... 10 more
Caused by: java.lang.ClassNotFoundException: org.infinispan.manager.EmbeddedCacheManager from [Module "deployment.CacheTest6.war:main" from Service Module Loader]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213) [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]
    ... 15 more

11:05:39,988 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 1) JBAS014613: Operation ("deploy") failed - address: ([("deployment" => "CacheTest6.war")]) - failure description: {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"CacheTest6.war\".POST_MODULE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"CacheTest6.war\".POST_MODULE: JBAS018733: Failed to process phase POST_MODULE of deployment \"CacheTest6.war\"
    Caused by: java.lang.RuntimeException: JBAS018757: Error getting reflective information for class test.TestCache with ClassLoader ModuleClassLoader for Module \"deployment.CacheTest6.war:main\" from Service Module Loader
    Caused by: java.lang.NoClassDefFoundError: Lorg/infinispan/manager/EmbeddedCacheManager;
    Caused by: java.lang.ClassNotFoundException: org.infinispan.manager.EmbeddedCacheManager from [Module \"deployment.CacheTest6.war:main\" from Service Module Loader]"}}
11:05:40,103 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 1) JBAS018559: Deployed "CacheTest6.war" (runtime-name : "CacheTest6.war")
11:05:40,120 INFO  [org.jboss.as.controller] (DeploymentScanner-threads - 1) JBAS014774: Service status report
JBAS014777:   Services which failed to start:      service jboss.deployment.unit."CacheTest6.war".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.unit."CacheTest6.war".POST_MODULE: JBAS018733: Failed to process phase POST_MODULE of deployment "CacheTest6.war"

经过一天半的时间,我终于弄明白了。这是适合我的新实现:

pomn 文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <artifactId>infinispan-simple-tutorials-jcache</artifactId>
    <parent>
        <groupId>org.jboss</groupId>
        <artifactId>jboss-parent</artifactId>
        <version>21</version>
        <relativePath />
    </parent>
    <name>Infinispan Simple Tutorials: JCache</name>

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <executable>java</executable>
                    <arguments>
                        <argument>-Djava.net.preferIPv4Stack=true</argument>
                        <argument>-Djava.util.logging.config.file=src/main/resources/logging.properties</argument>
                        <argument>-classpath</argument>
                        <classpath />
                        <argument>org.infinispan.tutorial.simple.jcache.InfinispanJCache</argument>
                    </arguments>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

我已经添加了存在于 Jboss 文件夹中的 jar 文件,(Gest 搜索它们)对我来说这个路径是

[jboss-folder]\standalone\tmp\vfs\deployment\deployment1d3f5df834f24586\

从这里您必须参考几乎所有的 jar 文件和文件夹。这是我在项目中导入的示例:

请不要忘记添加对 poi jar 的引用以避免违反资源访问错误。

现在由于某种原因,我收到了那个错误,因为 war 文件里面没有 jar 文件。 所以我不得不手动复制所有在 war 文件的 lib 文件夹中添加到项目的 jars。

最后 java 部分:

import java.io.IOException;
import java.util.Date;

import javax.annotation.Resource;
import javax.cache.CacheManager;
import javax.cache.Caching;
import javax.cache.configuration.MutableConfiguration;
import javax.cache.expiry.AccessedExpiryPolicy;
import javax.cache.expiry.Duration;
import javax.enterprise.inject.Produces;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.infinispan.manager.CacheContainer;
import org.infinispan.manager.EmbeddedCacheManager;

@WebServlet("/TestCache")
public class TestCache extends HttpServlet {
    private static final long serialVersionUID = 1L;

/*  @Resource(lookup = "java:jboss/infinispan/container/jboss-as7-quickstart")
    private EmbeddedCacheManager container;*/

    @Resource(lookup = "java:jboss/infinispan/container/myCache")
    private CacheContainer container; 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/*      CacheManager cacheManager = Caching.getCachingProvider().getCacheManager();
        MutableConfiguration<String, Date> config = new MutableConfiguration<String, Date>();

        config.setExpiryPolicyFactory(AccessedExpiryPolicy.factoryOf(Duration.FIVE_MINUTES)).setStatisticsEnabled(true);
        cacheManager.createCache("simpleCache",config);
        javax.cache.Cache<String, Long> localCache= cacheManager.getCache("simpleCache");*/

        System.out.println(container.toString());
    }
}

并且不要忘记 jboss standalone.xml 文件:

  <subsystem xmlns="urn:jboss:domain:infinispan:2.0">
        <cache-container name="web" default-cache="passivation" module="org.wildfly.clustering.web.infinispan">
            <local-cache name="passivation" batching="true">
                <file-store passivation="true" purge="false"/>
            </local-cache>
            <local-cache name="persistent" batching="true">
                <file-store passivation="false" purge="false"/>
            </local-cache>
        </cache-container>
        <cache-container name="ejb" default-cache="passivation" module="org.wildfly.clustering.ejb.infinispan" aliases="sfsb">
            <local-cache name="passivation" batching="true">
                <file-store passivation="true" purge="false"/>
            </local-cache>
            <local-cache name="persistent" batching="true">
                <file-store passivation="false" purge="false"/>
            </local-cache>
        </cache-container>
        <cache-container name="hibernate" default-cache="local-query" module="org.hibernate">
            <local-cache name="entity">
                <transaction mode="NON_XA"/>
                <eviction strategy="LRU" max-entries="10000"/>
                <expiration max-idle="100000"/>
            </local-cache>
            <local-cache name="local-query">
                <transaction mode="NONE"/>
                <eviction strategy="LRU" max-entries="10000"/>
                <expiration max-idle="100000"/>
            </local-cache>
            <local-cache name="timestamps">
                <transaction mode="NONE"/>
                <eviction strategy="NONE"/>
            </local-cache>
        </cache-container>
        <cache-container name="jboss-as7-quickstart" default-cache="my_local_cache">
            <local-cache name="entity">
                <transaction mode="NON_XA"/>
                <eviction strategy="LRU" max-entries="10000"/>
                <expiration max-idle="100000"/>
            </local-cache>
            <local-cache name="my_local_cache">
                <transaction mode="NONE"/>
                <eviction strategy="LRU" max-entries="10000"/>
                <expiration max-idle="100000"/>
            </local-cache>
            <local-cache name="timestamps">
                <transaction mode="NONE"/>
                <eviction strategy="NONE"/>
            </local-cache>
        </cache-container>
        <cache-container name="myCache" default-cache="cachedb">
            <local-cache name="cachedb"/>
        </cache-container>
    </subsystem>

结果:

P.S。感谢 "AKSW" 对这个问题的暗示。