Unmarshalled Объекты null с XMLBeans на Glassfish 2.1 с JDK 1.6 - PullRequest
1 голос
/ 10 июня 2011

Я использую плагин XJC Maven с привязкой XMLBeans для генерации кода из WSDL + XSD.Код развернут на Glassfish 2.1.1, работающем на JDK 1.6

Я пытаюсь проанализировать строку XML, используя сгенерированные объекты.Синтаксический анализ объекта возможен без ошибок, но когда я вызываю методы getXXX () для объекта, все они равны нулю.

Я искал и искал некоторые подсказки о том, как это исправить, но безрезультатно.

Любая помощь будет оценена.

Анализируемый XML:


<ccs:printAdReturn xmlns:ccs="http://www.huntingtonmast.com/ccssAdInfo">
    <ccs:adPrice>244.0</ccs:adPrice>
    <ccs:sap-order-request>
        <sap-order-request xmlns="http://huntmast/pas">
            <business-partner xmlns="">2010011755</business-partner>
            <source-system xmlns="">05</source-system>
            <authorizer-name xmlns="">Unknown user</authorizer-name>
            <item-ad xmlns="">
                <booking-unit>JOBSFRZ</booking-unit>
                <content-component>905</content-component>
                <promo-code />
                <price-group>JB</price-group>
                <non-package>
                    <ad-schedule>
                        <publication-date>2009-09-26-04:00</publication-date>
                        <basic-booking-unit>JOBSFRZ</basic-booking-unit>
                    </ad-schedule>
                    <ad-schedule>
                        <publication-date>2009-09-27-04:00</publication-date>
                        <basic-booking-unit>JOBSFRZ</basic-booking-unit>
                    </ad-schedule>
                </non-package>
                <ad-content>
                    <template-id>CCSS_JOBS3_B</template-id>
                    <proof-required>false</proof-required>
                    <panel-field>
                        <field-name>JOB-TITLE</field-name>
                        <field-value>
                            <![CDATA[TECHS NEEDED!]]>
                        </field-value>
                    </panel-field>
                    <panel-field>
                        <field-name>KEYWORD</field-name>
                        <field-value>
                            <![CDATA[HVAC]]>
                        </field-value>
                    </panel-field>
                    <panel-field>
                        <field-name>CCSS-SIG2</field-name>
                        <field-value />
                    </panel-field>
                    <panel-field>
                        <field-name>J-FONT1</field-name>
                        <field-value>
                            <![CDATA[08]]>
                        </field-value>
                    </panel-field>
                    <panel-field>
                        <field-name>CCSS-SIG1</field-name>
                        <field-value />
                    </panel-field>
                    <panel-field>
                        <field-name>CCSS-ADTEXT1</field-name>
                        <field-value>
                            <![CDATA[Hello World, How are you ?]]>
                        </field-value>
                    </panel-field>
                </ad-content>
            </item-ad>
        </sap-order-request>
    </ccs:sap-order-request>
    <ccs:numberLines>8</ccs:numberLines>
</ccs:printAdReturn>

Код Java для синтаксического анализа

            oPrintResponse.setStatus(SUCCESS_CODE);
            oPrintResponse.setStatusMessage(STATUS_SUCCESS);

            XmlOptions validateOptions = new XmlOptions();
            validateOptions.setCharacterEncoding("utf-8");
            validateOptions.setValidateOnSet();
            ArrayList errorList = new ArrayList(); 
            validateOptions.setErrorListener(errorList); 

            PrintAdReturnDocument oAdReturnDocument = PrintAdReturnDocument.Factory.parse(pXml,validateOptions);

            oPrintResponse.setStatus(SUCCESS_CODE);
            oPrintResponse.setStatusMessage(STATUS_SUCCESS);

            XmlOptions validateOptions = new XmlOptions();
            validateOptions.setCharacterEncoding(cd.getSysAdmin(CCSS_XML_CHARACTER_ENCODING));
            validateOptions.setValidateOnSet();
            ArrayList errorList = new ArrayList(); 
            validateOptions.setErrorListener(errorList); 

            PrintAdReturnDocument oAdReturnDocument = PrintAdReturnDocument.Factory.parse(pXml,validateOptions);

                    if(oPrintAdReturn == null)
            {
                log.warn("getPrintAdReturn - oPrintAdReturn is null");
                return null;
            }
            CCSSPrint oCCSSPrint = new CCSSPrint();
            oCCSSPrint.setPrice(oPrintAdReturn.getAdPrice());

oPrintAdReturn.getAdPrice() всегда возвращает 0.0, а любые другие методы получения возвращают ноль.

...