gpt4 book ai didi

java - JBoss WS 临时文件保存不正确

转载 作者:行者123 更新时间:2023-12-01 15:34:10 27 4
gpt4 key购买 nike

我的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.) 但如果正确保存的话就不会有问题。

所以我仍在寻找一种配置方法。

最佳答案

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

如果您的问题发生在 JBoss 保存文件时,那么不保存文件就能解决您的问题,不是吗?这就是为什么我建议将 wsdl 作为流(或根据您的喜好使用 Reader 或 InputStream 的文本)获取并将其直接放入您的 JNDI 树中......华泰杰罗姆

关于java - JBoss WS 临时文件保存不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9173027/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com