cxf客户端动态调用空指针异常

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cxf客户端动态调用空指针异常相关的知识,希望对你有一定的参考价值。

异常信息如下:

二月 02, 2016 9:38:01 上午 org.apache.cxf.common.jaxb.JAXBUtils logGeneratedClassNames
信息: Created classes: com.demo.ObjectFactory, com.demo.SayHi, com.demo.SayHiResponse, com.demo.SayHiToUser, com.demo.SayHiToUserList, com.demo.SayHiToUserListResponse, com.demo.SayHiToUserResponse, com.demo.User
Exception in thread "main" java.lang.NullPointerException
    at org.apache.cxf.common.util.Compiler.useJava6Compiler(Compiler.java:187)
    at org.apache.cxf.common.util.Compiler.compileFiles(Compiler.java:141)
    at org.apache.cxf.common.util.Compiler.compileFiles(Compiler.java:136)
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.compileJavaSrc(DynamicClientFactory.java:611)
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:370)
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:241)
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:234)
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:189)
    at com.demo.HelloWordClient.main(HelloWordClient.java:29)

上述是在网上摘抄了一个cxf的实例,运行,然后报了上述错误,查看源码,发现是org.apache.cxf.common.util.Compiler的useJava6Compiler方法中有这样一行代码:

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();

运行上述代码,发现返回结果compiler为null,所以会出现上述的空指针,然后网上搜索到一篇文章

http://www.cnblogs.com/fangwenyu/archive/2011/10/12/2209051.html

不过该文章中作者的java_home是jre安装目录,我的是jdk的安装目录,但是用文中同样的方式,将tools.jar放入到我的和jdk同一级的jre中,问题依然得到了解决。

PS:安装版的tomcat在安装的时候,虽然没有设置jre的环境变量 ,但是也会找到jre的安装目录,这两种情况都不会使用jdk安装目录中的jre

 

以上是关于cxf客户端动态调用空指针异常的主要内容,如果未能解决你的问题,请参考以下文章

片段中的空指针异常

从活动调用片段方法时出现空指针异常

活动到片段通信:当我尝试从活动更新片段中的文本视图时,出现空指针异常

导航抽屉中的谷歌地图 - 空指针异常,哪个是正确的片段?

片段中的 EditText 上的空指针异常 [重复]

片段 getArguments() 空指针异常