[英]Dynamic client using JaxWsDynamicClientFactory generates java.lang.IllegalArgumentException error
[英]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。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.