使用cxf客户端调用webservice,报错,详细信息如下
其中 getTodayWeatherDetail.为调用的webwervice的方法,
http://server.cxf.webservice***为webservice中的namespace
代码如下:
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); Client client = dcf.createClient("http://localhost:8080/csfServer/WeatherService?wsdl"); Object[] objects = new Object[0]; try { //参数1 是targetNamespace的空间名,参数2 是方法名 QName opName = new QName("http://server.cxf.webservice.com", "getTodayWeather"); objects = client.invoke(opName,"北京"); System.out.println("返回数据:" + objects[0]); } catch (java.lang.Exception e) { e.printStackTrace(); }
报错的原因是在client的调用过程中,client设置的namespace设置的与wsdl中显示的不同。造成找不到此方法,核对后重新调用,不在报错。