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>
Может кто-нибудь привести пример о том, как настроить его?
Спасибо за ответ, но, к сожалению, это ошибки, поскольку он пытается установить свойство store в MongoCloudConnectorConnectionManager вместо MongoObjectStore. – Stuart
Извинения, я думал о соединителе Redis, где соединитель также является хранилищем объектов - Mongo, как вы правильно говорите, имеет отдельный класс для объектного магазина. Я изменил ответ. –
Еще раз спасибо, это выглядит хорошо, но я не могу получить пространство имен для распознавания для mos в качестве местоположения mule-mongo-object-store.xsd, поскольку оно не включено в ссылочный файл mule.module.mongo-3.4.0.jar. META-INF spring.schemas и не существует по указанному адресу. Извините, если мне не хватает чего-то очевидного. – Stuart