【发布时间】:2012-02-07 08:25:03
【问题描述】:
我的problem from yesterday 说已排序。不过没解决。
我的 NPE 是由一个隐藏的 FileNotFoundException 触发的,直到我切换到 TRACE 日志记录 (org.jboss.util.xml.JBossEntityResolver)...
所以事情是这样的:
1.) 我正在尝试从部署到 JBoss
下的代码连接到 Web 服务
2.) JBossWs 将 wsdl 保存到 tmp 文件夹,如下所示:
file:/home/xxx/dev/XXXX/jboss-4.2.3.GA/server/yyy/tmp/jbossws/JBossWS_www.company.xx_99_server_soap.php?wsdl=get8489235369016302536.xsd
3.) 然后当它尝试回读 WSDL 时:
TRACE [org.jboss.util.xml.JBossEntityResolver] Failed to obtain URL.InputStream from systemId: file:/home/xxx/dev/xxx-PAN/jboss-4.2.3.GA/server/xxxxxxx/tmp/jbossws/JBossWS_www.comany.xx_99_server_soap.php?wsdl=get8489235369016302536.xsd
java.io.FileNotFoundException: /home/xxx/dev/xxx-PAN/jboss-4.2.3.GA/server/xxxxxxx/tmp/jbossws/JBossWS_www.comany.xx_99_server_soap.php
显然它会被截断,然后无法回读。
我想我能够以某种方式配置模式如何将其写入磁盘或如何读取它,但我确实找到了解决方案(即使不是来自我提到的 JBoss 类的代码)。任何想法将不胜感激。
编辑:
我在 Linux 服务器上创建了一个简单的测试应用程序,指向包含以下代码的同一文件:
URL url = new URL("file:/home/abos/xxx/xxxx/jboss-4.2.3.GA/server/xxxxxxx/tmp/jbossws/JBossWS_www.company.xx_99_server_soap.php?wsdl=get8489235369016302536.xsd");
url.openStream();
Exception in thread "main" java.io.FileNotFoundException: /home/xxx/dev/xxxx/jboss-4.2.3.GA/server/anchorage/tmp/jbossws/JBossWS_www.bdmglobal.xx_99_server_soap.php (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:120)
at java.io.FileInputStream.<init>(FileInputStream.java:79)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:161)
at java.net.URL.openStream(URL.java:1010)
at Main.main(Main.java:11)
以下是我的结论:
1.) 实际上是 URL 类截断了名称
2.) 但如果保存得当,就没有问题了。
所以我仍在寻找一种方法来配置它。
【问题讨论】:
标签: java web-services jboss jbossws