You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Address Endpoint definition should allow setting encoding attribute according to documentation.
It's not used correctly in Axis2 nor in Integration Studio, which does not have proper field for encoding and even removes the attribute in source view.
In class Axis2FlexibleMEPClient the usage is in method send().
//get the endpoint encoding attribute
String strCharSetEncoding = "";
if (endpoint.getCharSetEncoding() != null) {
strCharSetEncoding = ";" + endpoint.getCharSetEncoding();
}
And later in the same method.
//ESBJAVA-3447, Appending charset, if exist in property
ContentType contentType = new ContentType(trpContentType);
if (contentType.getParameter(HTTPConstants.CHAR_SET_ENCODING) != null) {
strCharSetEncoding = "; charset=" + contentType.getParameter(HTTPConstants.CHAR_SET_ENCODING);
}
With this code, it's expected, that the value of the encoding attribute should be charset=UTF-8 in order to properly set Content-Type as application/soap+xml;charset=UTF-8. However, if I do just that, SOAPMessageFormatter fails due to unknown encoding. Which is understandable, as the encoding value should be only UTF-8. In order to fix this issue, Axis2FlexibleMEPClient needs to be fixed as follows.
[2024-04-10 12:50:11,164] ERROR {Axis2Sender} - {proxy:SDX-IDM-Service} Unexpected error during sending message out. java.io.UnsupportedEncodingException: charset=UTF-8 org.apache.axis2.AxisFault: java.io.UnsupportedEncodingException: charset=UTF-8
at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
at org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:82)
at org.apache.synapse.transport.passthru.PassThroughHttpSender.sendRequestContent(PassThroughHttpSender.java:424)
at org.apache.synapse.transport.passthru.PassThroughHttpSender.invoke(PassThroughHttpSender.java:283)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)
at org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.send(DynamicAxisOperation.java:206)
at org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.executeImpl(DynamicAxisOperation.java:188)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:149)
at org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:675)
at org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:86)
at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:591)
at org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:423)
at org.apache.synapse.endpoints.AddressEndpoint.send(AddressEndpoint.java:79)
at org.apache.synapse.endpoints.ResolvingEndpoint.sendMessage(ResolvingEndpoint.java:82)
at org.apache.synapse.endpoints.ResolvingEndpoint.send(ResolvingEndpoint.java:59)
at org.apache.synapse.mediators.builtin.CallMediator.handleNonBlockingCall(CallMediator.java:387)
at org.apache.synapse.mediators.builtin.CallMediator.mediate(CallMediator.java:200)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:110)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:72)
at org.apache.synapse.config.xml.AnonymousListMediator.mediate(AnonymousListMediator.java:37)
at org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.java:205)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:110)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:72)
at org.apache.synapse.mediators.template.TemplateMediator.mediate(TemplateMediator.java:136)
at org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:170)
at org.apache.synapse.mediators.template.InvokeMediator.mediate(InvokeMediator.java:93)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:110)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:72)
at org.apache.synapse.config.xml.AnonymousListMediator.mediate(AnonymousListMediator.java:37)
at org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.java:205)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:110)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:72)
at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158)
at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:214)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:110)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:72)
at org.apache.synapse.config.xml.AnonymousListMediator.mediate(AnonymousListMediator.java:37)
at org.apache.synapse.config.xml.SwitchCase.mediate(SwitchCase.java:69)
at org.apache.synapse.mediators.filters.SwitchMediator.mediate(SwitchMediator.java:134)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:110)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:72)
at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158)
at org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:240)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:470)
at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:186)
at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: javax.xml.stream.XMLStreamException: java.io.UnsupportedEncodingException: charset=UTF-8
at com.ctc.wstx.stax.WstxOutputFactory.createSW(WstxOutputFactory.java:274)
at com.ctc.wstx.stax.WstxOutputFactory.createXMLStreamWriter(WstxOutputFactory.java:134)
at org.apache.axiom.util.stax.wrapper.XMLOutputFactoryWrapper.createXMLStreamWriter(XMLOutputFactoryWrapper.java:66)
at org.apache.axiom.om.util.StAXUtils$5.run(StAXUtils.java:397)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
at org.apache.axiom.om.util.StAXUtils.createXMLStreamWriter(StAXUtils.java:395)
at org.apache.axiom.om.impl.MTOMXMLStreamWriter.<init>(MTOMXMLStreamWriter.java:128)
at org.apache.axiom.om.impl.llom.OMSerializableImpl.serializeAndConsume(OMSerializableImpl.java:191)
at org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:78)
... 48 more
Caused by: java.io.UnsupportedEncodingException: charset=UTF-8
at java.base/sun.nio.cs.StreamEncoder.forOutputStreamWriter(StreamEncoder.java:67)
at java.base/java.io.OutputStreamWriter.<init>(OutputStreamWriter.java:99)
at com.ctc.wstx.stax.WstxOutputFactory.createSW(WstxOutputFactory.java:270)
... 56 more
The text was updated successfully, but these errors were encountered:
Address Endpoint definition should allow setting
encoding
attribute according to documentation.It's not used correctly in Axis2 nor in Integration Studio, which does not have proper field for encoding and even removes the attribute in source view.
In class
Axis2FlexibleMEPClient
the usage is in methodsend()
.And later in the same method.
With this code, it's expected, that the value of the
encoding
attribute should becharset=UTF-8
in order to properly set Content-Type asapplication/soap+xml;charset=UTF-8
. However, if I do just that,SOAPMessageFormatter
fails due to unknown encoding. Which is understandable, as the encoding value should be onlyUTF-8
. In order to fix this issue,Axis2FlexibleMEPClient
needs to be fixed as follows.SOAPMessageFormatter exception.
The text was updated successfully, but these errors were encountered: