使用 org.apache.cxf.endpoint.Client client = dcf.createClient(url);
创建连接的时候报错
查看源代码
protected boolean useJava6Compiler(String[] files) {
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
Iterable<? extends JavaFileObject> fileList = fileManager.getJavaFileObjectsFromStrings(Arrays
.asList(files));
return internalJava6Compile(compiler, wrapJavaFileManager(fileManager), setupDiagnosticListener(),
fileList);
}
发现ToolProvider.getSystemJavaCompiler();返回值为空
继续查看源码发现是加载tools.jar
网上查发现,编译文件时,会找到JAVA_HOME的jre\lib\tools.jar
但是值得注意的是tools.jar并不在jre中,它是在jdk的安装目录下
所以,手动把这个jar文件从jdk目录下拷贝到了jre目录下,再次运行上面的代码就没有问题了!如果JAVA_HOME指向的是JDK,可以在JDK同级的JRE里面也加上这个tools.jar