Hi

In JAX-RS it's media/mime types which dictate what provider is selected on 
input/output. 
In CXF there're 2 default providers which can deal with JAXB - 
JAXBElementProvider and JSONProvider, they're chosen based on the value of HTTP 
Accept header and the value of the ProduceMime annotation on a particular 
method (on output in this case).

Most likely you haven't specified the value of HTTP Accept header or 
ProduceMime (application/xml in this case) and as such the first provider 
capable of dealing with JAXB (JSON one happens to be the first in the list) has 
been selected. 

That said, I think this needs to be fixed so that a JAXB provider is checked 
first by default...If you nedd it fixed then you might want to consider 
applyinga apcth, it should a one line fixer to the provider factory (where the 
relevant code currently lives)

Thanks, Sergey


----- Original Message ----- 
From: "John-M Baker" <[EMAIL PROTECTED]>
To: <[email protected]>
Cc: <[email protected]>
Sent: Tuesday, April 29, 2008 3:19 PM
Subject: Re: CXF 2.1, Rest and Spring configuration


> Sergey,
> 
> So I've now got a system running fine with jaxrs and the standalone server 
> option works as expected. However I've used the example at the bottom of 
> this page:
> 
> http://cwiki.apache.org/CXF20DOC/jax-rs-jsr-311.html
> 
> and produced this Spring context:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns="http://www.springframework.org/schema/beans";
>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>  xmlns:jaxrs="http://cxf.apache.org/jaxrs";
>  xsi:schemaLocation="
> http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans.xsd
> http://cxf.apache.org/jaxrs
> http://cxf.apache.org/schemas/jaxrs.xsd";>
> 
>  <import resource="classpath:META-INF/cxf/cxf.xml"/>
>  <import 
> resource="classpath:META-INF/cxf/cxf-extension-http-binding.xml"/>
>  <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>
> 
>  <jaxrs:server id="cxf.server.ApplicationConfigurationService" 
> address="/">
>    <jaxrs:serviceBeans>
>      <bean 
> class="com.db.websso.rest.server.ApplicationConfigurationServiceImpl" />
>    </jaxrs:serviceBeans>
>  </jaxrs:server> 
> 
> </beans>
> 
> which results in this exception:
> 
> org.apache.cxf.BusException: No binding factory for namespace 
> http://apache.org/cxf/binding/jaxrs registered.
>        at 
> org.apache.cxf.binding.BindingFactoryManagerImpl.getBindingFactory(
> BindingFactoryManagerImpl.java:91)
>        at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.createBindingInfo(
> JAXRSServerFactoryBean.java:208)
> 
> Is the webpage out of date?
> 
> 
> John Baker
> -- 
> Web SSO 
> IT Infrastructure 
> Deutsche Bank London
> 
> URL:  http://websso.cto.gt.intranet.db.com
> 
> 
> 
> 
> "Sergey Beryozkin" <[EMAIL PROTECTED]> 
> 29/04/2008 11:50
> Please respond to
> [email protected]
> 
> 
> To
> <[email protected]>
> cc
> 
> Subject
> Re: CXF 2.1, Rest and Spring configuration
> 
> 
> 
> 
> 
> 
> Hi John,
> 
> In your bean.xml you can do something like :
> 
> <beans>
> <!-- your service class -->
> <bean name="ServiceClass" class="com.Service">
> 
> <!-- JAXWS SOAP-->
> <jaxws:endpoint implementor="#ServiceClass" address="/Greeter"/>
> 
> <!-- JAXRS -->
> <jaxrs:server address="/jaxrsgreeter">
> <jaxrs:serviceBeans>
>      <bean ref="#ServiceClass" />
> </jaxrs:serviceBeans>
> </jaxrs:server>
> 
> <!-- JAXWS HTTP Binding -->
> <jaxws:endpoint implementor="#ServiceClass" 
> address="/GreeterHttpBinding"/>
> 
> </beans>
> 
> and then have both JAX-WS and JAX-RS annotations applied to the 
> com.Service class at will...
> 
> By the way, as far as writing RESTful services is concerned, I do 
> encourage you to migrate your HTTP Binding service to JAX-RS. 
> JAX-RS is a standard and in the end of the day you should be able to run 
> the same code with different JAX-RS implementations
> 
> Cheers, Sergey 
> 
> ----------------------------
> IONA Technologies PLC (registered in Ireland)
> Registered Number: 171387
> Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
> 
> 
> 
> ---
> 
> This e-mail may contain confidential and/or privileged information. If you 
> are not the intended recipient (or have received this e-mail in error) please 
> notify the sender immediately and delete this e-mail. Any unauthorized 
> copying, disclosure or distribution of the material in this e-mail is 
> strictly forbidden.
> 
> Please refer to http://www.db.com/en/content/eu_disclosures.htm for 
> additional EU corporate and regulatory disclosures.

----------------------------
IONA Technologies PLC (registered in Ireland)
Registered Number: 171387
Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland

Reply via email to