[ http://issues.apache.org/jira/browse/AXIS-1537?page=all ]
Venkat Reddy resolved AXIS-1537:
--------------------------------
Resolution: Cannot Reproduce
> getPreviousSibling results in NullPointerException on Envelopes
> ---------------------------------------------------------------
>
> Key: AXIS-1537
> URL: http://issues.apache.org/jira/browse/AXIS-1537
> Project: Axis
> Type: Bug
> Components: SAAJ
> Versions: beta-3
> Environment: Windows 2000, JDK 1.3
> Reporter: Michael Theroux
> Assignee: Venkat Reddy
> Priority: Minor
> Attachments: MessageElement.java.patch, MessageElement.java.patch,
> NodeImpl.java.diff
>
> I am attempting to run an XSLT directly against a result SOAPEnvelope and
> have hit a couple of issues.
> One issue is that SOAPEnvelope.getPreviousSibling() will result in a
> NullPointerException. Below is a code snippet:
> /*
> * Copyright 2001-2004 The Apache Software Foundation.
> *
> * Licensed under the Apache License, Version 2.0 (the "License");
> * you may not use this file except in compliance with the License.
> * You may obtain a copy of the License at
> *
> * http://www.apache.org/licenses/LICENSE-2.0
> *
> * Unless required by applicable law or agreed to in writing, software
> * distributed under the License is distributed on an "AS IS" BASIS,
> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> * See the License for the specific language governing permissions and
> * limitations under the License.
> */
> import org.apache.axis.client.Call;
> import org.apache.axis.client.Service;
> import javax.xml.namespace.QName;
> public class Test
> {
> public static void main(String [] args) {
> try {
> String endpoint =
>
> "http://webservices.sonicsw.com:8080/axis/CreditCheck.jws";
> Service service = new Service();
> Call call = (Call) service.createCall();
> call.setTargetEndpointAddress( new java.net.URL(endpoint) );
> call.setOperationName(new
> QName("http://webservices.sonicsw.com:8080/axis/CreditCheck.jws",
> "checkCredit") );
> // Call to addParameter/setReturnType as described in
> user-guide.html
> call.addParameter("custid",
> org.apache.axis.Constants.XSD_STRING,
> javax.xml.rpc.ParameterMode.IN);
> call.addParameter("amount",
> org.apache.axis.Constants.XSD_FLOAT,
> javax.xml.rpc.ParameterMode.IN);
> call.setReturnType(org.apache.axis.Constants.XSD_BOOLEAN);
> Boolean ret = (Boolean) call.invoke( new Object[] { "1234", new
> Float( 1.24 ) } );
> org.w3c.dom.Node n = call.getResponseMessage().getSOAPEnvelope();
> n.getPreviousSibling();
> /* Node parentNode = n.getParentNode();
> if( parentNode == null )
> System.err.println( "PARENT NODE IS NULL!" );*/
> // String test = com.sonicsw.xqimpl.script.Util.getElementAsString(
> (org.w3c.dom.Element)n, true );
> String test = org.apache.axis.utils.DOM2Writer.nodeToString( n,
> true );
> System.out.println("Resulting XML: " + test );
> } catch (Exception e) {
> e.printStackTrace();
> System.err.println(e.toString());
> }
> }
> }
> n.getPreviousSibling() throws a NullPointerException.
> A workaround is to call getAsDOM() on the Envelope.
> However, performance may make this undesireable. getAsDOM() will cause
> Axis's object model to be serialized as a string, then a subsequent
> deserialization will occur to create a native DOM because of performanceit
> results in a serialization of Axis's DOM structure to a string, then another
> deserialization occurs to create a DOM in your parser (such as Xerces).
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira