2017-01-12 93 views
0

我想構建一個maven構建並創建.war文件。它顯示了錯誤:爲什麼war文件不是在eclipse中的spring mvc框架中構建的?

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project EmpReg: Compilation failure: Compilation failure: [ERROR] /E:/Java_Project/EmployeeOnlineRegistrationForm/src/main/java/EmployeeOnlineRegistrationForm/controller/EmployeeRegistrationController.java:[13,47] cannot find symbol [ERROR] symbol: class CrossOrigin [ERROR] location: package org.springframework.web.bind.annotation [ERROR] /E:/Java_Project/EmployeeOnlineRegistrationForm/src/main/java/EmployeeOnlineRegistrationForm/controller/EmployeeRegistrationController.java:[22,2] cannot find symbol [ERROR] symbol: class CrossOrigin

這裏是我的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/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>EmpReg</groupId> 
<artifactId>EmpReg</artifactId> 
<packaging>war</packaging> 
<version>1.0</version> 
<name>SpringExamples</name> 
<description></description> 
<build> 
    <plugins> 
    <plugin> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <configuration> 
    <source>1.5</source> 
    <target>1.5</target> 
    </configuration> 
    </plugin> 
    <plugin> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>3.0.0</version> 
    <configuration> 
    <webXml>src\main\webapp\WEB-INF\web.xml</webXml> 
    <failOnMissingWebXml>false</failOnMissingWebXml> 

    </configuration> 
    </plugin> 
    </plugins> 
</build> 

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

<dependencies> 
    <dependency> 
    <groupId>org.codehaus.jackson</groupId> 
    <artifactId>jackson-mapper-asl</artifactId> 
    <version>1.7.1</version> 
    </dependency> 
    <dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>servlet-api</artifactId> 
    <version>2.5</version> 
    </dependency> 
    <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>org.springframework</groupId> 
    <artifactId>spring-webmvc</artifactId> 
    <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>jstl</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 
     <dependency> 
      <groupId>commons-fileupload</groupId> 
      <artifactId>commons-fileupload</artifactId> 
      <version>1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-io</groupId> 
      <artifactId>commons-io</artifactId> 
      <version>1.4</version> 
     </dependency> 
     <dependency> 
    <groupId>commons-lang</groupId> 
    <artifactId>commons-lang</artifactId> 
    <version>2.2</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.commons</groupId> 
    <artifactId>commons-lang3</artifactId> 
    <version>3.0</version> 
</dependency> 

</dependencies> 
</project> 

這裏是我的web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<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"> 
<display-name>SpringExamples</display-name> 
<welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 

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

</web-app> 

這裏是我的調度員servlet.xml中:

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:mvc="http://www.springframework.org/schema/mvc" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
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 
     http://www.springframework.org/schema/mvc 
     http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> 

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

<mvc:annotation-driven /> 
<mvc:resources mapping="/resources/**" location="/resources/" /> 
    <bean id="multipartResolver" 
     class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
     <property name="maxUploadSize" value="1048576"/> 
    </bean> 
</beans> 
+0

您是否試圖更新您的項目? – efekctive

+0

哪種類型的更新? –

+0

右鍵點擊項目圖標(項目瀏覽器/包瀏覽器) - > maven->更新項目。嘗試「強制更新...」。你的pom包含spring-webmvc,這應該是正確的。 – efekctive

回答

0

我已經解決了這個問題。 1)我已經下載cors-filter-2.2.1.jar添加它。 2)我已經加入行家依存性的pom.xml:

<dependency> 
    <groupId>com.thetransactioncompany</groupId> 
    <artifactId>cors-filter</artifactId> 
    <version>2.2.1</version> 
    </dependency> 

3)我已延長我的控制器和覆蓋方法:

public class EmployeeRegistrationController extends OncePerRequestFilter { 
@Override 
     protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { 

      response.addHeader("Access-Control-Allow-Origin", "*"); 
      if (request.getHeader("Access-Control-Request-Method") != null && "OPTIONS".equals(request.getMethod())) { 
       //LOG.trace("Sending Header...."); 
       // CORS "pre-flight" request 
       response.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE"); 
       // response.addHeader("Access-Control-Allow-Headers", "Authorization"); 
       response.addHeader("Access-Control-Allow-Headers", "Content-Type"); 
       response.addHeader("Access-Control-Max-Age", "1"); 
      } 
      filterChain.doFilter(request, response); 
     } 


} 

4)我已經在web.xml中加入過濾器:

<filter> 
     <filter-name>cors</filter-name> 
     <filter-class>EmployeeOnlineRegistrationForm.controller.EmployeeRegistrationController</filter-class> <!-- your package name and filter class --> 
    </filter> 
    <filter-mapping> 
     <filter-name>cors</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
相關問題