HTTP-404与cxf rs和spring集成
我是web服务开发新手。尝试使用ApacheCXF和spring集成构建基本的restfull Web服务。但是当我尝试访问rest资源uri时,http-404就来了。以下是可能存在问题的文件: Web.xmlHTTP-404与cxf rs和spring集成,spring,rest,jax-rs,cxf,web.xml,Spring,Rest,Jax Rs,Cxf,Web.xml,我是web服务开发新手。尝试使用ApacheCXF和spring集成构建基本的restfull Web服务。但是当我尝试访问rest资源uri时,http-404就来了。以下是可能存在问题的文件: Web.xml <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
metadata-complete="true">
<display-name>RestDemo</display-name>
<description>RestDemo</description>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>springrest-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>springrest</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springrest</servlet-name>
<url-pattern>/webapi/*</url-pattern>
</servlet-mapping>
<?xml version="1.0" encoding="UTF-8"?>
重新演示
重新演示
上下文配置位置
springrest-servlet.xml
org.springframework.web.context.ContextLoaderListener
弹簧座
org.apache.cxf.transport.servlet.CXFServlet
1.
弹簧座
/webapi/*
springrestservlet.xml
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
metadata-complete="true">
<display-name>RestDemo</display-name>
<description>RestDemo</description>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>springrest-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>springrest</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springrest</servlet-name>
<url-pattern>/webapi/*</url-pattern>
</servlet-mapping>
<?xml version="1.0" encoding="UTF-8"?>
MessageResource.java
@Path("/messages")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class MessageResource {
MessageService messageService = new MessageService();
@GET
public List<Message> getMessages(@BeanParam MessageFilterBean filterBean) {
if (filterBean.getYear() > 0) {
return messageService.getAllMessagesForYear(filterBean.getYear());
}
if (filterBean.getStart() >= 0 && filterBean.getSize() > 0) {
return messageService.getAllMessagesPaginated(filterBean.getStart(), filterBean.getSize());
}
return messageService.getAllMessages();
}
@Path(“/messages”)
@使用(MediaType.APPLICATION_JSON)
@产生(MediaType.APPLICATION_JSON)
公共类消息资源{
MessageService=newmessageservice();
@得到
公共列表getMessages(@BeanParam MessageFilterBean filterBean){
如果(filterBean.getYear()>0){
return messageService.getAllMessagesForYear(filterBean.getYear());
}
如果(filterBean.getStart()>=0&&filterBean.getSize()>0){
return messageService.getAllMessagesPaginated(filterBean.getStart(),filterBean.getSize());
}
return messageService.getAllMessages();
}
我试图访问的uri必须在
springrest servlet.xml
中包含jaxrs服务器和serviceBeans配置。请签出此文件中的beans.xml
文件,其中包含有关如何配置服务器和serviceBeans的信息。必须包含jaxrs服务器和serviceBeans配置在springrest servlet.xml
中,签出其中的beans.xml
文件,该文件包含有关如何配置服务器和serviceBeans的信息。java API在没有spring集成的情况下运行良好。使用Jersey和cxf进行了检查。可以重新获得正确的响应。问题只存在于spring集成。问题仍然存在未解决:(…java API在没有spring集成的情况下工作正常。请与Jersey和cxf一起检查。可以重新获得正确的响应。问题仅存在于spring集成。问题仍未解决::(…我在下面添加了两行。但问题是相同的。因为您提到了地址作为/test
,所以您需要测试urlhttp://localhost:8080/CopyOfGood/webapi/test/messages
或仅指定地址=“/”
然后测试urlhttp://localhost:8080/CopyOfGood/webapi/messages
这就是我试图访问的内容。您是否将地址更改为/
而不是测试
?
我在下面添加了两行。但同样的问题。因为您提到了地址
作为/test
,您需要测试urlhttp://localhost:8080/CopyOfGood/webapi/test/messages
或仅指定地址=“/”
然后测试urlhttp://localhost:8080/CopyOfGood/webapi/messages
这就是我试图访问的内容。您是否将地址更改为/
而不是测试
?