Hi
I am trying to implement JAX-WS & JAX-RS together in a single
interface/Impl classes. But, somehow, I am getting this error. Any help
is appreciated
Here is my configuration.
cxf-bean.xml file
----------------------
<bean id="bookStoreJaxrsJaxwsImpl"
class="com.xxxxx.api.payment.BookStoreJaxrsJaxwsImpl" />
<jaxws:endpoint
id="BookStoreJaxrsJaxws"
implementorClass="com.xxxxx.api.payment.BookStoreJaxrsJaxwsImpl"
implementor="#bookStoreJaxrsJaxwsImpl"
address="/BookStoreJaxrsJaxws"/>
<jaxrs:server id="BookStoreJaxrsJaxwsRest"
address="/bookStoreJaxrsJaxws_rest">
<jaxrs:serviceBeans>
<ref bean="bookStoreJaxrsJaxwsImpl" />
</jaxrs:serviceBeans>
</jaxrs:server>
Interface:
-----------
@WebService
@Path("/bookstore")
@Consumes("application/xml")
@Produces("application/xml")
public interface BookStoreJaxrsJaxws {
@WebMethod
@GET
@Path("/{id}")
@Consumes("*/*")
Book getBook(@PathParam("id")
@WebParam(name = "id")
Long id) throws xxxxxFault;
@WebMethod
@PUT
@Path("/books")
Book addBook(@WebParam(name = "book")
Book book) throws xxxxxFault;;
}
Impl class:
---------
@WebService(endpointInterface =
"com.xxxxx.api.payment.BookStoreJaxrsJaxws", serviceName =
"BookStoreJaxrsJaxws")
public class BookStoreJaxrsJaxwsImpl implements BookStoreJaxrsJaxws{
private static Logger log =
Logger.getLogger(BookStoreJaxrsJaxwsImpl.class);
public Book addBook(Book book) throws xxxxxFault {
log.info("Inside addBook");
log.info("name=" + book.getName() + " id=" + book.getId() );
Book b = new Book("ABC", 1L);
return b;
}
public Book getBook(Long id) throws xxxxxFault {
log.info("Inside getBook");
Book b = new Book("ABC", id);
return b;
}
}
15:40:54,611 ERROR [STDERR] Nov 17, 2009 3:40:54 PM
org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildSer
viceFromClass
INFO: Creating Service
{http://payment.api.xxxxx.com/}BookStoreJaxrsJaxws from class
com.xxxxx.api.payment.BookStore
JaxrsJaxws
15:40:55,408 ERROR [STDERR] Nov 17, 2009 3:40:55 PM
org.apache.cxf.endpoint.ServerImpl initDestination
INFO: Setting the server's publish address to be /BookStoreJaxrsJaxws
15:40:55,533 ERROR [STDERR] org.apache.cxf.BusException: No binding
factory for namespace http://apache.org/cxf/binding/
jaxrs registered.
15:40:55,533 ERROR [STDERR] at
org.apache.cxf.binding.BindingFactoryManagerImpl.getBindingFactory(Bindi
ngFactoryMana
gerImpl.java:91)
15:40:55,548 ERROR [STDERR] at
org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean.createBindingInfo(Abstract
JAXRSFactoryB
ean.java:136)
15:40:55,548 ERROR [STDERR] at
org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean.createEndpointInfo(Abstrac
tJAXRSFactory
Bean.java:116)
15:40:55,548 ERROR [STDERR] at
org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean.createEndpoint(AbstractJAX
RSFactoryBean
.java:162)
15:40:55,548 ERROR [STDERR] at
org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBea
n.java:83)
.....
.....
at
org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:482)
at org.jboss.system.server.ServerImpl.start(ServerImpl.java:362)
at org.jboss.Main.boot(Main.java:200)
at org.jboss.Main$1.run(Main.java:508)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.cxf.service.factory.ServiceConstructionException
at
org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBea
n.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
tory.invokeCustomInitMethod(AbstractA
utowireCapableBeanFactory.java:1413)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
tory.invokeInitMethods(AbstractAutowi
reCapableBeanFactory.java:1374)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
tory.initializeBean(AbstractAutowireC
apableBeanFactory.java:1334)
... 151 more
Caused by: java.lang.NullPointerException
at org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:122)
at
org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBea
n.java:103)
... 158 more
15:40:55,845 ERROR [[/paymentapi]] Exception sending context initialized
event to listener instance of class org.springf
ramework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'BookStoreJaxrsJaxwsRest': Invoca
tion of init method failed; nested exception is
org.apache.cxf.service.factory.ServiceConstructionException
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
tory.initializeBean(AbstractAutowireC
apableBeanFactory.java:1337)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
tory.doCreateBean(AbstractAutowireCap
ableBeanFactory.java:473)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
tory$1.run(AbstractAutowireCapableBea
nFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac
tory.createBean(AbstractAutowireCapab
leBeanFactory.java:380)
at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObjec
t(AbstractBeanFactory.java:264)
Regards
Karuna Pydipati
eBay - Platform & Services
Phone: (415)222-8752
Email: [email protected]