Java tutorial
/** * @(#)SmsService.java 1.0 13:07:44 * Copyright 2015 bjth, Inc. All rights reserved. * attech PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package com.sccl.attech.modules.sms.service; import org.apache.commons.lang.ArrayUtils; import org.apache.cxf.endpoint.Client; import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory; import org.apache.log4j.Logger; import org.springframework.stereotype.Component; import com.sccl.attech.common.config.Global; import com.sccl.attech.common.utils.IdGen; import com.sccl.attech.common.utils.JaxbUtil; import com.sccl.attech.modules.message.entity.SmsReceiver; import com.sccl.attech.modules.sms.request.SmsRequest; import com.sccl.attech.modules.sms.response.ResultInfo; import com.sccl.attech.modules.sms.response.SmsResponse; /** * The Class SmsService. * * @author zzz * @version 1.0,12:57:26 * @see com.sccl.attech.modules.sms.service * @since JDK1.7 */ @Component public class SmsService { /** * Logger for this class */ private static final Logger logger = Logger.getLogger(SmsService.class); private final static String SMS_KEY_USER = "sms.service.username"; private final static String SMS_KEY_PWD = "sms.service.password"; private final static String SMS_KEY_ADDR = "sms.service.address"; private final static String SMS_KEY_METHOD = "sms.service.method"; private final static String SMS_TYPE = "sendMSM"; public static void main(String[] args) { SmsService service = new SmsService(); service.sendSms("18280390357", "?? ----3"); } /** * Send sms. ?? * * @param mobiles the ??,, * @return the result info */ public ResultInfo sendSms(String mobiles, String content) { if (logger.isDebugEnabled()) { logger.debug("sendSms(String=" + mobiles + ", String=" + content + ") - "); } SmsRequest request = initRequest(mobiles, content); ResultInfo resultInfo = new ResultInfo(); resultInfo.setResult(SmsReceiver.SMS_STATUS_SUCCESS); JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); Client client = dcf.createClient(Global.getConfig(SMS_KEY_ADDR)); try { if (logger.isInfoEnabled()) { logger.info("?" + Global.getConfig(SMS_KEY_ADDR) + ":" + Global.getConfig(SMS_KEY_METHOD) + ",??" + request); } String requestXml = JaxbUtil.convertToXml(request); System.out.println(requestXml); Object[] result = client.invoke(Global.getConfig(SMS_KEY_METHOD), requestXml); if (ArrayUtils.isEmpty(result) || null == result[0]) { resultInfo.setResult("0"); resultInfo.setMessage("?"); if (logger.isDebugEnabled()) { logger.debug("sendSms(String=" + mobiles + ", String=" + content + ") - ? - =" + resultInfo); } return resultInfo; } if (logger.isInfoEnabled()) { logger.info("?" + Global.getConfig(SMS_KEY_ADDR) + ":" + Global.getConfig(SMS_KEY_METHOD) + "," + result[0]); } SmsResponse response = JaxbUtil.converyToJavaBean((String) result[0], SmsResponse.class); resultInfo = response.getResultInfo(); } catch (Exception e) { logger.error("sendSms(String=" + mobiles + ", String=" + content + ") - ", e); e.printStackTrace(); resultInfo.setResult(SmsReceiver.SMS_STATUS_FAILE); resultInfo.setMessage(e.getMessage()); } if (logger.isDebugEnabled()) { logger.debug( "sendSms(String=" + mobiles + ", String=" + content + ") - ? - =" + resultInfo); } return resultInfo; } /** * ? request. ?????xml * * @param mobiles the mobiles * @param content the content * @return the sms request */ private SmsRequest initRequest(String mobiles, String content) { SmsRequest request = new SmsRequest(); request.setRequestId(IdGen.uuid()).setType(SMS_TYPE).setUserName(Global.getConfig(SMS_KEY_USER)) .setPassword(Global.getConfig(SMS_KEY_PWD)).setContent(content).setMobiles(mobiles); return request; } }