В коде пользовательского Java-медиатора можно получить доступ к axis2-контексту, прикастовав контекст сообщения Axis2MessageContext и вызвав getAxis2MessageContext() (это может понадобится, например, для получения параметров прокси-сервиса). В script-медиаторе, к сожалению, метода getAxis2MessageContext() нет, при попытке сделать mc.getAxis2MessageContext() валится:
com.sun.phobos.script.util.ExtendedScriptException: org.mozilla.javascript.EcmaError: TypeError: Cannot find function ge
tAxis2MessageContext. (<Unknown Source>#2) in <Unknown Source> at line number 2
at com.sun.phobos.script.javascript.RhinoCompiledScript.eval(RhinoCompiledScript.java:68)
at javax.script.CompiledScript.eval(CompiledScript.java:92)
Дело в том, что переменная mc в скрипт-медиаторах является объектом класса org.apache.synapse.mediators.bsf.ScriptMessageContext (а не org.apache.synapse.core.axis2.Axis2MessageContext, как в случае с Java-медиатором), в котором действительно нет метода getAxis2MessageContext(). Поэтому, к сожалению, функционал, который можно реализовать с помощью script-медиатора, несколько уже, чем таковой для Java-медиаторов.
Комментариев нет:
Отправить комментарий