昨日からの私の問題は、ソートされたと言うことです。解決していませんが。
私が持っていた NPE は、TRACE ロギング (org.jboss.util.xml.JBossEntityResolver) に切り替えるまで隠されていた FileNotFoundException によってトリガーされました...
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.) しかし、それが適切に保存されていれば、問題にはなりません。
だから私はまだそれを設定する方法を探しています。