原来调用CXF接口的方式都使用spring直接配置客户端,这种方式下,客户端需要与服务端有相同的接口类。
这种方式在某些场景下,一个服务需要对应配置一个客户端,极不方便。
改用如下方式代码:
// JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
// Client client = dcf.createClient("http://localhost:8090/demoService?wsdl");
//
// Object[] res;
// try {
// res = client.invoke("sayHi", "test echo");
// System.out.println("Echo response: " + res[0]);
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
报错:Caused by: java.lang.ClassNotFoundException: com.sun.tools.internal.xjc.api.XJC
解决: 添加jdk下的tools.jar到类路径中
报错:Complier NullPoint (在3.0+版本貌似是No compiler detected, make sure you are running on top of a JDK..)
解决: 在Run Configurations 的jre标签页中直接选择使用jdk,(与服务端tomcat的jdk一致),
tools.jar不需要再添加到类路径中