私の目標はばかばかしいほど単純です。Mule の Jersey モジュールからの json 応答を、次のような JSON 応答でラップしたいだけです。
{"status": "ok", message:<json-message>}
カスタムトランスフォーマーを使用しようとしました:
<flow name="sicsRest" doc:name="sicsRest">
<inbound-endpoint address="http://localhost:65432/RestServices"
exchange-pattern="request-response" doc:name="RestEntry" />
<jersey:resources doc:name="REST">
<component doc:name="Java">
<spring-object bean="serviceImpl" />
</component>
<custom-transformer returnClass="java.lang.String"
class="com.hyperborea.sicsbus.transformer.JsonTransformer"
doc:name="JsonTransformer" />
<jersey:exception-mapper
class="com.hyperborea.sicsbus.exception.JsonRestExceptionMapper" />
</jersey:resources>
</flow>
変圧器クラス:
public class JsonTransformer extends AbstractTransformer {
@Override
protected Object doTransform(Object src, String enc)
throws TransformerException {
return "{\"status\":\"ok\", \"message\":\"" + src + "\"}";
}
}
残念ながら、Mule の起動中に例外が発生します。
org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'custom-transformer'. One of '{"http://www.mulesoft.org/schema/mule/core":abstract-component, "http://www.mulesoft.org/schema/mule/jersey":exception-mapper}' is expected.
なにか提案を?