spring mvc 最小化配置的幾個小坑

最小化配置傳送門:https://mp.csdn.net/postedit/81556896

補充幾個小坑:

1、新建了maven項目,默認沒有java包。需要java build path 選擇jdk1.7。

2、update maven project 後,會覆蓋java build path的jdk1.7,所以要重新選擇jdk。

上面2個問題可以用新建maven項目修改jdk版本解決。

新建maven項目,默認jdk版本是1.5,我們可以修改成我們想要的版本,有兩種方法

(1)每個項目修改,在pom.xml添加

<build>
        <plugins>
            <!-- compiler插件, 設定JDK版本 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <encoding>UTF-8</encoding>
                    <showWarnings>true</showWarnings>
                </configuration>
            </plugin>
        </plugins>
    </build>

(2)在maven的配置文件增加屬性節點

<profile>   
        <id>jdk-1.7</id>   
        <activation>   
          <activeByDefault>true</activeByDefault>   
          <jdk>1.7</jdk>   
        </activation>   
        <properties>   
            <maven.compiler.source>1.7</maven.compiler.source>   
            <maven.compiler.target>1.7</maven.compiler.target>   
            <maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>   
        </properties>   
    </profile>

3、部署Maven項目到tomcat報錯:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

問題背景:

工程爲maven工程,ContextLoaderListener類位於spring-web-3.1.0.RELEASE.jar包中。檢查了maven的pom.xml,依賴引入正常。在工程Maven Dependencies視圖中也能看到spring-web-3.1.0.RELEASE.jar包被正常引入進來了。

錯誤原因:

進入到tomcat的部署路徑.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\下檢查了一下,發現工程部署後在WEB-INF文件夾下沒有生成lib目錄,正常情況下,會生成lib目錄並把工程的所有依賴jar包都部署到該目錄下。

 

解決方案:

1.右鍵點擊項目--選擇Properties

選擇Deployment Assembly,在右邊點擊Add按鈕,在彈出的窗口中選擇Java Build Path Entries

2.點擊Next,選擇Maven Dependencies

3.點擊Finish,然後可以看到已經把Maven Dependencies添加到Web應用結構中了

操作完後,重新部署工程,不再報錯了。然後我們再到.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\目錄下,發現工程WEB-INF目錄下自動生成了lib目錄,並且所有的依賴jar包也都已經部署進來。問題因此解決。

4、不影響運行的錯誤can't change version of project facet Dynamic Web Module to 3.1
Java compiler level does not match the version of the installed Java project facet.   
One or more constraints have not been satisfied.  

這類錯誤是Maven JavaEE Configuration Problem,解決辦法參考文章https://blog.csdn.net/changjizeng512/article/details/53994504

我複製到下面

Dynamic Web Module 選擇“3.1”,java選擇“1.8”,報錯:Cannot change version of project facet Dynamic web module to 3.1,如下圖:

解決方法:

(1)把servlet修改成3.1,打開maven項目的web.xml, 修改爲:

(2)修改.settings文件夾下的org.eclipse.wst.common.project.facet.core.xml 爲:

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <fixed facet="wst.jsdt.web"/>
         <installed facet="java" version="1.8"/>
  <installed facet="wst.jsdt.web" version="1.0"/>
  <installed facet="jst.web" version="3.1"/>
</faceted-project>

(3)pom.xml中添加:

<plugins>  
      <plugin>  
        <groupId>org.apache.maven.plugins</groupId>  
        <artifactId>maven-compiler-plugin</artifactId>  
        <configuration>  
          <source>1.8</source>  
          <target>1.8</target>  
        </configuration>  
      </plugin>  
    </plugins>  

(4)Project Facets 重新配置:Dynamic Web Module選擇“3.1”,java選擇“1.8”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章