cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Beryozkin" <sbery...@progress.com>
Subject Re: pretty printing XML
Date Thu, 19 Nov 2009 09:43:25 GMT
Hi John

You're nearly there, please do

<jaxrs:server id="defectResource" address="/">
    <jaxrs:serviceBeans>
      <ref bean="defectResourceBean"/>
    </jaxrs:serviceBeans>
    <jaxrs:providers>
      <ref bean="jaxbProvider"/>
    </jaxrs:providers>
  </jaxrs:server>
<jaxrs:server>

This way you can associate multiple JAXB providers with slightly different settings with multiple
endpoints in the same context....

I'm sorry yourself and some other users are havig some hard time in seeing the simple apps
up and running. I think CXF JAXRS docs 
have plenty of info but a GettingStarted guide and FAQ are needed urgently...

thanks, Sergey

----- Original Message ----- 
From: "John Klassa" <john@klassa.com>
To: <users@cxf.apache.org>
Sent: Thursday, November 19, 2009 1:10 AM
Subject: Re: pretty printing XML



Hi Sergey,

I found some other sample XML on the web, and it appears to amount to this:

  <bean id="jaxbProvider" class="org.apache.cxf.jaxrs.provider.JAXBElementProvider">
    <property name="marshallerProperties">
      <map>
        <entry key="jaxb.formatted.output">
          <value type="java.lang.Boolean">true</value>
        </entry>
      </map>
    </property>
  </bean>

Yet, even this doesn't work (nor does "TRUE").  The XML still comes back without whitespace,
when I make a REST call, and with no 
particular formatting.

I know it's at least looking at this value because when I try to, e.g., change it to "marshallerPropertiesx"
(to put a typo in it), 
it complains, and suggests "marshallerProperties" for me.  So, I think the setting is fine.
 Somehow, CXF and JAXB just aren't 
connecting the dots.

I'm using a Spring-based approach now, to my knowledge.  My web.xml says:

  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>WEB-INF/beans.xml</param-value>
  </context-param>

  <listener>
    <listener-class>
      org.springframework.web.context.ContextLoaderListener
    </listener-class>
  </listener>

  <servlet>
    <servlet-name>CDETSWSAPI</servlet-name>
    <display-name>CDETS Web Services API</display-name>
    <servlet-class>
      org.apache.cxf.transport.servlet.CXFServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>CDETSWSAPI</servlet-name>
    <url-pattern>/v1/*</url-pattern>
  </servlet-mapping>

while my beans.xml says:

  <bean id="defectResourceBean" class="com.cisco.cdets.wsapi.resources.DefectResource"/>

  <jaxrs:server id="defectResource" address="/">
    <jaxrs:serviceBeans>
      <ref bean="defectResourceBean"/>
    </jaxrs:serviceBeans>
  </jaxrs:server>

  <bean id="jaxbProvider" class="org.apache.cxf.jaxrs.provider.JAXBElementProvider">
    <property name="marshallerProperties">
      <map>
        <entry key="jaxb.formatted.output">
          <value type="java.lang.Boolean">true</value>
        </entry>
      </map>
    </property>
  </bean>

Any ideas?

Thanks!

On Nov 18, 2009, at 3:36 PM, Sergey Beryozkin wrote:

> Hi
>
> I'm sorry, that property has to be of type java.lang.Boolean according
> to the Marshaller docs. I'm not sure right now how to specify from
> Spring that a given map value should be of Boolean type, does anyone
> know how to do it ?
> I'll give it a try tomorrow
>
> Thanks, Sergey
>
>
>
> -----Original Message-----
> From: John Klassa [mailto:klassa@cisco.com]
> Sent: 18 November 2009 18:39
> To: users@cxf.apache.org
> Subject: Re: pretty printing XML
>
>
> Sorry...  I meant to say that the primary docs (for JAX-RS in CXF) is
> where I got the same XML from.  It doesn't work for me, though.  So, I
> went looking online, and found the osdir.com reference to doing it
> programmatically.
>
> Regardless, just looking to get it to work via a configuration setting.
> :-)
>
> On Nov 18, 2009, at 1:35 PM, John Klassa wrote:
>
>>
>> Saw this thread:
>>
>> http://osdir.com/ml/users-cxf-apache/2009-09/msg00014.html
>>
>> but am wondering how this would be done in a config file.  I saw an
> example somewhere that says to use:
>>
>> <bean id="jaxbProvider"
> class="org.apache.cxf.jaxrs.provider.JAXBElementProvider">
>>   <property name="marshallerProperties" ref="propertiesMap"/>
>> </bean>
>> <util:map id="propertiesMap" map-class="java.util.Hashtable">
>>   <entry key="jaxb.formatted.output" value="true"/>
>> </util:map>
>>
>> This seems to have no effect, however.
>>
>> Basically, I'm trying to get my JAX-RS resources to come back looking
> "nice".
>>
>


Mime
View raw message