[
https://issues.apache.org/jira/browse/AXIS2-3195?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Christopher Weiss updated AXIS2-3195:
-------------------------------------
Attachment: RampartBugDemo.zip
BugDemoConfigFiles.zip
I have attached a simple Eclipse project that demonstrates the Rampart
integration issue. If the aar file is deployed to an Axis2 web-service (1.1.1
or 1.2), it should echo whatever is sent to it. However, the request never even
makes it to the server because rampart throws an error trying to make the
request. To invoke the client, run
java -cp Echo.aar;PATH_TO_AXIS2_LIBS\* -Daxis2.repo=PATH_TO_AXIS2_REPO
-Daxis2.xml=PATH_TO_AXIS2_CONF org.example.www.echo.Client
http://AXIS2_SERVER_IP_ADDRESS:8080/axis2/services/Echo XML_FILE_TO_ECHO
I have also attached a sample axis2.xml config file that engages security, as
well as the client.properties and service.properties files (You still need an
x509 cert). Deploying the service without security and running the client works
as expected, but running the client with rampart engaged results in a null
pointer exception.
Here is the stack trace:
Thread [main] (Suspended (exception NullPointerException))
OMStAXWrapper.updateNextNode() line: 981
OMStAXWrapper.updateLastNode() line: 950
OMStAXWrapper.next() line: 913
StAXSOAPModelBuilder(StAXOMBuilder).next() line: 111
SOAPEnvelopeImpl(NodeImpl).build() line: 469
SOAPMessageImpl(DocumentImpl).build() line: 476
Axis2Util.getDocumentFromSOAPEnvelope(SOAPEnvelope, boolean) line: 107
RampartMessageData.<init>(MessageContext, boolean) line: 146
MessageBuilder.build(MessageContext) line: 56
RampartSender.invoke(MessageContext) line: 59
Phase.invoke(MessageContext) line: 382
AxisEngine.invoke(MessageContext) line: 522
AxisEngine.send(MessageContext) line: 655
OutInAxisOperationClient.send(MessageContext) line: 237
OutInAxisOperationClient.execute(boolean) line: 202
EchoStub.EchoOperation(OMElement) line: 127
Client.main(String[]) line: 47
> AXIOM parser's throwing NullPointerException if OMElement.getParent() is
> instance of OMDocument and Rampart is engaged
> ----------------------------------------------------------------------------------------------------------------------
>
> Key: AXIS2-3195
> URL: https://issues.apache.org/jira/browse/AXIS2-3195
> Project: Axis 2.0 (Axis2)
> Issue Type: Bug
> Environment: Windows XP SP2, Axis2 1.2, Tomcat 6.0.13
> Reporter: Christopher Weiss
> Attachments: BugDemoConfigFiles.zip, RampartBugDemo.zip
>
>
> Please see attached project to demonstrate the issue. With the axis2-1.2
> release and earlier, the AXIOM parser throws a NullPointerException when
> processing requests using Rampart:
> Thread [main] (Suspended (exception NullPointerException))
> OMStAXWrapper.updateNextNode() line: 981
> OMStAXWrapper.updateLastNode() line: 950
> OMStAXWrapper.next() line: 913
> StAXSOAPModelBuilder(StAXOMBuilder).next() line: 111
> SOAPEnvelopeImpl(NodeImpl).build() line: 469
> SOAPMessageImpl(DocumentImpl).build() line: 476
> Axis2Util.getDocumentFromSOAPEnvelope(SOAPEnvelope, boolean) line: 107
> RampartMessageData.<init>(MessageContext, boolean) line: 146
> MessageBuilder.build(MessageContext) line: 56
> RampartSender.invoke(MessageContext) line: 59
> Phase.invoke(MessageContext) line: 382
> AxisEngine.invoke(MessageContext) line: 522
> AxisEngine.send(MessageContext) line: 655
> OutInAxisOperationClient.send(MessageContext) line: 237
> OutInAxisOperationClient.execute(boolean) line: 202
> EchoStub.EchoOperation(OMElement) line: 127
> Client.main(String[]) line: 47
> The cause of the exception is the AXIOM parser's setting the boolean variable
> needToThrowEndDocument in the DOMStAXWrapper to true if the current node
> being parsed has a parent node of type OMDocument..
> Temp fix: In the code, when creating an AXIOM compatible schema, we did the
> following:
>
> try {
> // Get the schema is it is already AXIOM compatible, or convert it if it
> isn't.
> OMElement schema = docSchema instanceof OMDocument ? (OMElement) docSchema
> .getDocumentElement() :
> org.apache.axis2.util.XMLUtils.toOM(docSchema.getDocumentElement());
>
> // Workaround to fix an issue with the building the OMElement if the
> // parent is an OMDocument. Detach the element from the parent Document...
> if (schema.getParent() != null && schema.getParent() instanceof OMDocument)
> {
> schema.detach();
> }
>
> elementList.add(org.apache.axis2.databinding.utils.Constants.OM_ELEMENT_KEY);
> elementList.add(schema);
> } catch (Exception e) {
> throw new java.lang.RuntimeException("Can't convert schema to AXIOM!", e);
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]