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客户端动态调用空指针异常的主要内容,如果未能解决你的问题,请参考以下文章