2013-10-02 2 views
0

Возможно ли использовать org.mule.module.mongo.MongoObjectStore как стратегию кэша в потоке?Стратегия кэширования мула с использованием Mongo DB

Я попытался следующим, но я получаю ошибку

нуль (java.lang.NullPointerException)
org.mule.module.mongo.MongoObjectStore: 382 (нуль).

<mule xmlns:jdbc-ee="http://www.mulesoft.org/schema/mule/ee/jdbc" xmlns:mongo="http://www.mulesoft.org/schema/mule/mongo" xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" xmlns:core="http://www.mulesoft.org/schema/mule/core" version="EE-3.4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd 
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd 
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd 
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd 
http://www.mulesoft.org/schema/mule/ee/jdbc http://www.mulesoft.org/schema/mule/ee/jdbc/current/mule-jdbc-ee.xsd 
http://www.mulesoft.org/schema/mule/mongo http://www.mulesoft.org/schema/mule/mongo/2.0/mule-mongo.xsd"> 

    <ee:object-store-caching-strategy name="Mongo_Caching_Strategy" doc:name="Caching Strategy"> 
     <custom-object-store class="org.mule.module.mongo.MongoObjectStore"> 
      <spring:property name="host" value="localhost"/> 
      <spring:property name="port" value="27017"/> 
      <spring:property name="database" value="test"/> 
     </custom-object-store> 
    </ee:object-store-caching-strategy> 

    <flow name="htmlCacheFlow" doc:name="htmlCacheFlow"> 
     <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8084" path="cache" doc:name="HTTP"/> 
     <expression-transformer expression="#[payload.substring(payload.lastIndexOf('/') + 1)]" doc:name="Expression"/> 
     <ee:cache doc:name="Cache" cachingStrategy-ref="Mongo_Caching_Strategy" > 
      <logger message="getting item from db for key #[payload]" level="INFO" doc:name="Logger"/> 
      <expression-transformer expression="#[payload + 'asd']" doc:name="Expression"/> 
     </ee:cache> 
</flow> 
</mule> 

Может кто-нибудь привести пример о том, как настроить его?

ответ

3

Попробуйте это:

<mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:mos="http://www.mulesoft.org/schema/mule/mongo-object-store" 
     xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:script="http://www.mulesoft.org/schema/mule/scripting" 
     xmlns:test="http://www.mulesoft.org/schema/mule/test" xmlns:spring="http://www.springframework.org/schema/beans" 
     xmlns:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p" 
xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" 
     xsi:schemaLocation=" 
       http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd 
       http://www.mulesoft.org/schema/mule/mongo-object-store http://www.mulesoft.org/schema/mule/mongo-object-store/current/mule-mongo-object-store.xsd 
       http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd 
       http://www.mulesoft.org/schema/mule/scripting http://www.mulesoft.org/schema/mule/scripting/current/mule-scripting.xsd 
       http://www.mulesoft.org/schema/mule/test http://www.mulesoft.org/schema/mule/test/current/mule-test.xsd 
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
       http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd 
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd"> 

     <mos:config name="mos" database="test" /> 

     <ee:object-store-caching-strategy name="Mongo_Caching_Strategy"> 
      <spring-object-store ref="mos" /> 
     </ee:object-store-caching-strategy> 
    </mule> 

Уведомление конкретных пространств имен для мос.

+0

Спасибо за ответ, но, к сожалению, это ошибки, поскольку он пытается установить свойство store в MongoCloudConnectorConnectionManager вместо MongoObjectStore. – Stuart

+0

Извинения, я думал о соединителе Redis, где соединитель также является хранилищем объектов - Mongo, как вы правильно говорите, имеет отдельный класс для объектного магазина. Я изменил ответ. –

+0

Еще раз спасибо, это выглядит хорошо, но я не могу получить пространство имен для распознавания для mos в качестве местоположения mule-mongo-object-store.xsd, поскольку оно не включено в ссылочный файл mule.module.mongo-3.4.0.jar. META-INF spring.schemas и не существует по указанному адресу. Извините, если мне не хватает чего-то очевидного. – Stuart

Смежные вопросы