簡體   English   中英

在Intellij中設置Spring MVC Maven“ Hello World” Webapp

[英]Setting up a Spring MVC Maven “Hello World” webapp in Intellij

我正在嘗試在Intellij中設置spring webapp。 我正在使用Maven管理依賴項和本地Tomcat Web服務器。 到目前為止,我已經使用Spring MVC模板創建了該項目。

我基本上遵循本教程,但是使用Intellij 13.1.6並使用Spring MVC模板: http ://alfasin.com/setting-up-spring-web-project-on-intellij-using-maven/

我認為這將使我能夠快速啟動並運行“ Hello World”應用程序。 但是,我遇到了500個無法解決的內部錯誤。

當我嘗試運行該應用程序時,通常會出現以下錯誤: 找不到類

看似隨機,有時我會得到以下錯誤: 無法編譯課程

這是我的web.xml文件:

<web-app 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">

<display-name>Spring MVC Application</display-name>

<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

這是我的mvc-dispatcher-servlet.xml文件:

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

<context:component-scan base-package="com.maynard.pipes"/>

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/pages/"/>
    <property name="suffix" value=".jsp"/>
</bean>

這是我的控制器:

package com.maynard.pipes;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/")
public class HelloController 
{   
    @RequestMapping(method = RequestMethod.GET)
    public String printWelcome(ModelMap model)
    {
        model.addAttribute("message", "Hello world!");
        return "hello";
    }
}

這是我的pom.xml文件:

<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.springapp</groupId>
<artifactId>project-pipes</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>project-pipes</name>

<properties>
    <spring.version>3.2.0.RELEASE</spring.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
    </dependency>

    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.1</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>${spring.version}</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.2</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <finalName>project-pipes</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <includes>
                    <include>**/*Tests.java</include>
                </includes>
            </configuration>
        </plugin>
    </plugins>
</build>

這是我的Tomcat配置: tomcat的

如果有人能指出我做錯了什么,我將不勝感激。 在開發的配置方面,我還有很多東西要學習。 謝謝。

您使用的JSP版本與Tomcat 8版本不兼容。 檢查一下: http : //tomcat.apache.org/whichversion.html

我已經通過從Tomcat 8降級到Tomcat 7來解決了這個問題。我不確定為什么這樣做,但是現在可以看到“ Hello World”了。

   package com.abc.controller;
   import org.apache.log4j.Logger;
   import org.springframework.stereotype.Controller;
   import org.springframework.web.bind.annotation.RequestMapping;
   import org.springframework.web.bind.annotation.RequestMethod;
   import org.springframework.web.servlet.ModelAndView;
  @Controller
  @RequestMapping("/hello")
    public class HelloWorldController {
      Logger logger = Logger.getLogger("HelloWorldController"); 
       @RequestMapping(method=RequestMethod.GET)
     public ModelAndView helloController() {
      logger.info("inside Controller");
      String message = "Hello World";
      return new ModelAndView("HelloWorldPage", "message", message);
    }

}
           <?xml version="1.0" encoding="UTF-8"?>  

          <beans xmlns="http://www.springframework.org/schema/beans"  

            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  

            xmlns:p="http://www.springframework.org/schema/p"  

xmlns:context="http://www.springframework.org/schema/context"  

      xsi:schemaLocation="http://www.springframework.org/schema/beans  

      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
           http://www.springframework.org/schema/context  

               http://www.springframework.org/schema/context/spring-context-        3.0.xsd"> 

           <context:component-scan  base-package="com.abc.controller" />  


  <bean  
                                                                                class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
    <property name="prefix" value="/WEB-INF/views/" />  
    <property name="suffix" value=".jsp" />  

</bean>  

   <dependencies>  

        <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
        </dependency>
          <dependency> 
          <groupId>junit</groupId>  
           <artifactId>junit</artifactId>  
            <version>3.8.1</version>  
             <scope>test</scope>  
             </dependency>  
               <dependency>  
                 <groupId>javax.servlet</groupId>  
                <artifactId>servlet-api</artifactId>  
                <version>3.0-alpha-1</version>  
               </dependency>  
              <dependency>  
            <groupId>org.springframework</groupId>  
          <artifactId>spring-core</artifactId>  
            <version>3.1.2.RELEASE</version>  
           </dependency>  
                  <dependency>  
                <groupId>org.springframework</groupId>  
           <artifactId>spring-context</artifactId>  
         <version>3.1.2.RELEASE</version>  
                   </dependency>  
                 <dependency>  
           <groupId>org.springframework</groupId>  
       <artifactId>spring-beans</artifactId>  
        <version>3.1.2.RELEASE</version>  
      </dependency>  
         <dependency>  
        <groupId>org.springframework</groupId>  
           <artifactId>spring-webmvc</artifactId>  
         <version>3.1.2.RELEASE</version>  
                   </dependency>  
                 <dependency>
         <groupId>log4j</groupId>
         <artifactId>log4j</artifactId>
             <version>1.2.17</version>
             </dependency>
              </dependencies> 
 <?xml version="1.0" encoding="UTF-8"?>
 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns="http://java.sun.com/xml/ns/javaee" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
         http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" 
       version="3.0">
         <display-name>Spring_Annotation</display-name>
      <welcome-file-list>
          <welcome-file>index.jsp</welcome-file>
                  </welcome-file-list>

           <servlet>
             <servlet-name>spring</servlet-name>
           <servlet-
      class>org.springframework.web.servlet.DispatcherServlet</servlet-
 class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
           <param-value>/WEB-INF/spring-servlet-config.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
           </servlet>
          <servlet-mapping>
         <servlet-name>spring</servlet-name>
          <url-pattern>/</url-pattern>
               </servlet-mapping>
                  </web-app>
         <html>
         <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-
              8859-1">
        <title>Index Page</title>
              </head>
         <body>
           <a href="hello.html">CLICH HERE</a>  
            </body>
             </html>
        <html>
            <head>
          <meta http-equiv="Content-Type" content="text/html; charset=ISO-
                   8859-1">
                   <title>Success Page</title>
                         </head>
                    <body>
                <h2>${message}</h2>
                      </body>
                              </html>

這是我在上面發布的文件,我已成功部署了該應用程序並打印了Hello World,如果有人遇到任何問題,請按照以下流程操作並按照pom.xml進行操作,如果之后出現404錯誤代碼而不是重新啟動您的文件,日食再次確保工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM