Hi, I am trying to use Payload Factory Mediator to transform a request.
*Original request's body* <soapenv:Body> *<m0:getQuote xmlns:m0="http://services.samples <http://services.samples>"> <m0:request><m0:symbol>IBM</m0:symbol></m0:request></m0:getQuote>* </soapenv:Body> *What I want* <soapenv:Body> *<GetQuote><symbol>IBM</symbol></GetQuote>* </soapenv:Body> *My Synapse configuration* <in> <payloadFactory media-type="xml"> <format> <GetQuote> <symbol>$1</symbol> </GetQuote> </format> <args> <arg xmlns:m0="http://services.samples" evaluator="xml" expression="//m0:symbol"/> </args> </payloadFactory> <class name="org.wso2.esb.mediator.ProtoBufMediator"/> </in> *But what I get in the transformed message's body is* <soapenv:Body> <GetQuote *xmlns="http://ws.apache.org/ns/synapse <http://ws.apache.org/ns/synapse>"*> <symbol>IBM</symbol> </GetQuote> </soapenv:Body> *My intention is not to have any namespaces inside message body. How can I achieve this?* I tried removing namespace inside my custom mediator using, *mc.getEnvelope().getBody().getFirstElement().getAllDeclaredNamespaces().remove();* It gave the following error when I send request from my client. WARN - FaultHandler ERROR_DETAIL : org.apache.synapse.SynapseException: Error occured in the mediation of the class mediator at org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.java:82) at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77) at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:47) at org.apache.synapse.mediators.filters.InMediator.mediate(InMediator.java:61) at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77) at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:47) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:228) at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:83) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:411) at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:183) at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.IllegalStateException at java.util.HashMap$HashIterator.remove(HashMap.java:938) at org.wso2.esb.mediator.ProtoBufMediator.mediate(ProtoBufMediator.java:36) at org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.java:78) ... 15 more Thanks. -- Rajkumar Rajaratnam Software Engineer | WSO2, Inc. Mobile +94777568639 | +94783498120
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
