Sergey,

I can't get this past checkstyle, but you might find it handy ...
 if (LOG.isLoggable(Level.FINER)) {

                xmlStreamReader =
StaxUtils.createFilteredReader(xmlStreamReader, new StreamFilter() {

                    public boolean accept(XMLStreamReader reader) {
                        switch (reader.getEventType()) {
                        case XMLStreamConstants.START_ELEMENT:
                            LOG.finer("Start Element " + reader.getName());
                            for (int x = 0; x <
reader.getAttributeCount(); x++) {
                                LOG.finer("Attribute "
                                          +
reader.getAttributeNamespace(x) + " "
                                          +
reader.getAttributeLocalName(x) + " "
                                          + reader.getAttributeValue(x));
                            }
                            break;
                        default:
                        }
                        return true;
                    }
                });
            }
            return aegisReader.read(xmlStreamReader);



On Fri, Jul 24, 2009 at 9:33 AM, Sergey Beryozkin<[email protected]> wrote:
> That is fixed now, reads are working too. Benson, thanks for your help !
>
> cheers, Sergey
>
> ----- Original Message ----- From: "Sergey Beryozkin"
> <[email protected]>
> To: "Sergey Beryozkin" <[email protected]>; <[email protected]>
> Sent: Friday, July 24, 2009 2:14 PM
> Subject: Re: Aegis + JSON ---> is it supported?
>
>
>> OK, MappedStreamReader returns null for getNamespaceContext()
>>
>> is there any chance Aegis can create a default NamespaceContext from new
>> QName(this.namespace, xsiTypeQname, "");
>>
>> if it is null ? Most likely though I may need to wrap the Jettison reader
>> and provider a proper context
>>
>> cheers, SErgey
>>
>> ----- Original Message ----- From: "Sergey Beryozkin"
>> <[email protected]>
>> To: <[email protected]>
>> Sent: Friday, July 24, 2009 2:03 PM
>> Subject: Re: Aegis + JSON ---> is it supported?
>>
>>
>>> Hi
>>>
>>> Sorry and thanks for catching it, I thought I set a namespaceMap on the
>>> provider, but I didn't. I updated the prefix and set it :
>>>
>>> Map<String, String> namespaceMap = new HashMap<String, String>();
>>>
>>> namespaceMap.put("http://fortest.jaxrs.cxf.apache.org";, "ns1");
>>>
>>> namespaceMap.put("http://www.w3.org/2001/XMLSchema-instance";, "xsins");
>>>
>>> p.setNamespaceMap(namespaceMap);
>>>
>>> (though AegisJSONProvider should do it iself if the map has not been set,
>>> it was just the prefix for http://www.w3.org/2001/XMLSchema-instance " did
>>> not match)
>>>
>>> so I'm now hitting
>>>
>>> Caused by: java.lang.NullPointerException
>>> at
>>> org.apache.cxf.aegis.xml.stax.ElementReader.extractXsiType(ElementReader.java:114)
>>>
>>> Lets see how far we can go from there
>>>
>>> thanks, Sergey
>>>
>>> ----- Original Message ----- From: "Benson Margulies"
>>> <[email protected]>
>>> To: <[email protected]>
>>> Sent: Friday, July 24, 2009 1:48 PM
>>> Subject: Re: Aegis + JSON ---> is it supported?
>>>
>>>
>>> I added some tracing;
>>>
>>> Attribute  xsins.type ns1:AegisTestBean
>>>
>>> That means a null namepace and a name of "xsins.type". Whatever is
>>> mapping JSON to XML isn't mapping attribute correctly, it should
>>> presumably turn xsins.type into the proper attribute.
>>>
>>> Whose department is this?
>>>
>>>
>>> On Thu, Jul 23, 2009 at 3:56 PM, Sergey
>>> Beryozkin<[email protected]> wrote:
>>>>
>>>> Hi Benson
>>>>
>>>> Sure, lets chat later on when you get a chance...
>>>> and good luck with arranging the good insurance :-)
>>>> cheers, Sergey
>>>>
>>>>
>>>> bimargulies wrote:
>>>>>
>>>>> Sergey,
>>>>>
>>>>> My life is somewhat complicated at the moment due to figuring how to
>>>>> get my daughter to have car insurance. I'll see what I can do.
>>>>>
>>>>> --benson
>>>>>
>>>>>
>>>>> On Thu, Jul 23, 2009 at 12:21 PM, Sergey
>>>>> Beryozkin<[email protected]> wrote:
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I've added AegisJsonProvider [1] and I'm actually quite thrilled about
>>>>>> the
>>>>>> possibilities it can offer, as far as the serialization of various
>>>>>> complex
>>>>>> types is concerned.
>>>>>> It appears Aegis can work quite nicely with Jettison during the
>>>>>> serialization, but I could not make the read test working. It seems
>>>>>> Aegis
>>>>>> requires the xsi:type information too early - jettison can certainly
>>>>>> report
>>>>>> it as I've also added a default JSONProvider (JAXB-based) test which
>>>>>> reads
>>>>>> the JSON sequence representing the list of derived types and it works
>>>>>> well.
>>>>>>
>>>>>> Benson, let me know please if you can look at this issue. You may want
>>>>>> to
>>>>>> have a look at a disabled AegisJSONProvider.testReadFrom test (a
>>>>>> similar
>>>>>> and
>>>>>> indeed more complex sequence with xsi:type works fine in
>>>>>> JSONProviderTest.testReadListOfDerivedTypes). If yes then I can create
>>>>>> JIRA
>>>>>> and assign to you.
>>>>>>
>>>>>> Daniel - thanks for your request and please experiment with this
>>>>>> provider
>>>>>> -
>>>>>> for now you can copy the source into your custom provider - we hope to
>>>>>> do
>>>>>> the release next week so it would be good if we could capture some
>>>>>> errors
>>>>>> there
>>>>>>
>>>>>> Cheers, Sergey
>>>>>>
>>>>>> [1]
>>>>>>
>>>>>> http://svn.apache.org/repos/asf/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AegisJSONProvider.java
>>>>>>
>>>>>>
>>>>>> Sergey Beryozkin wrote:
>>>>>>>
>>>>>>> Actually, I made it working - Aegis does not send
>>>>>>> 'writeEndDocument'...
>>>>>>>
>>>>>>> Will try to merge something working shortly
>>>>>>> Sergey
>>>>>>>
>>>>>>>
>>>>>>> Sergey Beryozkin wrote:
>>>>>>>>
>>>>>>>> Hi
>>>>>>>>
>>>>>>>> I tried to create AegisJSONProvider which for now just extends
>>>>>>>> AegisJAXBProvider and overwrites its (newly added in my snapshot)
>>>>>>>> createStreamWriter method and gives a Jettison writer back.
>>>>>>>> It actually appears to work, Jettison writer is being called but
>>>>>>>> nothing
>>>>>>>> is available in the output stream in the end...Something confuses
>>>>>>>> Jettison, not sure what. I'll need to look more into it...
>>>>>>>>
>>>>>>>> cheers, Sergey
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> moradaniel wrote:
>>>>>>>>>
>>>>>>>>> Hello Guys,
>>>>>>>>>
>>>>>>>>> I am trying to serve json content from a CXF rest service using
>>>>>>>>> Aegis
>>>>>>>>> since my domain model is heavily based on interfaces and
>>>>>>>>> map/collections. I have followed this thread but have no clue on
>>>>>>>>> how
>>>>>>>>> to
>>>>>>>>> configure the service to serve Json using Aegis. I have also looked
>>>>>>>>> up
>>>>>>>>> in the samples bundled with the distribution but no example
>>>>>>>>> neither.
>>>>>>>>> Do you have any working example?
>>>>>>>>>
>>>>>>>>> My current config is:
>>>>>>>>>
>>>>>>>>> <jaxrs:server id="myService" address="/">
>>>>>>>>> <jaxrs:serviceBeans>
>>>>>>>>> <ref bean="serviceImpl" />
>>>>>>>>> <ref bean="personServiceImpl" />
>>>>>>>>> </jaxrs:serviceBeans>
>>>>>>>>> <!-- uncomment to use Aegis-->
>>>>>>>>> <jaxrs:providers>
>>>>>>>>> <bean
>>>>>>>>> class="org.apache.cxf.jaxrs.provider.AegisElementProvider"
>>>>>>>>> />
>>>>>>>>> <bean class="org.apache.cxf.jaxrs.provider.JSONProvider">
>>>>>>>>> </jaxrs:providers>
>>>>>>>>> <jaxrs:extensionMappings>
>>>>>>>>> <entry key="xml" value="application/xml" />
>>>>>>>>> <entry key="json" value="application/json"/>
>>>>>>>>> </jaxrs:extensionMappings>
>>>>>>>>> </jaxrs:server>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> This obviously does not work since JSONProvider uses Jaxb and not
>>>>>>>>> Aegis.
>>>>>>>>>
>>>>>>>>> Thank u very much
>>>>>>>>> Daniel
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Sergey Beryozkin-2 wrote:
>>>>>>>>>>
>>>>>>>>>> I did a quick update to the system test which uses Aegis and had
>>>>>>>>>> no
>>>>>>>>>> problems getting JSON back. So let me know the Accept value
>>>>>>>>>> please...
>>>>>>>>>>
>>>>>>>>>> Cheers, Sergey
>>>>>>>>>>
>>>>>>>>>> -----Original Message-----
>>>>>>>>>> From: Sergey Beryozkin [mailto:[email protected]]
>>>>>>>>>> Sent: 15 June 2009 20:52
>>>>>>>>>> To: [email protected]
>>>>>>>>>> Subject: RE: Aegis + JSON ---> is it supported?
>>>>>>>>>>
>>>>>>>>>> Hi Parin,
>>>>>>>>>>
>>>>>>>>>> I'm not sure what is happening at the moment.
>>>>>>>>>> Can you also please post a captured HTTP Accept value ? I'll then
>>>>>>>>>> try
>>>>>>>>>> to
>>>>>>>>>> do a test.
>>>>>>>>>>
>>>>>>>>>> Thanks, Sergey
>>>>>>>>>>
>>>>>>>>>> -----Original Message-----
>>>>>>>>>> From: Parin [mailto:[email protected]]
>>>>>>>>>> Sent: 15 June 2009 18:19
>>>>>>>>>> To: [email protected]
>>>>>>>>>> Subject: Re: Aegis + JSON ---> is it supported?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Hi Sergey,
>>>>>>>>>>
>>>>>>>>>> Actually I am trying to serve JSON format and run into No message
>>>>>>>>>> body
>>>>>>>>>> writer found error.
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>> - parin
>>>>>>>>>>
>>>>>>>>>> Sergey Beryozkin-2 wrote:
>>>>>>>>>>>
>>>>>>>>>>> Hi,
>>>>>>>>>>>
>>>>>>>>>>> I'm assuming it's an xml format which is not served, so try :
>>>>>>>>>>>
>>>>>>>>>>>> @Produces({"application/xml", "application/json"})
>>>>>>>>>>>
>>>>>>>>>>> this should help....
>>>>>>>>>>>
>>>>>>>>>>> cheers, Sergey
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> I get the following error when I try to make Aegis and JSON work
>>>>>>>>>>>> in
>>>>>>>>>>>> JAX-RS:
>>>>>>>>>>>>
>>>>>>>>>>>> Jun 14, 2009 3:07:56 PM
>>>>>>>>>>>> org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor
>>>>>>>>>>>> writeResponseErrorMessage
>>>>>>>>>>>> WARNING: .No message body writer found for response class :
>>>>>>>>>>>> Response.
>>>>>>>>>>>>
>>>>>>>>>>>> Note: Response is my custom class as shown below.
>>>>>>>>>>>>
>>>>>>>>>>>> @GET
>>>>>>>>>>>> @Path("/getquery")
>>>>>>>>>>>> @Produces({"application/json"})
>>>>>>>>>>>> public Response greetQuery(@QueryParam("name") String
>>>>>>>>>>>> name,@QueryParam("language") String language) { ..... }
>>>>>>>>>>>>
>>>>>>>>>>>> @XmlRootElement(name = "resp")
>>>>>>>>>>>> public class Response {
>>>>>>>>>>>> public Response(){}
>>>>>>>>>>>> public String getGreeting() {
>>>>>>>>>>>> return greeting;
>>>>>>>>>>>> }
>>>>>>>>>>>> public void setGreeting(String greeting) {
>>>>>>>>>>>> this.greeting = greeting;
>>>>>>>>>>>> }
>>>>>>>>>>>> public Error[] getErrors() {
>>>>>>>>>>>> return errors;
>>>>>>>>>>>> }
>>>>>>>>>>>> public void setErrors(Error[] errors) {
>>>>>>>>>>>> this.errors = errors;
>>>>>>>>>>>> }
>>>>>>>>>>>> String greeting;
>>>>>>>>>>>> Error[] errors;
>>>>>>>>>>>>
>>>>>>>>>>>> }
>>>>>>>>>>>> I
>>>>>>>>>>>> have the following config in my beans.xml
>>>>>>>>>>>>
>>>>>>>>>>>> <bean id="aegisProvider"
>>>>>>>>>>>> class="org.apache.cxf.jaxrs.provider.AegisElementProvider" />
>>>>>>>>>>>> <jaxrs:server id="demoCXFServiceRS" address="/">
>>>>>>>>>>>> <jaxrs:serviceBeans>
>>>>>>>>>>>> <ref bean="demoCXF" />
>>>>>>>>>>>> </jaxrs:serviceBeans>
>>>>>>>>>>>> <jaxrs:providers>
>>>>>>>>>>>> <ref bean="aegisProvider"/>
>>>>>>>>>>>> </jaxrs:providers>
>>>>>>>>>>>> </jaxrs:server>
>>>>>>>>>>>>
>>>>>>>>>>>> What am I missing??
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks,
>>>>>>>>>>>> - parin
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Sergey Beryozkin-2 wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Hi
>>>>>>>>>>>>>
>>>>>>>>>>>>> If you do JAX-RS then you can use Aegis and JSON providers in
>>>>>>>>>>
>>>>>>>>>> tandem,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Aegis will handle application/xml requests, JSON one will deal
>>>>>>>>>>>>> with
>>>>>>>>>>>>> application/json.
>>>>>>>>>>>>>
>>>>>>>>>>>>> If you use Aegis as part of SOAP processing, then you can still
>>>>>>>>>>
>>>>>>>>>> annotate
>>>>>>>>>>>>>
>>>>>>>>>>>>> the same bean with JAX-RS annotations and register a jax-rs
>>>>>>>>>>>>> endpoint
>>>>>>>>>>
>>>>>>>>>> on
>>>>>>>>>>>>>
>>>>>>>>>>>>> the same port and have JSON supported.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Cheers, Sergey
>>>>>>>>>>>>>
>>>>>>>>>>>>> -----Original Message-----
>>>>>>>>>>>>> From: Parin [mailto:[email protected]]
>>>>>>>>>>>>> Sent: 14 June 2009 20:50
>>>>>>>>>>>>> To: [email protected]
>>>>>>>>>>>>> Subject: Aegis + JSON ---> is it supported?
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> I just want to confirm that if Aegis is used as the data
>>>>>>>>>>>>> binding
>>>>>>>>>>
>>>>>>>>>> then
>>>>>>>>>>>>>
>>>>>>>>>>>>> JSON is
>>>>>>>>>>>>> not supported in CXF 2.1.x and CXF 2.2.x. I couldn't find any
>>>>>>>>>>>>> documentation
>>>>>>>>>>>>> stating that or otherwise and I wasn't successful in my test
>>>>>>>>>>>>> code
>>>>>>>>>>>>> as
>>>>>>>>>>>>> well.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>> - parin
>>>>>>>>>>>>> --
>>>>>>>>>>>>> View this message in context:
>>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> http://www.nabble.com/Aegis-%2B-JSON----%3E-is-it-supported--tp24025149p
>>>>>>>>>>>>>
>>>>>>>>>>>>> 24025149.html
>>>>>>>>>>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> View this message in context:
>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> http://www.nabble.com/Aegis-%2B-JSON----%3E-is-it-supported--tp24025149p
>>>>>>>>>> 24026292.html
>>>>>>>>>>>>
>>>>>>>>>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> View this message in context:
>>>>>>>>>>
>>>>>>>>>> http://www.nabble.com/Aegis-%2B-JSON----%3E-is-it-supported--tp24025149p
>>>>>>>>>> 24038926.html
>>>>>>>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> View this message in context:
>>>>>>
>>>>>> http://www.nabble.com/Aegis-%2B-JSON----%3E-is-it-supported--tp24025149p24629415.html
>>>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> View this message in context:
>>>> http://www.nabble.com/Aegis-%2B-JSON----%3E-is-it-supported--tp24025149p24633389.html
>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>
>>>>
>>>
>
>

Reply via email to