【发布时间】:2013-09-18 15:28:09
【问题描述】:
我有 spring 应用程序,在其中我使用 org.apache.cxf 进行肥皂和 spring MVC 显示一些页面。
我的 web.xml 包含两个 servlet :CXFServlet and mvc-dispatcher
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/servlet-context.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
当我在控制器中使用@ResponseBody 时,一切都很好。
@Controller
@RequestMapping("/hello")
@ResponseBody
public class HelloController {
@RequestMapping(method = RequestMethod.GET)
public String printWelcome() {
return "hello" ;
}
}
但是后来我需要使用jsp我必须使用以下
@Controller
@RequestMapping("/hello")
public class HelloController {
@RequestMapping(method = RequestMethod.GET)
public ModelAndView printWelcome(ModelMap model) {
model.addAttribute("message", "hello");
return new ModelAndView("hello") ;
}
}
当我请求 http://localhost:8080/hello 时,我得到“未找到服务”而不是“你好”
我发现如果我从 web.xml 中删除以下内容
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
我的控制器工作正常。
【问题讨论】:
标签: spring servlets spring-mvc cxf