[
https://issues.apache.org/jira/browse/ODE-1050?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Igor Vorobiov updated ODE-1050:
-------------------------------
Description:
There is problem with service call for http binding with "text/plain" content
type. Such call fails with following exception:
{code}
java.lang.IllegalArgumentException: The content cannot be null
at
org.apache.commons.httpclient.methods.StringRequestEntity.<init>(StringRequestEntity.java:93)
at
org.apache.ode.axis2.httpbinding.HttpMethodConverter.prepareHttpMethod(HttpMethodConverter.java:214)
{code}
It is caused by extract text content directly from partValue but probably
should be done for the first child:
{code:title=org.apache.ode.axis2.httpbinding.HttpMethodConverter|borderStyle=solid}
...
} else if (HttpUtils.isXml(contentType)) {
if (log.isDebugEnabled()) log.debug("Content-Type [" + contentType +
"] equivalent to 'text/xml'");
// stringify the first element
String xmlString =
DOMUtils.domToString(DOMUtils.getFirstChildElement(partValue)); // <--should be
like here
requestEntity = new StringRequestEntity(xmlString, contentType,
contentCharset);
} else {
if (log.isDebugEnabled())
log.debug("Content-Type [" + contentType + "] NOT equivalent to
'text/xml'. The text content of part value will be sent as text");
// encoding conversion is managed by StringRequestEntity if necessary
requestEntity = new
StringRequestEntity(DOMUtils.getTextContent(partValue), contentType,
contentCharset); // <--get content directly
}
...
{code}
Attached example with *operation name="Hello"*
was:
There is problem with service call for http binding with "text/plain" content
type. Such call fails with following exception:
{code}
java.lang.IllegalArgumentException: The content cannot be null
at
org.apache.commons.httpclient.methods.StringRequestEntity.<init>(StringRequestEntity.java:93)
at
org.apache.ode.axis2.httpbinding.HttpMethodConverter.prepareHttpMethod(HttpMethodConverter.java:214)
{code}
It caused by extract text content directly from partValue but should be done
for the first child:
{code:title=org.apache.ode.axis2.httpbinding.HttpMethodConverter|borderStyle=solid}
...
} else if (HttpUtils.isXml(contentType)) {
if (log.isDebugEnabled()) log.debug("Content-Type [" +
contentType + "] equivalent to 'text/xml'");
// stringify the first element
String xmlString =
DOMUtils.domToString(DOMUtils.getFirstChildElement(partValue));
requestEntity = new StringRequestEntity(xmlString,
contentType, contentCharset);
} else {
if (log.isDebugEnabled())
log.debug("Content-Type [" + contentType + "] NOT
equivalent to 'text/xml'. The text content of part value will be sent as text");
// encoding conversion is managed by StringRequestEntity if
necessary
requestEntity = new
StringRequestEntity(DOMUtils.getTextContent(partValue), contentType,
contentCharset);
}
...
{code}
> Service call fails for http binding with "text/plain" content type
> ------------------------------------------------------------------
>
> Key: ODE-1050
> URL: https://issues.apache.org/jira/browse/ODE-1050
> Project: ODE
> Issue Type: Bug
> Components: Axis2 Integration
> Affects Versions: 1.3.6
> Reporter: Igor Vorobiov
>
> There is problem with service call for http binding with "text/plain" content
> type. Such call fails with following exception:
> {code}
> java.lang.IllegalArgumentException: The content cannot be null
> at
> org.apache.commons.httpclient.methods.StringRequestEntity.<init>(StringRequestEntity.java:93)
> at
> org.apache.ode.axis2.httpbinding.HttpMethodConverter.prepareHttpMethod(HttpMethodConverter.java:214)
> {code}
> It is caused by extract text content directly from partValue but probably
> should be done for the first child:
> {code:title=org.apache.ode.axis2.httpbinding.HttpMethodConverter|borderStyle=solid}
> ...
> } else if (HttpUtils.isXml(contentType)) {
> if (log.isDebugEnabled()) log.debug("Content-Type [" + contentType +
> "] equivalent to 'text/xml'");
> // stringify the first element
> String xmlString =
> DOMUtils.domToString(DOMUtils.getFirstChildElement(partValue)); // <--should
> be like here
> requestEntity = new StringRequestEntity(xmlString, contentType,
> contentCharset);
> } else {
> if (log.isDebugEnabled())
> log.debug("Content-Type [" + contentType + "] NOT equivalent to
> 'text/xml'. The text content of part value will be sent as text");
> // encoding conversion is managed by StringRequestEntity if necessary
> requestEntity = new
> StringRequestEntity(DOMUtils.getTextContent(partValue), contentType,
> contentCharset); // <--get content directly
> }
> ...
> {code}
> Attached example with *operation name="Hello"*
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)