[
https://issues.apache.org/jira/browse/AXIS2-5939?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17390616#comment-17390616
]
Siyana Slavova commented on AXIS2-5939:
---------------------------------------
Hello,
There is something wrong with the service, but it has one echo method with
following code:
public OMElement echo(OMElement element) throws XMLStreamException {
element.buildWithAttachments();
OMNode child = element.getFirstOMChild();
if (child.getType() == 4 && ((OMText)
child).getText().trim().startsWith("fault")) {
throw new RuntimeException("fault string found in echoOMElement");
} else {
return element;
}
}
When you call this code, the issue persists.
I've also attached refactored service - MyService.aar.
This is the correct url:
http://localhost:8080/axis2/services/MyService/echo?element=in.
The issue happens when you call the operation as a REST endpoint.
Thanks,
Siyana
> Axis2 not parsing correctly query parameters after upgrading xml schema
> -----------------------------------------------------------------------
>
> Key: AXIS2-5939
> URL: https://issues.apache.org/jira/browse/AXIS2-5939
> Project: Axis2
> Issue Type: Bug
> Affects Versions: 1.7.8
> Reporter: Siyana Slavova
> Assignee: Robert Lazarski
> Priority: Critical
> Attachments: Echo.aar, MyService.aar
>
>
> *Steps to reproduce:*
> # Deploy sample Echo.aar in axis 2.
> # Call [http://localhost:8080/axis2/services/MyService/echoOMElement?in=in]
> # Check the response.
> *Expected behaviour:*
> The response should be 200 ok and the om element should be properly echoed.
> *Actual behaviour:*
> The response is 500. Internally null pointer is thrown because the OMElement
> parameter in echoOMElement is null. The cause is that it is not correctly
> parsed in BuilderUtil.buildsoapMessage method. The parameter requests are not
> added in the soap envelope.
> On previous version of axis (before changing the schema) the qName of the
> particle element was null (on row 145), but after upgrading it is not and the
> program does not enter the if method, so the parameters are not added. See
> the code snippet
> {code:java}
> XmlSchemaParticle particle = complexType.getParticle();
> if (particle instanceof XmlSchemaSequence || particle instanceof
> XmlSchemaAll) {
> if (particle instanceof XmlSchemaSequence) {
> XmlSchemaSequence sequence = (XmlSchemaSequence) particle;
> // now we need to know some information from the binding operation.
> for (XmlSchemaSequenceMember sequenceMember : sequence.getItems()) {
> XmlSchemaElement innerElement = (XmlSchemaElement) sequenceMember;
> QName qName = innerElement.getWireName();
> // ignoring the elements without proper type and minoccurs zero
> if ((innerElement.getSchemaTypeName() == null) &&
> (innerElement.getMinOccurs() == 0)) {
> continue;
> }
> if (qName == null && innerElement.getSchemaTypeName()
>
> .equals(org.apache.ws.commons.schema.constants.Constants.XSD_ANYTYPE)) {
> createSOAPMessageWithoutSchema(soapFactory, bodyFirstChild,
> requestParameterMap);
> break;
> }
> checkMinOccurs(innerElement, qName, soapFactory,
> requestParameterMap,
> bodyFirstChild);
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]