學習記錄之 java 調用.net webservice 脫坑篇

             最近有項目要用java調用webservice,而且服務端用的是.net。走了許多彎路。最後通過axis2實現功能。

   代碼部分上半部分是java代碼,下半部分是maven的pom文件:

		//endpoint 爲 webserviceurl  GetInfoByTypeAndArea 爲方法名
		EndpointReference targetEPR = new EndpointReference(endpoint);
		Options options = new Options();
		options.setAction("http://tempuri.org/GetInfoByTypeAndArea");// 調用接口方法
		options.setTo(targetEPR);
		options.setProperty(HTTPConstants.CHUNKED, "false");// 設置不受限制.
		ServiceClient sender = null;
		try {
			sender = new ServiceClient();
			sender.setOptions(options);
			OMFactory fac = OMAbstractFactory.getOMFactory();
			//-----------------------------複雜配置start------------------------------------------
			OMNamespace omNs = fac.createOMNamespace("http://tempuri.org/", "");//設置命名空間
			OMElement method = fac.createOMElement("GetInfoByTypeAndArea", omNs);//設置方法名稱
			OMElement type = fac.createOMElement("type", omNs), staX = fac.createOMElement("staX", omNs),
					staY = fac.createOMElement("staY", omNs), endX = fac.createOMElement("endX", omNs),
					endY = fac.createOMElement("endY", omNs), strwhere = fac.createOMElement("strwhere", omNs);//創建所有參數
			//爲參數賦值
			type.setText("12"); method.addChild(type); staX.setText("0");
			method.addChild(staX); staY.setText("1"); method.addChild(staY); 
			endX.setText("0"); method.addChild(endX); endY.setText("1");
			method.addChild(endY); strwhere.setText("1"); method.addChild(strwhere);
			method.build();
			//-----------------------------複雜配置end------------------------------------------
			System.out.println("method:" + method.toString());
			OMElement response = sender.sendReceive(method);
			System.out.println("response:" + response);
			System.out.println("cityCode:" + response.getFirstElement().getText());
		} catch (AxisFault e) { System.out.println("Error"); }		
		org.apache.axis2axis2${axis2.version}pomcompileorg.apache.axis2axis2-adb${axis2.version}jarcompileorg.apache.axis2axis2-kernel${axis2.version}jarcompileorg.apache.axis2axis2-transport-local${axis2.version}org.apache.axis2axis2-transport-http${axis2.version}
    本人是用來進行學習交流,QQ:914423503




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章