我正在关注" Spring in action - Craig Walls"预订并遇到以下错误消息。关于web.xml
,提到了很多问题。我使用的是Java配置而不是web.xml
。
spitter.web
包中的控制器:
package spitter.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class HomeController {
@RequestMapping(value="/", method = RequestMethod.GET)
public String home(){
return "home";
}
}
spittr.config
包中的Dispatcher servlet配置:
package spittr.config;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class SpittrWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected String[] getServletMappings() {
return new String[] {"/"};
}
@Override
protected Class<?>[] getRootConfigClasses() {
//return new Class<?>[] {RootConfig.Class};
return null;
}
@Override
protected Class<?>[] getServletConfigClasses() {
//return new Class<?>[] {WebConfig.Class};
return null;
}
}
同一个包中的 Rootconfig
:
package spittr.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
@Configuration
@ComponentScan(basePackages={"spitter"}, excludeFilters={@Filter(type=FilterType.ANNOTATION, value=EnableWebMvc.class)})
public class RootConfig {
}
WebConfig
:
package spittr.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
@Configuration
@EnableWebMvc
@ComponentScan("spitter.web")
public class WebConfig extends WebMvcConfigurerAdapter{
@Bean
public ViewResolver viewResolver(){
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WebContent/WEB-INF/views/");
resolver.setSuffix(".jsp");
resolver.setExposeContextBeansAsAttributes(true);
return resolver;
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer){
configurer.enable();
}
}
我正在使用Maven来解析依赖关系,并在eclipse中运行Tomcat 9来运行。
2016年9月17日下午4:46:48 org.apache.catalina.startup.Catalina start 信息:服务器启动时间为5007 ms 2016年9月17日下午4:46:49 org.springframework.web.servlet.PageNotFound noHandlerFound警告: 找不到带有URI [/ SpringMVC /]的HTTP请求的映射 具有名称&#39;调度程序&#39;
的DispatcherServlet
我的观看次数home.jsp
位于WebContent/WEB-INF/views/home.jsp
。
答案 0 :(得分:0)
感谢您的帮助。我做了以下更改,现在正在运行。
我将web.config移动到与构造函数相同的包中。然后创建war文件并部署在Apache Tomcat中。现在我可以访问该网站了。