女人让男人桶爽30分钟,精品一区二区,在线观看 ,久久久久亚洲精品,免费网站看av片,男女啪啪18禁无遮挡激烈

您好!歡迎來到源碼碼網(wǎng)!

org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 55; 外部 DTD: 無法讀取外部 DTD ’maybtis-3-mapper.dtd’, 因為 accessExternalDTD 屬性設(shè)置的限制導(dǎo)致不允許 ’http’ 訪問

  • 源碼教程
  • 來源:源碼碼網(wǎng)
  • 編輯:源碼碼網(wǎng)
  • 時間:2025-04-19 23:43
  • 閱讀:175

針對因accessExternalDTD屬性限制導(dǎo)致無法通過HTTP訪問外部DTD(如MyBatis的mybatis-3-mapper.dtd)的問題,以下是詳細的解決方案:


問題原因

Java XML解析器默認禁止從外部加載DTD(防止XXE攻擊),因此當(dāng)XML文件嘗試通過HTTP訪問遠程DTD(如<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">)時,會拋出以下錯誤:

org.xml.sax.SAXParseException: 外部 DTD: 無法讀取外部 DTD 'mybatis-3-mapper.dtd', 
因為 accessExternalDTD 屬性設(shè)置的限制導(dǎo)致不允許 'http' 訪問

解決方案

根據(jù)需求選擇以下任意一種方法:

1. 在代碼中配置XML解析器(推薦)

在創(chuàng)建DocumentBuilderSAXParser時,顯式允許訪問HTTP協(xié)議的DTD:

import javax.xml.XMLConstants;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

public class XmlParser {
    public static void main(String[] args) {
        try {
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            
            // 關(guān)鍵配置:允許通過HTTP訪問外部DTD
            factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "http");
            
            DocumentBuilder builder = factory.newDocumentBuilder();
            builder.parse("input.xml"); // 解析XML文件
        } catch (ParserConfigurationException | SAXException | IOException e) {
            e.printStackTrace();
        }
    }
}

2. 通過JVM參數(shù)全局配置

在啟動應(yīng)用時添加以下參數(shù),允許所有XML解析器訪問HTTP/HTTPS協(xié)議的外部DTD:

java -Djavax.xml.accessExternalDTD=http,https -jar YourApp.jar

3. 使用本地DTD文件(安全推薦)

避免依賴遠程DTD,將mybatis-3-mapper.dtd下載到本地,并修改XML的DOCTYPE聲明指向本地路徑:

  1. 下載DTD文件
    訪問 http://mybatis.org/dtd/mybatis-3-mapper.dtd 并將文件保存到項目目錄(如
    src/main/resources/dtd/mybatis-3-mapper.dtd)。

  2. 修改XML聲明
    將XML中的DOCTYPE路徑替換為本地路徑:

  3. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
        "classpath:/dtd/mybatis-3-mapper.dtd">

    4. 完全禁用DTD(極端情況)

    如果無需DTD驗證,可直接禁用外部實體解析:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); // 啟用安全處理
factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); // 禁用DOCTYPE

注意事項

  1. 安全風(fēng)險
    允許外部DTD訪問可能引發(fā)XXE攻擊,確保僅加載可信來源的DTD。

  2. 兼容性
    部分舊版XML解析器(如Apache Xerces 1.x)可能不支持
    ACCESS_EXTERNAL_DTD屬性,建議升級到較新版本。

  3. MyBatis框架集成
    若在MyBatis中遇到此問題,建議優(yōu)先使用本地DTD文件,避免因網(wǎng)絡(luò)問題導(dǎo)致解析失敗。


這里建議使用第三種方法,比較簡單,也安全可靠!


特別聲明:
1、如無特殊說明,內(nèi)容均為本站原創(chuàng)發(fā)布,轉(zhuǎn)載請注明出處;
2、部分轉(zhuǎn)載文章已注明出處,轉(zhuǎn)載目的為學(xué)習(xí)和交流,如有侵犯,請聯(lián)系客服刪除;
3、編輯非《源碼碼網(wǎng)》的文章均由用戶編輯發(fā)布,不代表本站立場,如涉及侵犯,請聯(lián)系刪除;
全部評論(0)
推薦閱讀
  • CSS 媒體查詢(@media)寬度范圍設(shè)置建議
  • CSS 媒體查詢(@media)寬度范圍設(shè)置建議
  • 語法正確性:代碼使用現(xiàn)代范圍查詢語法(width>=1200pxandwidth<1400px),在支持該語法的瀏覽器(如Chrome104+、Firefox63+、Safari15.4+)中有效。邏輯正確性:當(dāng)視口寬度在1200px(含)至1400px(不含)之間時,body的padding-top會設(shè)置為4px,符合用戶需求。兼容性建議:傳統(tǒng)寫法:為兼容舊版瀏覽器,建議改用:@media?(w
  • 源碼教程
  • 來源:源碼碼網(wǎng)
  • 編輯:源碼碼網(wǎng)
  • 時間:2025-05-06 21:55
  • 閱讀:77
  • VS Code配置Vue自動補全代碼教程
  • VS Code配置Vue自動補全代碼教程
  • 在VSCode中配置Vue開發(fā)的自動補全代碼可以通過以下步驟實現(xiàn),以提高開發(fā)效率:1.安裝必要插件Volar(推薦用于Vue3)針對Vue3和語法,提供更強大的支持。Vetur(適用于Vue2)若項目使用Vue2,安裝Vetur并禁用Volar以避免沖突。VueVSCodeSnippets提供常用代碼片段(如v-for,?v-model等)。2.配置VSCode設(shè)
  • 源碼教程
  • 來源:源碼碼網(wǎng)
  • 編輯:源碼碼網(wǎng)
  • 時間:2025-04-21 21:35
  • 閱讀:187
  • 中文域名有價值嗎?他的優(yōu)缺點是什么?
  • 中文域名有價值嗎?他的優(yōu)缺點是什么?
  • 中文域名(如“例子.中國”或“news.新華網(wǎng)”)作為互聯(lián)網(wǎng)本地化的重要體現(xiàn),近年來在特定場景下展現(xiàn)了獨特的價值,但也存在爭議和局限性。以下從多個角度分析其價值與挑戰(zhàn):1.核心價值點(1)用戶友好性與品牌本土化降低記憶門檻:對中文用戶而言,母語域名更直觀易記,尤其適合面向非英語用戶的中小企業(yè)、地方機構(gòu)或中老年群體。例如,“新華網(wǎng).中國”比“xinhuanet.com”更容易被普通用戶記住。強化品牌標(biāo)識:中文域名可直接體現(xiàn)品牌名稱(如“
  • 行業(yè)資訊
  • 來源:源碼碼網(wǎng)
  • 編輯:源碼碼網(wǎng)
  • 時間:2025-04-19 14:08
  • 閱讀:175
聯(lián)系客服
源碼代售 源碼咨詢 素材咨詢 聯(lián)系客服
029-84538663
手機版

掃一掃進手機版
返回頂部