2017-12-06 47 views
1

web.xmlなしでSpring Mvcを設定する必要があります。唯一のJavaの設定を使用しSpring MVC。 Tomcat。 HTTPステータス404 - 見つかりません

私のWebConfig

@EnableWebMvc 
@Configuration 
@ComponentScan(basePackages = "controllers.web") 
@Import({PersistenceJPAConfig.class}) 
public class WebConfig extends WebMvcConfigurerAdapter { 
    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/resources/**").addResourceLocations("/resources/"); 
} 

@Override 
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { 
    configurer.enable(); 
} 

@Bean 
public ViewResolver internalResourceViewResolver() { 
    InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); 
    viewResolver.setViewClass(JstlView.class); 
    viewResolver.setPrefix("/WEB-INF/view/jsp"); 
    viewResolver.setSuffix(".jsp"); 
    return viewResolver; 
    } 
} 

マイWebInitializer

public class WebInitializer implements WebApplicationInitializer { 
@Override 
public void onStartup(ServletContext servletContext) throws ServletException { 
    AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext(); 
    ctx.register(WebConfig.class); 
    servletContext.addListener(new ContextLoaderListener(ctx)); 
    ctx.setServletContext(servletContext); 
    Dynamic servlet = servletContext.addServlet("dispatcher", new DispatcherServlet(ctx)); 
    servlet.setLoadOnStartup(1); 
    servlet.addMapping("/"); 
} 
} 

私のコントローラ

@Controller 
@RequestMapping("/") 

public class MainController { 

@Autowired 
BusRepository busRepository; 

@RequestMapping(method = RequestMethod.GET) 
public String index(ModelMap model) { 
    StringBuilder sb = new StringBuilder("<br>"); 
    busRepository.findAll().forEach(it->sb.append(it.toString()).append("<br>")); 
    model.put("msg", sb.toString()); 
    return "index"; 
} 
} 

マイindex.jspを

<%@ page contentType="text/html;charset=UTF-8" language="java" %> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>Spring MVC</title> 
</head> 
<body> 
    <h4>Spring MVC</h4> 
    <span class="blue">${msg}</span> 
</body> 
</html> 

私のpom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.intexsoft.training.manager</groupId> 
    <artifactId>managers</artifactId> 
    <packaging>war</packaging> 
    <version>1.0</version> 
    <name>managers</name> 
    <url>http://localhost:8080/managers</url> 
    <build> 
     <plugins> 
      <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <configuration> 
       <failOnMissingWebXml>false</failOnMissingWebXml> 
      </configuration> 
     </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-jar-plugin</artifactId> 
       <version>3.0.2</version> 
       <configuration> 
        <archive> 
         <manifest> 
          <addClasspath>true</addClasspath> 
          <mainClass>view.Runner</mainClass> 
         </manifest> 
        </archive> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-shade-plugin</artifactId> 
       <version>3.1.0</version> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>shade</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
     <resources> 
      <resource> 
       <directory>hibernate.cfg.xml</directory> 
      </resource> 
     </resources> 
    </build> 
    <dependencies> 
     <dependency> 
      <groupId>org.hibernate.javax.persistence</groupId> 
      <artifactId>hibernate-jpa-2.1-api</artifactId> 
      <version>1.0.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>5.0.11.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>6.0.6</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>4.3.11.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-jdbc</artifactId> 
      <version>4.3.6.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-orm</artifactId> 
      <version>4.3.6.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-jpa</artifactId> 
      <version>1.11.0.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>5.0.11.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>4.3.8.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
      <version>3.1.0</version> 
     </dependency> 
    </dependencies> 
</project> 

私は(それが動作)パワーシェルを介してサーバーの作業を確認しました。 アプリケーションからサーバーを起動すると、「HTTPステータス404 - 見つかりません」が表示されます 他のURLを試しました。 戦争ファイルがアセンブルされました。 この問題を解決するにはどうすればよいですか?事前

答えて

0

enter image description here ありがとうございます@RequestMappingvalueを指定する必要があります。この

0

変更:

viewResolver.setPrefix( "/ WEB-INF /ビュー/ JSP");

は:(JSP後にスラッシュを追加)

viewResolver.setPrefix( "/ WEB-INF /ビュー/ JSP /")。

0

私はあなたがインデックスメソッドのためにあなたの@RequestMappingに値を追加し、JSPページがこのディレクトリWEB-INF /ビュー/ JSPであることを確認する必要があると思う、あなたは使用してページを取得することができますあなたの進歩のためのhttp://localhost:8080/managers/index

@Controller 
@RequestMapping("/") 

public class MainController { 

@Autowired 
BusRepository busRepository; 

    @RequestMapping(value="index",method = RequestMethod.GET) 
    public String index(ModelMap model) { 
     StringBuilder sb = new StringBuilder("<br>"); 
     busRepository.findAll().forEach(it->sb.append(it.toString()).append("<br>")); 
     model.put("msg", sb.toString()); 
     return "index"; 
    } 
    } 
+0

おかげで、それは動作しません。 –

+0

例外またはログトレースとは何ですか? –

+0

私のログhttps://pastebin.com/raJrHsq3があります。エラーは以前と同じです:HTTP Status 404 - Not Found –

関連する問題