Java 部署war spring失败-无法启动组件
我已经尝试将.WAR-spring部署到tomcat 9,但出现了一个错误-启动组件失败。 应用初始值设定项:Java 部署war spring失败-无法启动组件,java,spring,spring-mvc,tomcat,war,Java,Spring,Spring Mvc,Tomcat,War,我已经尝试将.WAR-spring部署到tomcat 9,但出现了一个错误-启动组件失败。 应用初始值设定项: public class AppInitializer implements WebApplicationInitializer { public void onStartup(ServletContext container) throws ServletException { AnnotationConfigWebApplicationContext
public class AppInitializer implements WebApplicationInitializer {
public void onStartup(ServletContext container) throws ServletException {
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
ctx.register(AppConfig.class);
ctx.setServletContext(container);
ServletRegistration.Dynamic servlet = container.addServlet(
"dispatcher", new DispatcherServlet(ctx));
servlet.setLoadOnStartup(1);
servlet.addMapping("/");
}
}
SpringBootwardDeployment应用程序:
@SpringBootApplication
public class SpringBootWarDeploymentApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringBootWarDeploymentApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(SpringBootWarDeploymentApplication.class, args);
}
}
AppConfig:
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.project.maven")
public class AppConfig extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("/static/");
registry.addResourceHandler("**/**")
.addResourceLocations("classpath:/META-INF/resources/"); // harus ada folder resources di webapp/WEB-INF/
}
@Bean
public MessageSource messageSource() {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasename("messages");
return messageSource;
}
}
在web.xml中,没有servlet配置。空配置。如何解决这个问题?当我放置我已经创建的url服务时,它没有找到,我有一个问题。当我在tomcat中部署war时,我必须把配置放进去吗?尽管如此,我的代码在部署之前运行良好。没问题
谢谢。
Bobby您需要配置
web.xml
。使用以下参考代码:-
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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_2_5.xsd">
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</init-param>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>sample.traditional.config</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- Disables Servlet Container welcome file handling. Needed for compatibility
with Servlet 3.0 and Tomcat 7.0 -->
<welcome-file-list>
<welcome-file></welcome-file>
</welcome-file-list>
</web-app>
appServlet
org.springframework.web.servlet.DispatcherServlet
上下文类
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
上下文配置位置
sample.traditional.config
1.
appServlet
/
有关更多配置,您可以遵循以下链接:-
即使是我,也在使用spring boot时收到了相同的Hello world错误消息。但是刚刚尝试了tomcat的最新版本(我使用了tomcat 8.5.23)。它就像魅力一样 我已经更改了web.xml,在“sample.traditional.config”中,我使用包配置进行了更改。这是真的吗?但还是同样的错误。。