Моя проблема со вчерашнего дня , скажем, отсортирована.Не решена, хотя.
NPE, который я имел, был вызван FileNotFoundException, который был скрыт, пока я не переключился на ведение журнала TRACE (org.jboss.util.xml.JBossEntityResolver) ...
Так что здесьвот что:
1.) Я пытаюсь подключиться к веб-сервису из кода, развернутого в JBoss
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
Очевидно, что он усекается и затем не может читать обратно.
IДумаю, я мог бы каким-то образом настроить шаблон, как он записывает его на диск или как он читает его обратно, но я нашел решение (даже не из кода класса 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.) Но если он будет сохранен правильно, это не будет проблемой.
Так что я все еще ищу способ настроить это.