1. 程式人生 > >spring Multiple annotations found at this line: 解決辦法

spring Multiple annotations found at this line: 解決辦法

我們用Eclipse建立Maven結構的web專案的時候選擇了Artifact Id為maven-artchetype-webapp,由於這個catalog比較老,用的servlet還是2.3的,而一般現在至少都是2.5,在Project Facets裡面修改Dynamic web module為2.5的時候就會出現Cannot change version of project facet Dynamic web module to 2.5,如圖:


其實在右邊可以看到改到2.5需要的條件以及有衝突的facets,解決這個問題的步驟如下:

1.把Servlet改成2.5,開啟專案的web.xml,改之前:

[html] view plain copy  print?在CODE上檢視程式碼片派生到我的程式碼片
  1. <!DOCTYPE web-app PUBLIC  
  2.  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"  
  3.  "http://java.sun.com/dtd/web-app_2_3.dtd" >
  4. <web-app>
  5.   <display-name>Archetype Created Web Application</display-name>
  6. </web-app>


改後:

[html] view plain copy  print?在CODE上檢視程式碼片派生到我的程式碼片
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <web-appversion="2.5"
  3.     xmlns="http://java.sun.com/xml/ns/javaee"
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
  6.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  7.   <display-name>Archetype Created Web Application</display-name>
  8. </web-app>
2.修改專案的設定,在Navigator下開啟專案.settings目錄下的org.eclipse.jdt.core.prefs [html] view plain copy  print?在CODE上檢視程式碼片派生到我的程式碼片
  1. eclipse.preferences.version=1
  2. org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
  3. org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5  
  4. org.eclipse.jdt.core.compiler.compliance=1.5  
  5. org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
  6. org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
  7. org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
  8. org.eclipse.jdt.core.compiler.source=1.5  

把1.5改成1.6 [html] view plain copy  print?在CODE上檢視程式碼片派生到我的程式碼片
  1. eclipse.preferences.version=1
  2. org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
  3. org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6  
  4. org.eclipse.jdt.core.compiler.compliance=1.6  
  5. org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
  6. org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
  7. org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
  8. org.eclipse.jdt.core.compiler.source=1.6  

開啟org.eclipse.wst.common.component [html] view plain copy  print?在CODE上檢視程式碼片派生到我的程式碼片
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <project-modulesid="moduleCoreId"project-version="1.5.0">
  3.     <wb-moduledeploy-name="test">
  4.         <wb-resourcedeploy-path="/"source-path="/target/m2e-wtp/web-resources"/>
  5.         <wb-resourcedeploy-path="/"source-path="/src/main/webapp"tag="defaultRootSource"/>
  6.         <wb-resourcedeploy-path="/WEB-INF/classes"source-path="/src/main/java"/>
  7.         <wb-resourcedeploy-path="/WEB-INF/classes"source-path="/src/main/resources"/>
  8.         <propertyname="context-root"value="test"/>
  9.         <propertyname="java-output-path"value="/test/target/classes"/>
  10.     </wb-module>
  11. </project-modules>

project-version="1.5.0"改成project-version="1.6.0"

[html] view plain copy  print?在CODE上檢視程式碼片派生到我的程式碼片
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <project-modulesid="moduleCoreId"project-version="1.6.0">
  3.     <wb-moduledeploy-name="test">
  4.         <wb-resourcedeploy-path="/"source-path="/target/m2e-wtp/web-resources"/>