Eclipse配置maven web項目問題總結

来源:https://www.cnblogs.com/klsw/archive/2018/01/21/8325845.html
-Advertisement-
Play Games

clipse創建Maven結構的web項目的時候選擇Artifact Id為maven-artchetype-webapp,點擊finish之後,一般會遇到如下問題 1. The superclass "javax.servlet.http.HttpServlet" was not found on ...


clipse創建Maven結構的web項目的時候選擇Artifact Id為maven-artchetype-webapp,點擊finish之後,一般會遇到如下問題

1. The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 錯誤,

   這是eclipse環境里沒有SeverRuntime導致的,在BuildPath裡加入即可,如下圖:

   添加前:

    

   選擇 add library

     

   選擇 Apache Tomcat V7.0 並點擊 next

   

   點擊finish之後,完成添加如下圖

 

 

2. 如何Maven創建動態Web項目後產生的版本不匹配的問題

   我們用Eclipse創建Maven結構的web項目的時候選擇了Artifact Id為maven-artchetype-webapp,由於這個catalog比較老,用的servlet還是2.3的、java版本是1.5的,而一般現在至少都是3.0/1.7,因此我們需要逐個修改!

    (1) 修改JRE 版本

    Go to project Build Path and change the Java Library version to 1.7

刪除原先的低版本JRE,並添加workplace預設的版本(JDK1.7),完成後如下:

(2) Eclipse Preferences -> Java -> Compilre -> Change compliance level to 1.7

(3) 修改 Project Facets 版本(註意順序)

    在項目上單機右鍵 -> Properties -> Project Facets  -->取消選中 Dynamic Web Module 狀態,點擊 Apply -->將 Java facet 版本變為 1.7 ,點擊 Apply如下圖

 -->將 Dyanmic Web Module 版本更改為3.0, 點擊 Apply.

此時會有較大幾率提示: web.xml is missing and <failOnMissingWebXml> is set to true,如下圖

解決辦法,在項目上單擊右鍵-->java EE Tools ---> Generate Deployment Descriptro Stub

OK 問題解決

3. 解決發佈之後404錯誤

預設情況下因為預設的deployment assembly中 webapp路徑的問題,如下圖可以看到預設的webapp下的頁面都被髮布到WEB-INF/class下了,

導致出現瞭如下圖的目錄結構,所以所有的jsp都無法訪問以及通過web.xml載入的ssm環境無法初始化!

 

警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source'

出現SetPropertiesRule警告的原因是因為Tomcat在server.xml的Context節點中不支持source屬性:<Context docBase="…" path="/…" source="org.eclipse.jst.j2ee.server:…"/>

解決方法是在Servers視圖裡雙擊創建的server,然後在其server的配置界面中選中"Publish module contexts to separate XML files"選項。


具體“Publish module contexts to separate XML files”是什麼意思,

請看Tomcat Publishing Options介紹:


Two new options which affect publishing are now available in the Server Options section of the Tomcat server editor. The Tomcat server must be 5.0.x or later for these options to be enabled. The Serve modules without publishing option does what it says. Web content will be served directly from the "WebContent" folder of the Dynamic Web Project. A customized context is used to make the project's dependencies available in the Web application's classloader. The Publish module contexts to separate XML files option will publish contexts using the preferred method of separate XML files under the "conf/Catalina/localhost" directory, rather than keeping them in the "server.xml" file. A couple of improvements for this option are noted in Bugs 180931 and 180936.

關於解決方法,再詳細說明一下:

Servers視圖的打開方法:Window--Show View-other..--Servers

雙擊Server:就是雙擊伺服器名,我的伺服器名為:Tomcat v6.0 Server at localhost 即雙擊它,進入

server的配置界面: 選中"Publish module contexts to separate XML files"選項

 

web.xml is missing and <failOnMissingWebXml> is set to true解決方法

這種錯誤是因為maven預設簡單構建項目是sevlet3.0版本,web.xml不是必須的,這時候需要手動創建webapp/WEB-INF/web.xml,web.xml可以從其他項目複製一個過來改改, 
或者pom.xml添加如下配置

<build>
    <pluginManagement>
        <plugins>
            <plugin>  
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-war-plugin</artifactId>  
                <configuration>  
                    <failOnMissingWebXml>false</failOnMissingWebXml>  
                </configuration>  
            </plugin> 
        </plugins>

    </pluginManagement>
</build>

修改完了別忘了右鍵項目Mavan/update project..


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 轉載自:http://in355hz.iteye.com/blog/1860787 最近業務中需要用 Python 寫一些腳本。儘管腳本的交互只是命令行 + 日誌輸出,但是為了讓界面友好些,我還是決定用中文輸出日誌信息。 很快,我就遇到了異常: Python代碼 UnicodeEncodeError ...
  • 給定一個字元串,求它最長的迴文子串長度,例如輸入字元串'35534321',它的最長迴文子串是'3553',所以返回4。 最容易想到的辦法是枚舉出所有的子串,然後一一判斷是否為迴文串,返回最長的迴文子串長度。不用我說,枚舉實現的耗時是我們無法忍受的。那麼有沒有高效查找迴文子串的方法呢?答案當然是肯定 ...
  • Servlet簡單實現請求分發(類thinkphp5) 1.寫請求分發的原由 今天晚上筆者在使用java的servlet寫博客網站的時候,想實現MVC開發模式,然後就發現,一個請求的動作就要寫servlet實現類,這也太麻煩了吧,於是就在想,可不可以一個contorller控制器中實現多個請求,像t ...
  • 函數是組織好的,可重覆使用的,用來實現單一,或相關聯功能的代碼段。函數能提高應用的模塊性,和代碼的重覆利用率。你已經知道Python提供了許多內建函數,比如print()。但你也可以自己創建函數,這被叫做用戶自定義函數。 1、語法 Python 定義函數使用 def 關鍵字,一般格式如下: 預設情況 ...
  • 上一篇文章是我們自己模擬的DBUtils工具類,其實有開發好的工具類 這裡使用commons-dbutils-1.6.jar 事務的簡單介紹: 在資料庫中應用事務處理案例:轉賬案例 張三和李四都有有自己的存款 主鍵 帳戶名 餘額 1 張三 1000 2 李四 10 要從張三的賬戶餘額中轉賬800到李 ...
  • 1.編程方式分:面向對象、面向過程、函數式編程 2.區分面向對象 》類 》class面向過程 》過程 》def函數式編程 》函數 》def 3.編程語言中函數的定義: 函數是邏輯結構化和過程化的一種編程方法 4.過程是沒有返回值的函數 5.使用函數的優點: 1)代碼可重覆使用2)代碼可保持一致性3) ...
  • 分支運算;邏輯運算;隨機數import;賦值語句;break和continue;轉義字元;print加強版的使用 ...
  • 一. 準備工作 1. 本文參考 Java併發編程:線程池的使用 二. 相關代碼文件介紹 1. ThreadPoolExecutor.java 線程池中最核心的一個類,提供了四個構造函數用於創建線程池 public class ThreadPoolExecutor extends AbstractEx ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...