I try to create ws-Policy Object with ADB Databinding from Axiom Policy

I use: Axis2 1.6.1

Problem: all inner xml tags in policy just as another Policy parsed and
therefore unexpected exception.

<wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy";>
<wsp:ExactlyOne>
<wsp:All>
<sp:EncryptedParts
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy";>
</sp:EncryptedParts>
<sp:SignedParts
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy";>
</sp:SignedParts>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>

-------------------------------------------------------
Policy.java:
/**
     * Factory class that keeps the parse method
     */
    public static class Factory {

        /**
         * static method to create the object
         * Precondition:
         *    - If this object is an element, the current or next start
element starts this object and any intervening reader events are ignorable
         *    - If this object is not an element, it is a complex type
and the reader is at the event just after the outer start element
         *
         * Postcondition:
         *    - If this object is an element, the reader is positioned
at its end element
         *   -  If this object is a complex type, the reader is
positioned at the end element of its outer element
         */
        public static Policy parse(javax.xml.stream.XMLStreamReader reader)
                throws java.lang.Exception {
            Policy object = new Policy();

            int event;
            java.lang.String nillableValue = null;
            java.lang.String prefix = "";
            java.lang.String namespaceuri = "";
            try {

                while (!reader.isStartElement()&&  !reader.isEndElement())
                    reader.next();

                // Note all attributes that were handled. Used to
differ normal
                // attributes
                // from anyAttributes.
                java.util.Vector handledAttributes = new
java.util.Vector();

                while (!reader.isEndElement()) {
                    if (reader.isStartElement()) {

                        if (reader.isStartElement()
&&  new javax.xml.namespace.QName(

"http://schemas.xmlsoap.org/ws/2004/09/policy";,

"Policy").equals(reader.getName())) {


object.setPolicy(org.xmlsoap.schemas.ws._2004._09.policy.Policy_type0.Factory
                                    .parse(reader));

                        } // End of if for expected property start element

                        else {
                            // A start element we are not expecting
indicates an
                            // invalid parameter was passed
                            throw new
org.apache.axis2.databinding.ADBException(
                                    "Unexpected subelement " +
reader.getName());
                        }

                    } else {
                        reader.next();
                    }
                } // end of while loop

            } catch (javax.xml.stream.XMLStreamException e) {
                throw new java.lang.Exception(e);
            }

            return object;
        }

    }// end of factory class
-------------------------------------------------
PolicyReference_type0.java :

  /**
      *  Factory class that keeps the parse method
      */
    public static class Factory{




        /**
        * static method to create the object
        * Precondition:  If this object is an element, the current or
next start element starts this object and any intervening reader events
are ignorable
        *                If this object is not an element, it is a
complex type and the reader is at the event just after the outer start
element
        * Postcondition: If this object is an element, the reader is
positioned at its end element
        *                If this object is a complex type, the reader
is positioned at the end element of its outer element
        */
        public static PolicyReference_type0
parse(javax.xml.stream.XMLStreamReader reader) throws java.lang.Exception{
            PolicyReference_type0 object =
                new PolicyReference_type0();

            int event;
            java.lang.String nillableValue = null;
            java.lang.String prefix ="";
            java.lang.String namespaceuri ="";
            try {

                while (!reader.isStartElement()&&  !reader.isEndElement())
                    reader.next();


                if
(reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","type";)!=null){
                  java.lang.String fullTypeName =
reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance";,
                        "type");
                  if (fullTypeName!=null){
                    java.lang.String nsPrefix = null;
                    if (fullTypeName.indexOf(":")>  -1){
                        nsPrefix =
fullTypeName.substring(0,fullTypeName.indexOf(":"));
                    }
                    nsPrefix = nsPrefix==null?"":nsPrefix;

                    java.lang.String type =
fullTypeName.substring(fullTypeName.indexOf(":")+1);

                            if (!"PolicyReference_type0".equals(type)){
                                //find namespace for the prefix
                                java.lang.String nsUri =
reader.getNamespaceContext().getNamespaceURI(nsPrefix);
                                return
(PolicyReference_type0)samples.quickstart.xsd.ExtensionMapper.getTypeObject(
                                     nsUri,type,reader);
                              }


                  }


                }




                // Note all attributes that were handled. Used to
differ normal attributes
                // from anyAttributes.
                java.util.Vector handledAttributes = new
java.util.Vector();



                    // handle attribute "URI"
                    java.lang.String tempAttribURI =

                                reader.getAttributeValue(null,"URI");

                   if (tempAttribURI!=null){
                         java.lang.String content = tempAttribURI;

                                                 object.setURI(

org.apache.axis2.databinding.utils.ConverterUtil.convertToAnyURI(tempAttribURI));

                    } else {

                               throw new
org.apache.axis2.databinding.ADBException("Required attribute URI is
missing");

                    }
                    handledAttributes.add("URI");

                    // handle attribute "Digest"
                    java.lang.String tempAttribDigest =

                                reader.getAttributeValue(null,"Digest");

                   if (tempAttribDigest!=null){
                         java.lang.String content = tempAttribDigest;

                                                 object.setDigest(

org.apache.axis2.databinding.utils.ConverterUtil.convertToBase64Binary(tempAttribDigest));

                    } else {

                    }
                    handledAttributes.add("Digest");

                    // handle attribute "DigestAlgorithm"
                    java.lang.String tempAttribDigestAlgorithm =


reader.getAttributeValue(null,"DigestAlgorithm");

                   if (tempAttribDigestAlgorithm!=null){
                         java.lang.String content =
tempAttribDigestAlgorithm;

                                                 object.setDigestAlgorithm(

org.apache.axis2.databinding.utils.ConverterUtil.convertToAnyURI(tempAttribDigestAlgorithm));

                    } else {

                    }
                    handledAttributes.add("DigestAlgorithm");

                        // now run through all any or extra attributes
                        // which were not reflected until now
                        for (int i=0; i<  reader.getAttributeCount();
i++) {
                            if
(!handledAttributes.contains(reader.getAttributeLocalName(i))) {
                                // this is an anyAttribute and we create
                                // an OMAttribute for this
                                org.apache.axiom.om.OMFactory factory =
org.apache.axiom.om.OMAbstractFactory.getOMFactory();
                                org.apache.axiom.om.OMAttribute attr =
                                    factory.createOMAttribute(

reader.getAttributeLocalName(i),
                                            factory.createOMNamespace(

reader.getAttributeNamespace(i), reader.getAttributePrefix(i)),
                                            reader.getAttributeValue(i));

                                // and add it to the extra attributes

                                         object.addExtraAttributes(attr);


                            }
                        }


                    reader.next();




            } catch (javax.xml.stream.XMLStreamException e) {
                throw new java.lang.Exception(e);
            }

            return object;
        }

        }//end of factory class


------------

java.lang.Exception: org.apache.axis2.databinding.ADBException:
Unexpected subelement
{http://schemas.xmlsoap.org/ws/2004/09/policy}ExactlyOne
    at
org.xmlsoap.schemas.ws._2004._09.policy.Policy$Factory.parse(Policy.java:349)
    at
policyUtils.MyPolicyUtils.convertNeethiToPolicy(MyPolicyUtils.java:78)
    at
test1.test1.PolicyServiceTest.testnormalizePolicy(PolicyServiceTest.java:55)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at junit.framework.TestCase.runTest(TestCase.java:154)
    at junit.framework.TestCase.runBare(TestCase.java:127)
    at junit.framework.TestResult$1.protect(TestResult.java:106)
    at junit.framework.TestResult.runProtected(TestResult.java:124)
    at junit.framework.TestResult.run(TestResult.java:109)
    at junit.framework.TestCase.run(TestCase.java:118)
    at junit.framework.TestSuite.runTest(TestSuite.java:208)
    at junit.framework.TestSuite.run(TestSuite.java:203)
    at
org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
    at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.apache.axis2.databinding.ADBException: Unexpected
subelement {http://schemas.xmlsoap.org/ws/2004/09/policy}ExactlyOne
    at
org.xmlsoap.schemas.ws._2004._09.policy.Policy$Factory.parse(Policy.java:339)
    ... 20 more

thanks



---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@axis.apache.org
For additional commands, e-mail: java-user-h...@axis.apache.org

Reply via email to