[英]log4j.xml referenced file log4j.dtd contains errors
我們有一個包含ejbModule的項目,在ejbModule META-INF
文件夾中有一個log4j.xml
文件,如下所示
在此log4j.xml文件中,首先從Apache服務器中引用的dtd文件開始,格式如下
通常,此參考部分可以正常工作,但是從昨天開始,它突然無法編譯,也無法將ejbModule
ear文件部署到weblogic中間件上。
顯示錯誤如下
Description Resource Path Location Type
Referenced file contains errors (http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd). For more information, right click on the message in the Problems View and select "Show Details..." log4j.xml /TEST_EJB/ejbModule line 1 XML Problem
然后我從給定的URL訪問引用的文件位置,如http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd將觀察到問題,因為
XML Parsing Error: syntax error
Location: http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd
Line Number 27, Column 1:<!ELEMENT log4j:configuration (renderer*, appender*,plugin*, (category|logger)*,root?,
^
更新:
甚至將格式更改為以下格式也無法解決問題
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN"
"http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd"
[
<!-- Directory to write the log files to -->
<!ENTITY logDir "C:/.../logs">
]
>
我已經檢查了作為Eclipse的鏈接:在log4j.xml中引用log4j.dtd ,實際上我們在他的問題中使用了相同的方式來引用log4j.dtd
文件(聲明為成功的部分,在失敗的maven部分之前)
我有兩個問題:
(1)這個問題是否發生在Apache端(不是因為編碼或本地設置)?
(2)有什么辦法可以解決問題? 本地修復?
感謝您的任何想法。
使用以下代碼:-
<!DOCTYPE log4j:configuration PUBLIC
"-//APACHE//DTD LOG4J 1.2//EN" "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
很好,看起來像是由Apache服務上的log4j.dtd
文件損壞引起的此問題,我從此鏈接下載log4j.dtd
源文件,並將其放在如下的META-INF
相同的文件夾中:
在log4j.xml
中將其稱為相對路徑
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM
"log4j.dtd"
[
<!-- Directory to write the log files to -->
<!ENTITY logDir "C:/.../logs">
]
>
然后清理並編譯ejbModule
,問題消失了,並且可以部署到weblogic中間件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.