客戶端axis調用cxf服務端webservice接口問題

客戶端axis調用cxf服務端webservice接口問題
1,axis1調用cxf服務端webservice接口,客戶端調用代碼如下:
param是入參,authMethodName是webservice接口定義的方法名
public static String callRemoteWebService(Object[] param, String authMethodName)
throws SystemException,RemoteException {
String result = "";
try {
Service service = new Service();
Call call = (Call) service.createCall();
URL url = new URL("http://localhost:8090/Venus4A_SYNC/webservice/userservice");
call.setTargetEndpointAddress(url);
call.setOperationName(new QName("http://service.master.webservice.venustech.com.cn",authMethodName));
//call.setOperationName(authMethodName);
call.addParameter("requestData", org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);// 操作的參數  
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);// 設置返回類型  
call.setUseSOAPAction(true); 
result = (String) call.invoke(param);
} catch (MalformedURLException e1) {
e1.printStackTrace();
} catch (ServiceException e1) {
e1.printStackTrace();
}
return result;
}
需要注意的是,1,cxf服務端定義webservice接口的時候,要在接口類上註解@WebService(targetNamespace="http://xxxx.xxxx.webservice.xxxxx.com.cn"); 命名空間必不可缺,否則拋異常如下:
org.apache.cxf.interceptor.Fault: Unexpected wrapper element {http://service.jx4a.services.ismp.sitech.com}addUser found.   Expected {http://service.master.webservice.venustech.com.cn}addUser.
2,public String addUser(@WebParam(name="requestData") String requestXml); 定義的方法名,也要加上註解@WebParam,否則拋異常如下:
org.apache.cxf.interceptor.Fault: Unmarshalling Error: unexpected element (uri:"", local:"xxxxx"). Expected elements are <{}arg0>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章