Ich arbeite an Cache-Implementierung (exstremescale) für Maven Multi-Modul-Projekt, wo ich unter Maven Abhängigkeit AnmerkungCache Abfangjäger Anruf wird
<dependency>
<groupId>com.ibm.extremescale</groupId>
<artifactId>ogclient</artifactId>
<version>8.6.0.20150901-215917</version>
</dependency>
Added-Caching auf
@Override
@Cacheable(value = "productDetails", key = "#productId + #orgId")
public Product productRead(final String productId, final String productKey, final String orgId, final CRApplicationEnum sourceSystem) throws IntegrationException {
cache- hinzugefügt haben manager.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:cache="http://www.springframework.org/schema/cache"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd">
<cache:annotation-driven />
<bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager" primary="true">
<property name="caches">
<set>
<bean class="com.ibm.websphere.objectgrid.spring.ObjectGridCache"
p:name="eventDetails" p:map-name="${iev.eventDetails.mapName}"
p:object-grid-client-ref="wxsGridClient" />
<bean class="com.ibm.websphere.objectgrid.spring.ObjectGridCache"
p:name="eventValidationDetails" p:map-name="${iev.eventValidationDetails.mapName}"
p:object-grid-client-ref="wxsGridClient" />
<bean class="com.ibm.websphere.objectgrid.spring.ObjectGridCache"
p:name="productDetails" p:map-name="${ipr.productDetails.mapName}"
p:object-grid-client-ref="wxsGridClient" />
</set>
</property>
</bean>
<bean id="wxsCSDomain"
class="com.ibm.websphere.objectgrid.spring.ObjectGridCatalogServiceDomainBean"
p:catalog-service-endpoints="${xscale.catalogServiceEndpoint}" />
<bean id="wxsGridClient"
class="com.ibm.websphere.objectgrid.spring.ObjectGridClientBean"
p:catalog-service-domain-ref="wxsCSDomain" p:objectGridName="${wxs.objectGridName}" />
Caching funktioniert nur für ein Maven Modul des Projekts, ich kann den Cache Interceptor Aufruf sehen und für den Rest des Maven Moduls ignoriert es die @cacheable Annotation (es geht nicht zum Interceptor).
Wir haben nicht PostConstructor oder Self invokation
Wir atomikos als Transaktionsmanager und CXF -interceptors verwenden, die vor dem kommenden Caching Methoden ausgeführt werden.
Bitte helfen Sie mir auf dieser
arbeiten auf Modul und nicht die anderen ist ein bisschen komisch, würde ich sagen. Der Spring-Anwendungskontext interessiert nicht, woher Ihre Klassen geladen wurden. Verwenden Sie Eltern/Kind-Kontexte? –
Während des Debuggens erfuhren wir, dass die Interceptor-Liste, die von der JdkDynamicAopProxy-Klasse für die Bean mit cache-fähiger Annotation vorbereitet wird, keinen Cache-Interzeptor zur Liste hinzufügt. –
Können Sie eine Probe teilen, wäre das viel einfacher. Können Sie die Bean-Konfiguration dieser Bean anzeigen? Stellen Sie eine Schnittstelle zufällig zur Verfügung? –