[ https://issues.apache.org/jira/browse/OFBIZ-244?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Scott Gray closed OFBIZ-244. ---------------------------- Resolution: Fixed Fix Version/s: SVN trunk Assignee: Scott Gray Should be fixed in rev. 607833 although I didn't test for this specific error > XML validation warning in UpsServices.upsRateInquire > ---------------------------------------------------- > > Key: OFBIZ-244 > URL: https://issues.apache.org/jira/browse/OFBIZ-244 > Project: OFBiz > Issue Type: Bug > Components: framework > Reporter: Jacopo Cappellato > Assignee: Scott Gray > Priority: Minor > Fix For: SVN trunk > > > Copied from an issue in the old server from Matt Kasubaski > I've hooked up the UPS service for ground, air, and next day, and I'm seeing > an error being printed to system.err when the service is used. > Here's the error: > [Error] :1:54: cvc-elt.1: Cannot find the declaration of element > 'RatingServiceSelectionResponse'. > > Here's what I've done so far looking into this to make sure it wasn't a > change I made to my custom version: > Updated my stock version of OfBiz to today's code (just in case there's been > a change.) > Modified shipment.properties for the UPS username/password so UPS will > correctly respond. > Modified the database table "product_store_shipment_meth" such that the UPS > methods have a service_name of "upsRateEstimate". > Started up Ofbiz while redirecting standard out to a file. (So I can see > standard error better.) > To test: > Place a large widget in the cart and proceeded to checkout. > Once I navigated to the shipping screen, I would see the error. (One for > each UPS service call.) > I spent some time digging into the code and think I found out why and the fix > but would like confirmation that this really is the fix. > > UpsServices.upsRateInquire calls Util.XML.readXmlDocument with the validate > flag set to false. > However, UtilXML.readXmlDocument has some code which doesn't look right. > At line 220 or so, the code reads: > factory.setValidating(validate); > factory.setNamespaceAware(true); > factory.setAttribute("http://xml.org/sax/features/validation", > Boolean.TRUE ); > > factory.setAttribute("http://apache.org/xml/features/validation/schema", > Boolean.TRUE ); > > From what I've read about the two setAttribute values, they control XML > validation for the SaxParser. Since UPS doesn't have a DTD, it passes in > false and no DTD validation occurs because of the setValidating code. > However, there still is some validating going on since I am seeing error > messages when both are set to TRUE and no error messages when they're set to > FALSE. (If setValidating is set to true, a different error is displayed as > one would expect.) > > Would this be the correct fix then, or is this turning off something that > needs to be there? > factory.setValidating(validate); > > factory.setNamespaceAware(true); > factory.setAttribute("http://xml.org/sax/features/validation", new > Boolean(validate)); > > factory.setAttribute("http://apache.org/xml/features/validation/schema", new > Boolean(validate)); > > As a side note when I was playing around with different combinations of which > of the two attributes were set to true vs false I seen some unexpected > behavior. According to the xml apache site, > http://xml.apache.org/xerces2-j/features.html#validation, if > xml.org/sax/features/validation is false, then no validation is done, but > what I was seeing was apache.org/xml/features/validation/schema has to be set > to false for the error to disappear. > > From what I can see, everything works fine as far as getting the correct > results from UPS. I'm just trying to clean up errors that appear in the log. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.