BadgerFish JSON Reader throws invalid exception
-----------------------------------------------

                 Key: AXIS2-5295
                 URL: https://issues.apache.org/jira/browse/AXIS2-5295
             Project: Axis2
          Issue Type: Bug
          Components: json
    Affects Versions: 1.6.1
            Reporter: Jeremy Nix
         Attachments: axiom_patch.txt, badgerfish_request.json, soap_request.xml

I was unable to use the Badgerfish JSON implementation out of the box.  It kept 
throwing an exception ["Element namespace from data source is 
"http://www.i2b2.org/xsd/hive/msg/1.1/"; not the expected].  I tried various 
configuration modifications before I dove into the code to see what was 
happening.  I tracked it down to an exception thrown in the Axiom-Impl 
OMSOurcedElementImpl#forceExpand method.  It is checking that its namespace 
matches whatever the datasource reader's namespace is.  The problem is that the 
OMSourcedElementImpl is created in AbstractJSONOMBuilder with no namespaces 
parsed out.  Parsing out of the namespaces occurs later once the 
BadgerFishXMLStreamReader is instantiated.

To get around this issue, I saw a few possible options.  1) Update the 
AbstractJSONOMBuilder (or JSONBadgerfishOMBuilder) and change the 
processDocument method to dig further into the stream and parse out the 
namespace(s).  The problem with this solution is that I was worried about what 
ramifications would result now that we have read past the first element/object 
in the JSON input stream.  2) Update OMSourcedElementImpl and disable this 
validation check.

I opted to go with the second solution.  I'm sure that it was put there for a 
reason, so a more elegant hack may involve looking at the content type and only 
avoiding this check if the content type is application/badgerfish/json (or 
similar).

I'm going to attach my hack along with an example SOAP request and its 
badgerfish json equivalent.  

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to