更新:CXFユーザーのメーリングリストに質問を送信しました。ここ。
更新:私は現在、すべてのjarファイルに署名しています。それでも、WSDLを見つけることができる方法でCXFセットアップを取得できないようです。私の最後の試みは、WSDLをWArファイル内に配置して、Webブラウザーからアクセスできるようにすることでした。クライアント内のwsdllocationをURL(http://www.example.com/app/example.wsdl)に設定しました。現在、次の例外が発生しています。
Exception in thread "AWT-EventQueue-0" java.lang.ExceptionInInitializerError
at com.sun.xml.internal.ws.util.xml.XmlUtil.createDefaultCatalogResolver(Unknown Source)
at com.sun.xml.internal.ws.client.WSServiceDelegate.parseWSDL(Unknown Source)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(Unknown Source)
at com.sun.xml.internal.ws.client.WSServiceDelegate.<init>(Unknown Source)
at com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(Unknown Source)
at javax.xml.ws.Service.<init>(Unknown Source)
グーグルはこれについてほとんど何も明らかにしていません。
Apache CXFを使用して、特定のWSDLからWebサービスクライアントを作成しています。問題が発生していますが、サービスにアクセスしようとすると、次の例外が発生します。
Can not initialize the default wsdl from ../resource/example.wsdl
Exception in thread "AWT-EventQueue-0" java.security.AccessControlException: access denied (java.util.PropertyPermission user.dir read)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
私は自分のWebStartアプリケーションに署名していません。また、クライアントのマシンからリソースにアクセスしていないため、署名しないことを望んでいます。上記のWSDLは私のjarファイルにパッケージ化されています。この問題は、CXFで生成されたクライアントコードから発生します。
URL url = null;
try {
url = new URL("../resource/example.wsdl");
} catch (MalformedURLException e) {
System.err.println("Can not initialize the default wsdl from ../resource/example.wsdl");
// e.printStackTrace();
}
WSDL_LOCATION = url;
CXFがこのWSDLを正しく指すにはどうすればよいですか?クラスのWebServiceアノテーションについても心配しています。
@WebServiceClient(name = "Example",
wsdlLocation = "../resource/example.wsdl",
targetNamespace = "http://services.example.com/")
これも変更する必要がありますか?