axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Shameera Rathnayaka <shameerai...@gmail.com>
Subject Re: Axis2 - JSON mapped - namespace (mismatch)
Date Mon, 30 Apr 2012 18:54:42 GMT
Hi Matthias,

org.apache.axis2.json.AbstractJSONOMBuilder line 111
>         /*
>         Now we have to read the localname and prefix from the input stream
>         if there is not prefix, message starts like {"foo":
>         if there is a prefix, message starts like {"prefix:foo":
>          */
>                                         :
>             //if the part we read ends with ", there is no prefix,
> otherwise it has a prefix
>                                         :
>                     prefix = localName.substring(1, localName.length()) +
> ":";
>


                                      :
>
>
What are these prefixes used for (separated by colon) if they have nothing
> to do with namespaces?
> Are they part of some JSON format?
>

Yes, This is for handle namespaces in badgerfish convention. where it
separate prefix and localname by a ':' colon.


>
> And finally, is there a "fundamental" reason why:
> *        “Mapped” formatted JSON with namespaces are not supported in
> Axis2*
>

Axis2 uses Axiom as XML info-set representation for SOAP messages. That
means, to process the request it should have clear XML info-set with it. It
is not possible to know the namespace mappings used on one side of the
transport to the other side when we use mapped convention.

Thanks
Shameera.


> Or is it just a resource issue, and someone (may be I) could add some
> stuff to support namespaces and maybe databinding.
>
> Thanks and regards
> Matthias
>
>
>
> From:        Shameera Rathnayaka <shameerainfo@gmail.com>
> To:        java-user@axis.apache.org,
> Date:        26-04-2012 19:40
> Subject:        Re: Axis2 - JSON mapped - namespace (mismatch)
> ------------------------------
>
>
>
> Hi Matthias,
>
> According to the documentation [1] it simply says that *“Mapped”
> formatted JSON with namespaces are not supported in Axis2*, I think you
> already have got this point. Let me explain how current implementation of
> axis2 expect mapped Json strings.
>
> The best way to demonstrate this is a short example,
> assume you need to send following xml ,*
>
> <price xmlns="**http://acme.com* <http://acme.com/>*">10.00</price>*
>
> Using the mapped convention this can be turned into:*
>
> { "acme.price" : { "10.00" }* where *http://acme.com* <http://acme.com/>-->
acme
>
> as axis2 doesn't support namesapce mapping it expect this as
> *
> { "price" : { "10.00" }*
> That is why it checks always ':' colon instaed of '.' to get the
> localname.
>
> [1] *http://wso2.org/library/768* <http://wso2.org/library/768>
>
> Thanks,
> Shameera.
>
>
> On Thu, Apr 26, 2012 at 6:29 PM, <*gerber@slf.ch* <gerber@slf.ch>> wrote:
> Hi
>
> I'm trying to get my SOAP web service to run using mapped JSON instead of
> XML.
> Because it is not that obvious when moving to JSON, what works and what
> does not, I had to do some drilling down in to the code.
> I got a sample Service running based in an
> org.apache.axis2.receivers.RawXMLINOutMessageReceiver.
> But that's not the way to implement web services in these days.
> Basically, as AXIS is designed, we should be able to use databinding, as
> soon as we get the JSON stuff properly converted in to XML.
> This seams not to be the case at the moment (namespace mismatch)
>
> So i though about writing a wrapper around my generated skeleton and
> adding the correct namespaces myself, based on the prefixes used in the
> mapped JSON.
>
> Now it is where i get confused.
> In the documentation is mentioned to us a full stop "." to separate
> namespace-pefix from element name.
>         *http://axis.apache.org/axis2/java/core/docs/json_support.html*<http://axis.apache.org/axis2/java/core/docs/json_support.html>
> When i look at the code, I see, that there a colon ":" is expected to
> separate the prefix from the element name.
>         See org.apache.axis2.json.AbstractJSONOMBuilder line 116 to 143
>
> When I use a full stop "." I get an error, that the method is not found
> (Axis is looking for the howl thing, prefix and element name)
> When I use a colon ":" I get the an error in the data binding (this is ok,
>  because of the mismatching namespace issue and when i get the prefixed
> matched to the correct namespaces this should be solved.)
>
> Before I try to work around the mismatching namespace issue I really would
> like to know,
> how this is supposed to work with prefix, how prefix and element-name are
> separated, what prefixes are used for and what axis does with them.
>
> Thanks for your help and best regards
> Matthias
>
>
>
> --
> Shameera Rathnayaka
> Undergraduate
> Department of Computer Science and Engineering
> University of Moratuwa.
> Sri Lanka.
>
> Blog : *http://shameerarathnayaka.blogspot.com/*<http://shameerarathnayaka.blogspot.com/>
>
>


-- 
Shameera Rathnayaka
Undergraduate
Department of Computer Science and Engineering
University of Moratuwa.
Sri Lanka.

Blog : http://shameerarathnayaka.blogspot.com/

Mime
View raw message