You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by Nathan Tran <na...@gmail.com> on 2007/05/15 01:31:10 UTC

WSS4J mailing list newbie

Hi all,

I'm a newbie to this mailing list..

I believe I found a bug while trying to use WSS4J 1.5.1 but I couldn't find
a way to submit the bug in JIRA web site..  It looks like an Axis
SOAPEnvelope.getHeaders() issue but it fails in WSS4J..

The issue occurs when there's a new line character after the
<soapenv:header> xml tag.

This block of code fails:

            /*
            * save the processed-header flags
            */
            ArrayList processedHeaders = new ArrayList();
            Iterator iterator = sm.getSOAPEnvelope
().getHeaders().iterator();
            while (iterator.hasNext()) {
                ///////////////////
                org.apache.axis.message.SOAPHeaderElement tempHeader = null;
                Object obj = iterator.next();
                tempHeader = (org.apache.axis.message.SOAPHeaderElement)
obj;

                if (tempHeader != null && tempHeader.isProcessed()) {
                    processedHeaders.add(tempHeader.getQName());
                }
            }

Since a newline is returned as Text object in the getHeaders() method, the
class cast fails..

Here's my workaround for now to get my code to work:

            /*
            * save the processed-header flags
            */
            ArrayList processedHeaders = new ArrayList();
            Iterator iterator = sm.getSOAPEnvelope
().getHeaders().iterator();
            while (iterator.hasNext()) {
                ///////////////////
                org.apache.axis.message.SOAPHeaderElement tempHeader = null;
                Object obj = iterator.next();
                if (obj instanceof org.apache.axis.message.SOAPHeaderElement)
{
                    tempHeader = (org.apache.axis.message.SOAPHeaderElement)
obj;
                }
                if (tempHeader != null && tempHeader.isProcessed()) {
                    processedHeaders.add(tempHeader.getQName());
                }
            }


Thanks and please let me know if there's a better way to fix this issue..
--Nathan