【发布时间】:2010-05-14 02:34:41
【问题描述】:
每当我尝试在浏览器中查看我的教程应用程序时都会收到此错误
警告:在名称为“dispatcher”的 DispatcherServlet 中找不到带有 URI [/HelloWorld.Web] 的 HTTP 请求的映射
这只是意味着调度程序 servlet 正在接收请求,但它无法将其转发给控制器。
但我似乎不知道问题出在哪里。我想我已经正确地映射了这个:
<bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/HelloWorld.Web">indexController</prop>
</props>
</property>
</bean>
<bean id="indexController" class="com.helloworld.controller.IndexController">
<property name="artistDao" ref="artistDao"/>
<property name="methodNameResolver">
<bean class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">
<property name="alwaysUseFullPath" value="true"/>
<property name="mappings">
<props>
<prop key="/HelloWorld.Web">getAllArtists</prop>
</props>
</property>
</bean>
</property>
</bean>
我正在使用 Spring 2.5.6 和 Bea Weblogic Server 9.2
这是我的 web.xml
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
这是索引控制器
public class IndexController extends MultiActionController {
private ArtistDao artistsDao;
public ModelAndView getAllArtists(HttpServletRequest request, HttpServletResponse response) throws SQLException{
ModelAndView mav = new ModelAndView();
mav.setViewName("index");
List<Artist> artists = artistsDao.getAll();
mav.addObject("artists", artists);
return mav;
}
public void setArtistsDao(ArtistDao artistsDao) {
this.artistsDao = artistsDao;
}
}
【问题讨论】:
-
您可以发布您的 web.xml 配置以及与“调度程序”servlet 相关的任何其他 spring 配置吗?
-
已经添加了 web.xml。让我知道是否需要添加其他内容。有趣的是,相同的代码在 GAE(使用 Jetty)中如何工作,但在 Oracle Weblogic 中却不行。
-
能否也看看
IndexController的来源 -
嗯,
MultiActionController自 Spring 2.5 以来已过时,您确定要继续使用它吗?带注释的控制器是表达多动作控制器的一种更好的方式。 -
@Skaffman re:MultiActionController,不知道。我会试一试。但我认为这里的问题在于 weblogic。相同的代码在使用 Jetty 的 GAE 开发环境中运行。
标签: spring spring-mvc weblogic9.x