public class ReceiveMessage {
private static JdbcTemplate jdbcTemplate = (JdbcTemplate) SpringUtil.getBean("jdbcTemplate");
public static void receive()
{
ArrayList<MO> list=new ArrayList<MO>();
try {
String MASInterURL = PropertiesHelper.getInstance("C:/sms/dxpt_gate/base-config.properties").getProperty("MASInterURL.jxReceiveMessage");//获取Web服务的地址
org.codehaus.xfire.service.Service service = new ObjectServiceFactory().create(IRecvSMS.class);
XFire xFire = XFireFactory.newInstance().getXFire();
XFireProxyFactory factory = new XFireProxyFactory(xFire);
IRecvSMS send = (IRecvSMS) factory.create(service,MASInterURL);
String retXML = send.process("");
// String retXML = "<?xml version='1.0' encoding='UTF-8'?><ROOT><LIST><MO><MSG_FMT></MSG_FMT><AUTO_SN>1</AUTO_SN><SM_ID>0</SM_ID><MOBILE>12423543634</MOBILE><CONTENT><![CDATA[srferwferger]]></CONTENT><MO_TIME>2012-09-20 21:00:00</MO_TIME></MO><MO><MSG_FMT></MSG_FMT><AUTO_SN>1</AUTO_SN><SM_ID>1</SM_ID><MOBILE>11234567543</MOBILE><CONTENT><![CDATA[dgfsfsfsdf]]></CONTENT><MO_TIME>2012-09-21 00:00:00</MO_TIME></MO></LIST></ROOT>";
StringBuffer strXML=new StringBuffer(retXML);
Digester digester = new Digester();
InputStream is = null;
digester.setValidating(false);//不进行XML与相应的DTD的合法性验证
digester.addObjectCreate("ROOT/LIST", ArrayList.class); //当遇到"ROOT/LIST"时,创建一个ArrayList.class对象
digester.addObjectCreate("ROOT/LIST/MO", MO.class); //当遇到"ROOT/LIST/MO"时,创建一个MO.class对象
digester.addBeanPropertySetter("ROOT/LIST/MO/SM_ID", "SM_ID");// xml中的"ROOT/MO/SM_ID"对应类MO的SM_ID
digester.addBeanPropertySetter("ROOT/LIST/MO/MOBILE", "MOBILE");// xml中的"ROOT/MO/MOBILE"对应类MO的MOBILE
digester.addBeanPropertySetter("ROOT/LIST/MO/CONTENT", "CONTENT");// xml中的"ROOT/MO/CONTENT"对应类MO的CONTENT
digester.addBeanPropertySetter("ROOT/LIST/MO/MO_TIME", "MO_TIME");// xml中的"ROOT/MO/MO_TIME"对应类MO的MO_TIME
digester.addBeanPropertySetter("ROOT/LIST/MO/AUTO_SN", "AUTO_SN");// xml中的"ROOT/MO/AUTO_SN"对应类MO的AUTO_SN
digester.addBeanPropertySetter("ROOT/LIST/MO/MSG_FMT", "MSG_FMT");// xml中的"ROOT/MO/MSG_FMT"对应类MO的MSG_FMT
digester.addSetProperties("ROOT/LIST/MO"); // 根据MO元素的属性
digester.addSetNext("ROOT/LIST/MO","add");
is = new ByteArrayInputStream(retXML.getBytes("UTF-8"));
list = (ArrayList) digester.parse(is);
if(list.isEmpty() == false){
for(int i = 0;i < list.size(); i ++){
MO mo = list.get(i);
String sql1="insert into gate_yd_rece(SEQCODE,AUTO_SN,SM_ID,MOBILE,MO_TIME,CONTENT,YWTYPE)values (dx_rece_bak_seq.nextval,"+mo.getAUTO_SN()+",'"+mo.getSM_ID()+"','"+mo.getMOBILE()+"',to_date('"+mo.getMO_TIME()+"','yyyy-mm-dd hh24:mi:ss'),'"+mo.getCONTENT()+"','')";
String sql="insert into gate_yd_rece_bak(MOBILE,SM_ID,CONTENT,MO_TIME,MSG_FMT,AUTO_SN,SEQCODE )values ('"+mo.getMOBILE()+"','"+mo.getSM_ID()+"','"+mo.getCONTENT()+"',to_date('"+mo.getMO_TIME()+"','yyyy-mm-dd hh24:mi:ss'),'"+mo.getMSG_FMT()+"','"+mo.getAUTO_SN()+"',dx_rece_bak_seq.nextval)";
jdbcTemplate.execute(sql);
jdbcTemplate.execute(sql1);
}
}
}
catch(BussinessProcessException e){
e.printStackTrace();
throw new BussinessProcessException(e.getMessage());
}
catch(Exception e){
e.printStackTrace();
}
}