异常信息如下:

二月 ,  :: 上午 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:)
    at org.apache.cxf.common.util.Compiler.compileFiles(Compiler.java:)
    at org.apache.cxf.common.util.Compiler.compileFiles(Compiler.java:)
    at org.apache.cxf.endpoint.)
    at org.apache.cxf.endpoint.)
    at org.apache.cxf.endpoint.)
    at org.apache.cxf.endpoint.)
    at org.apache.cxf.endpoint.)
    at com.demo.HelloWordClient.main(HelloWordClient.java:)

上述是在网上摘抄了一个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客户端动态调用空指针异常的更多相关文章

  1. SOA 下实现分布式 调用 cxf+ webService +动态调用

    近期项目间隙 自学了  webservice   一下 是我写的  一个demo 首先我们在web.xml 里配置如下 <servlet> <servlet-name>CXFS ...

  2. 客户端动态调用cxf websevice 异常

    三月 30, 2014 10:06:40 上午 org.apache.cxf.common.jaxb.JAXBUtils logGeneratedClassNames 信息: Created clas ...

  3. Webservice客户端动态调用服务端功能方法

    一.发布WebService服务 方式一:在服务端生成wsdl文件,下方客户端直接引用即可     优点:针对要发布的方法生成一个wsdl文件即可,无需多余配置.   缺点:每次服务端方法发生改变都需 ...

  4. HttpInvoker客户端动态调用Demo

    private static <T> T getHttpInvokerService(String serverUrl, Class<T> serviceInterface) ...

  5. 【技术贴】webservice cxf2 客户端动态调用报错No operation was found with the name

    No operation was found with the name xxx 出错原因是因为发布服务的接口所在包路径和此接口实现类包路径不一致,比如你的服务接口可能放在了包com.x.interF ...

  6. C# .NET 动态调用webservice的三种方式

    转载自 百度文库 http://wenku.baidu.com/link?url=Q2q50wohf5W6UX44zqotXFEe_XOMaib4UtI3BigaNwipOHKNETloMF4ax4W ...

  7. WCF入门及在WinForm中动态调用

    一.WCF入门 1. 新建立空白解决方案,并在解决方案中新建项目,项目类型为:WCF服务应用程序,删除系统生成的两个文件IService1.cs与Service1.svc, 添加自定义的WCF[服务文 ...

  8. Web Service学习笔记:动态调用WebService

    原文:Web Service学习笔记:动态调用WebService 多数时候我们通过 "添加 Web 引用..." 创建客户端代理类的方式调用WebService,但在某些情况下我 ...

  9. CXF 调用方式——动态创建客户端(调用稳定版本号为2.7.18)

    今天用动态创建客户端的方式调用webservice,报了这样一个错: 2017-01-05 20:51:46,029 DEBUG main org.apache.cxf.common.logging. ...

随机推荐

  1. Linux设置Memcached开机启动

    Memcached开机启动方式 方法一: 在 /etc/rc.d/rc.local 文件中追加启动命令 /usr/local/memcached/bin/memcached  -u root -d - ...

  2. 第2月第24天 coretext 行高

    1.NSMutableAttributedString 行高 NSMutableAttributedString *attributedString = [[NSMutableAttributedSt ...

  3. Marquee 滚动参数

    new marquee("Layer3", 2, 1, 989, 68, 20, 0, 0, 238); 参数说明:Layer3 :容器ID 2 :向上滚动(0向上 1向下 2向左 ...

  4. POJ2342 树形dp

    原题:http://poj.org/problem?id=2342 树形dp入门题. 我们让dp[i][0]表示第i个人不去,dp[i][1]表示第i个人去 ,根据题意我们可以很容易的得到如下递推公式 ...

  5. 最近使用oracle的笔记和少量的正则表达式

    用户.表空间.表:    一个用户一般给予一个表空间,可以多个用户共同管理一个表空间    一个表空间会有多张表对于权限的控制:    在数据库中在人员菜单与需要浏览的文件之间做权限设置能否浏览,可以 ...

  6. dos 下删除文件、文件夹

    删除文件 /p 删除每一个文件之前提示确认/f 强制删除只读文件 /s 从当前目录及所有子目录删除指定文件/q 安静模式.删除全局通配符时,不要求确认/a 根据属性选择要删除的文件 指定下列文件属性中 ...

  7. Python全栈开发【基础二】

    Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...

  8. java2

    1:关键字(掌握) (1)被Java语言赋予特定含义的单词 (2)特点: 全部小写. (3)注意事项: A:goto和const作为保留字存在. B:类似于Notepad++这样的高级记事本会对关键字 ...

  9. python tornado 入门

    #!/usr/bin/env python # coding:utf-8 import textwrap import tornado.httpserver import tornado.ioloop ...

  10. GET和POST

    Ajax与Comet 1. Ajax Asynchronous Javascript+xml :能够向服务器请求额外的数据而无需卸载页面. Ajax技术的核心是XMLHttpRequest 对象(简称 ...