You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by hdave <da...@gmail.com> on 2012/01/04 21:18:14 UTC
Problems creating first CXF REST web service
Total newbie here trying to get my first REST based web service up and
running using CXF. The problem I am having is that when I go to a URL in
Firefox to see the result of the web service, I am getting an HTTP error 400
- Bad Request. I get the same problem when running in either Tomcat or
Jetty.
I probably have something misconfigured as I am seeing a number of potential
issues in the log when I start up my webapp. The URL I am browsing to is:
http://localhost:9999/rest/security/serverDateTime
Any help is appreciated, I've been banging my head on this for 2 days and
can't figure out what is wrong.
Here is the CXF portion of the log (DEBUG). Notice CXF complains about not
finding a definition for my service bean. Weird that Spring does not
complain. I know the bean is there and works because I have used it from
other code.
I should also add that when I browse to my welcome file, I also see nothing
and get a 400.
--------------------
[20120104 14:07:51] [main] DEBUG
[org.apache.cxf.configuration.spring.ConfigurerImpl] LogUtils.doLog(372) |
Could not determine bean name for instance of class
org.apache.cxf.binding.xml.XMLBindingFactory.
[20120104 14:07:51] [main] DEBUG
[org.apache.cxf.configuration.spring.ConfigurerImpl] LogUtils.doLog(372) |
Could not determine bean name for instance of class
org.apache.cxf.service.factory.FactoryBeanListenerManager.
[20120104 14:07:51] [main] DEBUG
[org.apache.cxf.configuration.spring.ConfigurerImpl] LogUtils.doLog(372) |
Could not determine bean name for instance of class
org.apache.cxf.transport.http.HTTPTransportFactory.
[20120104 14:07:52] [main] DEBUG
[org.apache.cxf.configuration.spring.ConfigurerImpl]
ConfigurerImpl.configureBean(160) | Could not find a definition for bean
with id
{http://impl.security.service.core.myapp.com/}SecurityServiceImpl.http-destination
- no injection will be performed.
[20120104 14:07:52] [main] INFO [org.apache.cxf.endpoint.ServerImpl]
ServerImpl.initDestination(94) | Setting the server's publish address to be
/rest
[20120104 14:07:52] [main] DEBUG
[org.apache.cxf.configuration.spring.ConfigurerImpl] LogUtils.doLog(372) |
Could not determine bean name for instance of class
org.apache.cxf.buslifecycle.CXFBusLifeCycleManager.
[20120104 14:07:52] [main] DEBUG
[org.apache.cxf.configuration.spring.ConfigurerImpl] LogUtils.doLog(372) |
Could not determine bean name for instance of class
org.apache.cxf.endpoint.ServerRegistryImpl.
[20120104 14:07:52] [main] DEBUG
[org.apache.cxf.configuration.spring.ConfigurerImpl] LogUtils.doLog(372) |
Could not determine bean name for instance of class
org.apache.cxf.endpoint.ServerLifeCycleManagerImpl.
[20120104 14:07:52] [main] DEBUG [org.apache.cxf.endpoint.ServerImpl]
ServerImpl.start(126) | Server is starting.
[20120104 14:07:52] [main] DEBUG
[org.apache.cxf.transport.servlet.ServletDestination]
AbstractObservable.setMessageObserver(45) | registering incoming observer:
org.apache.cxf.transport.ChainInitiationObserver@808512
[20120104 14:07:52] [main] DEBUG [org.apache.cxf.endpoint.ServerImpl]
ServerImpl.start(136) | register the server to serverRegistry
--------------------
web.xml (partial):
--------------------
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<welcome-file-list>
<welcome-file>MyAppCore.html</welcome-file>
</welcome-file-list>
<servlet>
<display-name>MyApp Core REST Services</display-name>
<servlet-name>MyAppCoreWebServices</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MyAppCoreWebServices</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
--------------------
applicationContext.xml (partial):
--------------------
<bean id="securityService"
class="com.sbevision.core.service.security.impl.SecurityServiceImpl">
<constructor-arg index="0" ref="userDAO" />
<constructor-arg index="1" ref="serverInfo" />
</bean>
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<jaxrs:server id="myAppCoreSvcRest" address="/rest">
<jaxrs:serviceBeans>
<ref bean="securityService" />
</jaxrs:serviceBeans>
</jaxrs:server>
--------------------
SecurityServiceImpl.java (partial):
--------------------
@Transactional
@Path("/security")
public class SecurityServiceImpl
implements SecurityService {
... constructor and other details omitted for brevity.....
@GET
@Path("/serverDateTime")
@Produces("text/plain")
@Override
public String getServerDateTime() {
DateFormatter formatter = new DateFormatter("dd/MM/yyyy hh:mm:ss");
return formatter.print(Calendar.getInstance().getTime(),
Locale.getDefault());
}
}
--------------------
--
View this message in context: http://cxf.547215.n5.nabble.com/Problems-creating-first-CXF-REST-web-service-tp5120711p5120711.html
Sent from the cxf-user mailing list archive at Nabble.com.