Доступ к кэш-контейнеру Infinispan не выполнен

В процессе переноса работающего приложения EAR в JBoss AS 7.1.1-Finel я столкнулся с другой проблемой, которую не могу решить. Вскоре EJB3 ищет контейнер кеша и сохраняет в нем данные.

org.infinispan.manager.CacheContainer container = null;
...
public static CacheContainer getCacheContainer() {
    if(container == null) {
        try {
            Context ctx = new InitialContext();
            container = (CacheContainer) ctx
                    .lookup("java:jboss/infinispan/container/mycache");
        } catch (NamingException e) {
            e.getCause();
        }
    }
    return container;
}

EAR определяет зависимость от infinispan в jboss-deploy-structure.xml следующим образом:

<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <module name="org.hibernate" slot="main" />
            <module name="org.infinispan" slot="main" />
            <module name="org.jboss.as.clustering.infinispan" />
        </dependencies>
    </deployment>
</jboss-deployment-structure>

При развертывании этого кода я получаю следующую ошибку:

Caused by: java.lang.NoClassDefFoundError: org/infinispan/manager/CacheContainer

Может ли кто-нибудь помочь мне?

С уважением, СК

1 ответ

Решение

Это будет работать только для развертывания верхнего уровня, как описано здесь. Возможно, вам придется переместить org.infinispan зависимость от соответствующего sub-deployment раздел:

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
  ...
  <!-- This corresponds to the top level deployment. For a war this is the war's module, for an ear -->
  <!-- This is the top level ear module, which contains all the classes in the EAR's lib folder     -->
  <deployment>
    <dependencies>
      ...
    </dependencies>
  </deployment>
  <sub-deployment name="myapp.war">
    <!-- This corresponds to the module for a web deployment -->
    <!-- it can use all the same tags as the <deployment> entry above -->
    <dependencies>
      <module name="org.infinispan" slot="main" />
    </dependencies>
  </sub-deployment>
  ...
</jboss-deployment-structure>
Другие вопросы по тегам