Class 在 WSO2 自定义调解器中抛出异常
Class cast exception in WSO2 custom mediator
我正在实施自定义调解器。我需要更改中介 class 内的有效载荷。我正在使用以下代码
public boolean mediate(MessageContext context) {
System.out.println("inside the mediate class pRequest ");
try {
org.apache.axis2.context.MessageContext axis2MessageContext =
(org.apache.axis2.context.MessageContext) context;
//JsonUtil.newJsonPayload(axis2MessageContext,success, true, true);
}catch (Exception e) {
e.printStackTrace();
}
在执行时我得到 class 强制转换异常如下,
org.apache.synapse.core.axis2.Axis2MessageContext 无法转换为 org.apache.axis2.context.MessageContext
java.lang.ClassCastException: org.apache.synapse.core.axis2.Axis2MessageContext 无法转换为 org.apache.axis2.context.MessageContext
执行自定义调解器.....RESTUploadDocument
在 com.uia.document.RESTUploadDocument.mediate(RESTUploadDocument.java:43)
在 org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.java:94)
在 org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:109)
在 org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:71)
在 org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158)
在 org.apache.synapse.rest.Resource.process(Resource.java:331)
在 org.apache.synapse.rest.API.process(API.java:440)
在 org.apache.synapse.rest.RESTRequestHandler.apiProcess(RESTRequestHandler.java:135)
在 org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:113)
在 org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:71)
在 org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:325)
在 org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:98)
在 org.apache.axis2.engine.AxisEngine.r
代码中有什么问题吗,在自定义调解器中更改有效负载的正确方法是什么
org.apache.axis2.context.MessageContext axis2MC
= ((Axis2MessageContext) context).getAxis2MessageContext();
我正在实施自定义调解器。我需要更改中介 class 内的有效载荷。我正在使用以下代码
public boolean mediate(MessageContext context) {
System.out.println("inside the mediate class pRequest ");
try {
org.apache.axis2.context.MessageContext axis2MessageContext =
(org.apache.axis2.context.MessageContext) context;
//JsonUtil.newJsonPayload(axis2MessageContext,success, true, true);
}catch (Exception e) {
e.printStackTrace();
}
在执行时我得到 class 强制转换异常如下,
org.apache.synapse.core.axis2.Axis2MessageContext 无法转换为 org.apache.axis2.context.MessageContext java.lang.ClassCastException: org.apache.synapse.core.axis2.Axis2MessageContext 无法转换为 org.apache.axis2.context.MessageContext 执行自定义调解器.....RESTUploadDocument 在 com.uia.document.RESTUploadDocument.mediate(RESTUploadDocument.java:43) 在 org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.java:94) 在 org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:109) 在 org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:71) 在 org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158) 在 org.apache.synapse.rest.Resource.process(Resource.java:331) 在 org.apache.synapse.rest.API.process(API.java:440) 在 org.apache.synapse.rest.RESTRequestHandler.apiProcess(RESTRequestHandler.java:135) 在 org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:113) 在 org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:71) 在 org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:325) 在 org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:98) 在 org.apache.axis2.engine.AxisEngine.r 代码中有什么问题吗,在自定义调解器中更改有效负载的正确方法是什么
org.apache.axis2.context.MessageContext axis2MC
= ((Axis2MessageContext) context).getAxis2MessageContext();