Xinjun,

can you run tcpmon to capture the soap request and use that xml with
your stand alone program to see if that works?

-- dims

On 5/3/07, Xinjun Chen <[EMAIL PROTECTED]> wrote:


Hi,

I wrote a sample custom serializer/deserializer to serialize an object. When
I use a standalone program to test the serializer, it works fine. But when I
deploy the serializer as part of a web service and and invoke the web
service through a SOAP request, I got the following null pointer execption.
I googled but didn't find the reason of this. Why does the NPE occur only
when I deploy the binder as part of the web service? I used the same
SOAPEnvelope to test.



java.lang.NullPointerException
        at
org.apache.axiom.om.impl.llom.OMStAXWrapper.generateEvents(OMStAXWrap
per.java:1115)
        at
org.apache.axiom.om.impl.llom.OMStAXWrapper.next(OMStAXWrapper.java:9
 11)
        at
com.mycom.CreditCardPaymentRequestBinder.toObject(CreditCardPaymentRequestBinder.java:138)



The toObject method definition is as follows:

 public CreditCardPaymentRequest toObject(QName qname, XMLStreamReader
reader) throws XMLStreamException {
  CreditCardPaymentRequest obj = new CreditCardPaymentRequest();

  String rootElementName = qname.getLocalPart ();
  String uri = qname.getNamespaceURI();

  if(!rootNsUri.equals(uri)) {
   throw new XMLStreamException("Invalid namespace " + uri + ". Expected
namespace uri is " + rootNsUri);
  }

  while(reader.hasNext()) {
   int type = reader.next(); // Line number: 138

   if(XMLStreamConstants.START_ELEMENT == type){
    String element = reader.getLocalName();

    if( rootLocalName.equals(element) ) {
     continue;
    } else if( element.equals("cardNumber") ){
     obj.setCardNumber(reader.getElementText());
    } else if( element.equals("expiryMonth") ) {
     obj.setExpiryMonth(reader.getElementText());
    } else if( element.equals("expiryYear") ) {
     obj.setExpiryYear(reader.getElementText());
    } else if( element.equals("brand") ) {
     obj.setBrand(reader.getElementText());
    } else if( element.equals("totalAmount") ) {
     obj.setTotalAmount(reader.getElementText());
    } else if( element.equals("currency") ) {
     obj.setCurrency(reader.getElementText());
    } else if( element.equals("systemId") ) {
     obj.setSystemId(reader.getElementText());
    } else if( element.equals("referenceNumber") ) {
     obj.setReferenceNumber(reader.getElementText());
    } else if( element.equals("op") ) {
     obj.setOp(reader.getElementText());
    } else {
     throw new RuntimeException("Unexpected element " + element);
    }
   }

   if(XMLStreamConstants.END_ELEMENT == type){
    if(reader.getLocalName().equals(rootElementName)){
     break;
    }
   }

  }

  return obj;
 }





Regards,

Xinjun


--
Davanum Srinivas :: http://davanum.wordpress.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to