JBoss WS Temp文件保存不正确

时间:2012-02-07 08:25:04

标签: java web-services jboss jbossws

我的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.)但如果保存得当,那就没问题了。

所以我仍在寻找配置它的方法。

1 个答案:

答案 0 :(得分:1)

从未见过这个问题所以我的回答可能对你没什么帮助.... 您是否尝试将jboss.server.temp.dir属性设置为类似/ tmp并再次运行测试用例?可能有一些硬编码的长度,试图缩短路径可能会解决问题... 另一个技巧是设置.sar Jboss服务请求你的wsdl并通过JNDI发布它们以避免从客户端角度看路径f的所有问题?您只需要处理一个流并将其放入JNDI树中..没有涉及的路径

如果你的问题发生在JBoss 保存文件所以不保存它会解决你的问题不是吗?这就是为什么我建议把wsdl作为一个流(或者你喜欢使用Reader或InputStream的文本)并将它直接放到你的JNDI树中.... HTH 杰罗姆