Java调用WebService接口
2013-12-19 14:47
274 查看
接口定义:
public interface SendSMSHandler { public void handleMessage(String text); }
实现类:
package com.jjh.core.msg.sms.impl; import java.io.IOException; import java.rmi.RemoteException; import java.util.HashMap; import javax.xml.namespace.QName; import javax.xml.rpc.ParameterMode; import javax.xml.rpc.ServiceException; import javax.xml.rpc.encoding.XMLType; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; import com.jjh.security.CommonEncrypt; import com.jjh.core.msg.sms.SendSMSHandler; import com.jjh.util.Constrants; @org.springframework.stereotype.Service public class SendSMSHandlerImpl implements SendSMSHandler { private static String smsURL = "http://sms.xxx.com/SMSService.asmx"; private static String soapAction = "http://www.xxx.com/"; private static ObjectMapper mapper = new ObjectMapper(); @SuppressWarnings("unchecked") public void handleMessage(String text) { org.apache.axis.client.Service service = new Service(); try { HashMap<String, Object> messagecontent=(HashMap<String, Object>)mapper.readValue(text, HashMap.class); String msgcontent=(String)messagecontent.get(Constrants.MSGCONT); HashMap<String, Object> map=(HashMap<String, Object>)CommonEncrypt.decryptSerializeObject(msgcontent); Call call = (Call)service.createCall(); call.setTargetEndpointAddress(smsURL); call.setOperationName(new QName(soapAction, "SendSms")); call.addParameter(new QName(soapAction, "mobile"), XMLType.XSD_STRING, ParameterMode.IN); call.addParameter(new QName(soapAction, "text"), XMLType.XSD_STRING, ParameterMode.IN); call.addParameter(new QName(soapAction, "username"), XMLType.XSD_STRING, ParameterMode.IN); call.addParameter(new QName(soapAction, "password"), XMLType.XSD_STRING, ParameterMode.IN); call.setReturnType(new QName(soapAction, "SendSmsResponse"), Integer.class); call.setUseSOAPAction(true); call.setSOAPActionURI(soapAction + "SendSms"); Integer v = (Integer)call.invoke(new Object[]{map.get("mobile"), map.get("text"), map.get("username"), map.get("password")}); System.out.println(v); } catch (ServiceException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (RemoteException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JsonParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JsonMappingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args){ SendSMSHandler sms = new SendSMSHandlerImpl(); HashMap<String, Object> info = new HashMap<String, Object>(); info.put("mobile", "15800001111"); info.put("text", "Hello World!"); info.put("username", "xxx"); info.put("password", "xxxzzz"); String content = ""; try { content = GlodonEncrypt.encryptSerializeObject(info); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } HashMap<String, Object> msg = new HashMap<String, Object>(); msg.put(Constrants.MSGTYPE, Constrants.MESSAGE_TYPE[1]); msg.put(Constrants.MSGCONT, content); String message = ""; try { message=mapper.writeValueAsString(msg); } catch (JsonGenerationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JsonMappingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } sms.handleMessage(message); } }
相关文章推荐
- Java 以post请求方式通过json格式调用Webservice接口
- 用xfire实现基于java的webservice接口调用
- java调用webservice接口方法
- Java调用WebService接口的常见错误
- Java调用webservice接口方法
- Java客户端调用WebService接口
- Java利用Axis远程调用WebService接口
- java 编写webservice 接口(xfire) ,调用webservice接口
- Java调用WebService接口
- webservice实际应用之调用外部系统提供的服务端地址,写java的webservice客户端程序并通过接口给外部系统传数据
- java代码调用webservice接口
- 用java调用webservice接口
- java调用webservice WSDL形式接口之apache axis方式调用(一)
- wsdl2java 调用webservice接口
- Java调用C#WebService接口方式
- java接口调用——webservice就是一个RPC而已
- java调用webservice接口方法
- java调用CXF WebService接口的两种方式
- Java调用webservice接口方法
- Java调用WebService接口实现发送手机短信验证码功能