簡體   English   中英

使用JaxWsDynamicClientFactory(Apache CXF)的動態客戶端

[英]Dynamic client using JaxWsDynamicClientFactory (Apache CXF)

我想創建一個動態客戶端來調用我創建的Web服務。 我嘗試使用JaxWsDynamicClientFactory ,如其官方站點中所述,但沒有得到任何輸出。 相反,我得到了NullPointerException

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

第二行拋出異常。

堆棧跟蹤:

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)

我不知道是什么問題。 任何建議都會有很大的幫助。 謝謝。

您需要使用JDK而不是JRE運行代碼。 NPE在CXF的Compiler類的以下位發生

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

如果您在JRE中運行,則compiler為null。

這是因為CXF使用JRE7而不是JDK7。 在Windows中安裝JDK時,默認情況下也會安裝JRE,並且所有首選項都指向JRE。

  1. 檢查您的路徑。 確保它指向$ {JDK_LOCATION} / bin
  2. 檢查您的JAVA_HOME。 確保它指向$ {JDK_LOCATION}
  3. 轉到控制面板/ java。 在其上添加JDK。
  4. 您還需要在Window-> Preference-> Java-> Installed JRE中檢查eclipse

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM