我们有一个包含ejbModule的项目,log4j.xml
文件夹中有一个ejbModule META-INF
文件,如下所示
在这个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
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?,
^
http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd
更新
甚至更改格式以便无法解决问题
<?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">
]
>
我已将链接检查为,实际上我们使用相同的方式在他的问题中引用log4j.dtd
文件(在maven部分失败之前声明为成功部分)
我有两个问题:
(1)这个问题是否发生在Apache端(不是因为编码或本地设置)?
(2)有什么方法可以解决这个问题吗?在本地修复?
感谢您的任何想法。
答案 0 :(得分:0)
使用以下代码: -
<!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">
答案 1 :(得分:0)
很好,看起来这个问题是由Apache服务上的log4j.dtd
文件损坏造成的,我从link下载了log4j.dtd
的源文件,并将其放在同一文件夹{ {1}}如下:
在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">
]
>
,问题就消失了,并且能够部署到weblogic中间件。