2

作成したWebサービスを呼び出す動的クライアントを作成したいと思います。JaxWsDynamicClientFactory公式サイトに記載されている通りに使ってみましたが、出力が出ません。代わりに、私は取得してNullPointerExceptionいます。

JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
Client c = dcf.createClient("http://localhost:8080/service/SearchingSEI?wsdl");

2行目は例外をスローしています。

スタックトレース:

Exception in thread "main" java.lang.NullPointerException
    at org.apache.cxf.common.util.Compiler.useJava6Compiler(Compiler.java:189)
    at org.apache.cxf.common.util.Compiler.compileFiles(Compiler.java:143)
    at org.apache.cxf.common.util.Compiler.compileFiles(Compiler.java:138)
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.compileJavaSrc(DynamicClientFactory.java:599)
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:367)
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:235)
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:228)
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:183)
    at com.client.dynamic.DynamicClientFactory.main(DynamicClientFactory.java:24)

何が問題なのかわかりません。どんな提案も大いに役立ちます。ありがとう。

4

2 に答える 2

3

JREではなくJDKを使用してコードを実行する必要があります。NPEは、CXFのCompilerクラスの次のビットで発生しています。

   JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
   StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);

compilerJREで実行する場合はnullです。

于 2013-03-28T10:42:10.123 に答える
1

これは、CXFがJDK7の代わりにJRE7を使用しているためです。WindowsにJDKをインストールすると、デフォルトでJREもインストールされ、すべての設定がJREを指します。

  1. パスを確認してください。$ {JDK_LOCATION}/binを指していることを確認してください
  2. JAVA_HOMEを確認してください。${JDK_LOCATION}を指していることを確認してください
  3. コントロールパネル/Javaに移動します。その上にJDKを追加します。
  4. また、Window-> Preferences-> Java->InstalledJREsでEclipseをチェックする必要があります
于 2013-12-29T22:02:03.470 に答える