xml读取问题

bolipan 2009-05-13 11:37:20
使用jdom4j读取一个xml文件,调试环境JBuilider9 + weblogic8.1,读取的代码为:

File f = new File( "C:\\test.xml" );
System.out.println("111111111111");
if( f == null )
{
System.out.println("new file");
return 0;
}

SAXReader reader = new SAXReader();
System.out.println("2222222222222222");
if( reader == null )
{
System.out.println("new SAXReader");
return 0;
}
//读取并解析文件
Document doc = reader.read(f);
System.out.println("33333333333333333");

if( doc == null )
{
System.out.println("read file");
return 0;
}
//根节点
Element root = doc.getRootElement();
System.out.println("4444444444444444");
if( root == null )
{
System.out.println("getRootElement");
return 0;
}
Element foo;
System.out.println("55555555555555555");
//子节点遍历
for (Iterator i = root.elementIterator("ROW"); i.hasNext();){}

如果是在weblogic服务器上读取文件的话,没有任何问题,但是若是在远程方式读取的话,就会出现如下错误。
0000000000
111111111111
2222222222222222
org.dom4j.DocumentException: C:\test11.xml: ????????????????? Nested exception:
C:\test11.xml: ?????????????????
at org.dom4j.io.SAXReader.read(Ljava.io.File;)Lorg.dom4j.Document;(SAXRe
ader.java:266)
at com.xindeco.presentation.graduatedemand.RealDemandServlet.ReadFromXML
(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;
Ljava.util.ArrayList;Ljava.lang.String;Ljava.lang.String;I)I(RealDemandServlet.j
ava:282)
at com.xindeco.presentation.graduatedemand.RealDemandServlet.imp_import(
Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)
V(RealDemandServlet.java:200)
at com.xindeco.presentation.common.AbstractServlet.service(Ljavax.servle
t.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(AbstractSer
vlet.java:191)
at javax.servlet.http.HttpServlet.service(Ljavax.servlet.ServletRequest;
Ljavax.servlet.ServletResponse;)V(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
()Ljava.lang.Object;(ServletStubImpl.java:996)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servle
t.ServletRequest;Ljavax.servlet.ServletResponse;Lweblogic.servlet.internal.Filte
rChainImpl;)V(ServletStubImpl.java:419)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servle
t.ServletRequest;Ljavax.servlet.ServletResponse;)V(ServletStubImpl.java:315)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
n.run()Ljava.lang.Object;(WebAppServletContext.java:6456)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Lweblogic.se
curity.subject.AbstractSubject;Ljava.security.PrivilegedAction;)Ljava.lang.Objec
t;(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(Lweblogic.security.ac
l.internal.AuthenticatedSubject;Lweblogic.security.acl.internal.AuthenticatedSub
ject;Ljava.security.PrivilegedAction;)Ljava.lang.Object;(SecurityManager.java:11
8)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(Lweblogi
c.servlet.internal.ServletRequestImpl;Lweblogic.servlet.internal.ServletResponse
Impl;)V(WebAppServletContext.java:3661)
at weblogic.servlet.internal.ServletRequestImpl.execute(Lweblogic.kernel
.ExecuteThread;)V(ServletRequestImpl.java:2630)
at weblogic.kernel.ExecuteThread.execute(Lweblogic.kernel.ExecuteRequest
;)V(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run()V(ExecuteThread.java:178)
at java.lang.Thread.startThreadFromVM(Ljava.lang.Thread;)V(Unknown Sourc
e)
...全文
73 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cds27 2009-05-15
  • 打赏
  • 举报
回复
java.io.FileNotFoundException: C:\test11.xml:

远程读取,你的路径怎么还是c:\test1.xml,找不到文件啊
bolipan 2009-05-13
  • 打赏
  • 举报
回复
我查了一些资料,似乎与dtd验证有关。但是我的xml文件没有类似
DOCTYPE workflow PUBLIC "-/OpenSymphony Group//DTD OSWorkflow 2.8//EN" "http://www.opensymphony.com/osworkflow/workflow_2_8.dtd
的内容,难道也需要dtd验证吗?
bolipan 2009-05-13
  • 打赏
  • 举报
回复
xml文件内容如下:

<?xml version="1.0" encoding="gb2312"?>
<ROWDATA>

<ROW>
<DEMANDID>-1</DEMANDID>
<UNITID>0</UNITID>
<YEAR> </YEAR>
<POSITION> </POSITION>
<NEEDNUM> </NEEDNUM>
<ACTNUM> </ACTNUM>
<SEX> </SEX>
<SPECIALTY> </SPECIALTY>
<EDULEVEL> </EDULEVEL>
<EMPLOYOBJ> </EMPLOYOBJ>
<COMPUTELEVEL> </COMPUTELEVEL>
<FOREIGNTYPE> </FOREIGNTYPE>
<FOREIGNLEVEL> </FOREIGNLEVEL>
<OTHERREQUEST> </OTHERREQUEST>
<INCOME> </INCOME>
<WORKAREA> </WORKAREA>
<WELFARE> </WELFARE>
<REPORTTIME> </REPORTTIME>
<PUBLICBEGINTIME> </PUBLICBEGINTIME>
<PUBLICENDTIME> </PUBLICENDTIME>
<DEMANDSTATUS> </DEMANDSTATUS>
<JOBTYPE> </JOBTYPE>
<PHONE>111111</PHONE>
<EMAIL> </EMAIL>
<UNITNAME>我的企业测试</UNITNAME>
<UNITKIND>4178</UNITKIND>
<UNITTYPE>7756</UNITTYPE>
<UNITSUBJECTION>4206</UNITSUBJECTION>
<UNITCALLING>8603</UNITCALLING>
<LINKMAN>111111</LINKMAN>
<LINKFAX> </LINKFAX>
<LINKADD>111111</LINKADD>
<UNITDESC> </UNITDESC>
<IMPORTUSERNO> </IMPORTUSERNO>
<IMPORTUNITID> </IMPORTUNITID>
</ROW>
</ROWDATA>
bolipan 2009-05-13
  • 打赏
  • 举报
回复
错误信息续上
Nested exception:
java.io.FileNotFoundException: C:\test11.xml: ?????????????????
at jrockit.io.FileNativeIO.open0(Ljava.lang.String;I)I(Unknown Source)
at jrockit.io.FileNativeIO.open(Ljava.lang.String;I)Ljava.io.FileDescrip
tor;(Unknown Source)
at java.io.FileInputStream.<init>(Ljava.lang.String;)V(Unknown Source)
at java.io.FileInputStream.<init>(Ljava.io.File;)V(Unknown Source)
at org.dom4j.io.SAXReader.read(Ljava.io.File;)Lorg.dom4j.Document;(SAXRe
ader.java:243)
at com.xindeco.presentation.graduatedemand.RealDemandServlet.ReadFromXML
(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;
Ljava.util.ArrayList;Ljava.lang.String;Ljava.lang.String;I)I(RealDemandServlet.j
ava:282)
at com.xindeco.presentation.graduatedemand.RealDemandServlet.imp_import(
Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)
V(RealDemandServlet.java:200)
at com.xindeco.presentation.common.AbstractServlet.service(Ljavax.servle
t.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(AbstractSer
vlet.java:191)
at javax.servlet.http.HttpServlet.service(Ljavax.servlet.ServletRequest;
Ljavax.servlet.ServletResponse;)V(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
()Ljava.lang.Object;(ServletStubImpl.java:996)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servle
t.ServletRequest;Ljavax.servlet.ServletResponse;Lweblogic.servlet.internal.Filte
rChainImpl;)V(ServletStubImpl.java:419)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servle
t.ServletRequest;Ljavax.servlet.ServletResponse;)V(ServletStubImpl.java:315)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
n.run()Ljava.lang.Object;(WebAppServletContext.java:6456)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Lweblogic.se
curity.subject.AbstractSubject;Ljava.security.PrivilegedAction;)Ljava.lang.Objec
t;(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(Lweblogic.security.ac
l.internal.AuthenticatedSubject;Lweblogic.security.acl.internal.AuthenticatedSub
ject;Ljava.security.PrivilegedAction;)Ljava.lang.Object;(SecurityManager.java:11
8)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(Lweblogi
c.servlet.internal.ServletRequestImpl;Lweblogic.servlet.internal.ServletResponse
Impl;)V(WebAppServletContext.java:3661)
at weblogic.servlet.internal.ServletRequestImpl.execute(Lweblogic.kernel
.ExecuteThread;)V(ServletRequestImpl.java:2630)
at weblogic.kernel.ExecuteThread.execute(Lweblogic.kernel.ExecuteRequest
;)V(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run()V(ExecuteThread.java:178)
at java.lang.Thread.startThreadFromVM(Ljava.lang.Thread;)V(Unknown Sourc
e)
Nested exception: java.io.FileNotFoundException: C:\test11.xml: ????????????????
?
at jrockit.io.FileNativeIO.open0(Ljava.lang.String;I)I(Unknown Source)
at jrockit.io.FileNativeIO.open(Ljava.lang.String;I)Ljava.io.FileDescrip
tor;(Unknown Source)
at java.io.FileInputStream.<init>(Ljava.lang.String;)V(Unknown Source)
at java.io.FileInputStream.<init>(Ljava.io.File;)V(Unknown Source)
at org.dom4j.io.SAXReader.read(Ljava.io.File;)Lorg.dom4j.Document;(SAXRe
ader.java:243)
at com.xindeco.presentation.graduatedemand.RealDemandServlet.ReadFromXML
(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;
Ljava.util.ArrayList;Ljava.lang.String;Ljava.lang.String;I)I(RealDemandServlet.j
ava:282)
at com.xindeco.presentation.graduatedemand.RealDemandServlet.imp_import(
Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)
V(RealDemandServlet.java:200)
at com.xindeco.presentation.common.AbstractServlet.service(Ljavax.servle
t.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(AbstractSer
vlet.java:191)
at javax.servlet.http.HttpServlet.service(Ljavax.servlet.ServletRequest;
Ljavax.servlet.ServletResponse;)V(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
()Ljava.lang.Object;(ServletStubImpl.java:996)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servle
t.ServletRequest;Ljavax.servlet.ServletResponse;Lweblogic.servlet.internal.Filte
rChainImpl;)V(ServletStubImpl.java:419)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servle
t.ServletRequest;Ljavax.servlet.ServletResponse;)V(ServletStubImpl.java:315)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
n.run()Ljava.lang.Object;(WebAppServletContext.java:6456)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Lweblogic.se
curity.subject.AbstractSubject;Ljava.security.PrivilegedAction;)Ljava.lang.Objec
t;(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(Lweblogic.security.ac
l.internal.AuthenticatedSubject;Lweblogic.security.acl.internal.AuthenticatedSub
ject;Ljava.security.PrivilegedAction;)Ljava.lang.Object;(SecurityManager.java:11
8)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(Lweblogi
c.servlet.internal.ServletRequestImpl;Lweblogic.servlet.internal.ServletResponse
Impl;)V(WebAppServletContext.java:3661)
at weblogic.servlet.internal.ServletRequestImpl.execute(Lweblogic.kernel
.ExecuteThread;)V(ServletRequestImpl.java:2630)
at weblogic.kernel.ExecuteThread.execute(Lweblogic.kernel.ExecuteRequest
;)V(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run()V(ExecuteThread.java:178)
at java.lang.Thread.startThreadFromVM(Ljava.lang.Thread;)V(Unknown Sourc
e)

错误应该就在Document doc = reader.read(f);求大家指点下解决办法。

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧