webservice接口编写

来源:互联网 发布:淘宝客服怎么认证 编辑:程序博客网 时间:2024/05/20 09:47

浅谈webservice接口,

我接收的是别人传给我的xml文件,接收完之后解析为map  ,然后再获取数据,对数据进行增删改查

1.action内


public  String jzshBaseinfo(String xml){
String result="104";
String msg="";
System.out.println("片区代维同步接口发送xml:::::【"+xml+"】");

//此处相当于service层
BasestationInfo bs=new BasestationInfoImpl();
try {
//得到xml信息 
int rs=bs.createsite(xml);//此方法是接收到的xml后要去service层做的操作
if(rs==1){
result="0";
msg="调用成功";
}
} catch (Exception e) {
String error=e.getMessage();
if(error.split("#").length==2){
result=error.split("#")[0];
msg=error.split("#")[1];
}else{
msg=error;
}
e.printStackTrace();
}
String resultXml="<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
"<root>\n" + 
"  <result>"+result+"</result>\n" + 
"  <msg>"+msg+"</msg>\n" + 
"</root>";
return resultXml;
}

2.


public int createsite(String xml) throws Exception {
ListOrderedMap omap=new ListOrderedMap();
try {
omap=this.clXmlToMap(xml);
//更新jzsh基站数据
BasestationInfoDao bsDao=new BasestationInfoDaoImpl();

String type=Tools.vs(omap.get("type"));
System.out.println(type+"-------测试类型");
//如果是3G  BSC和BTSID字段对应基站表BSC和BTSID字段
if(type.equals("3G")){
bsDao.update(Tools.vs(omap.get("basestation_name")),Tools.vs(omap.get("enodebid")),Tools.vs(omap.get("bsc")),Tools.vs(omap.get("btsid")),Tools.vs(omap.get("type")),Tools.vs(omap.get("district")),Tools.vs(omap.get("maintenance")),Tools.vs(omap.get("site")));
}else{
//如果是4G  enodebID  对应 基站表BTSID   
bsDao.updateTG(Tools.vs(omap.get("basestation_name")),Tools.vs(omap.get("enodebid")),Tools.vs(omap.get("type")),Tools.vs(omap.get("district")),Tools.vs(omap.get("maintenance")),Tools.vs(omap.get("site")),Tools.vs(omap.get("bsc")),Tools.vs(omap.get("btsid")));
}

}catch (Exception e) {
e.printStackTrace();
String msg=e.getMessage();
if(msg.split("#").length==2){
throw new RuntimeException(msg);
}else{
throw new RuntimeException("104#"+msg);
}
}
return 1;
}
 
//基站三化将xml解析为一个基站map
private ListOrderedMap clXmlToMap(String xml) {
ListOrderedMap omap=new ListOrderedMap();
if(xml.length()<5){
throw new RuntimeException("101#XML内容错误");
}
String basestation_name=Tools.xmlForValue(xml, "<basestation_name>", "</basestation_name>");
String enodebid=Tools.xmlForValue(xml, "<enodebid>", "</enodebid>");
String bsc=Tools.xmlForValue(xml, "<bsc>", "</bsc>");
String btsid=Tools.xmlForValue(xml, "<btsid>", "</btsid>");
String type=Tools.xmlForValue(xml, "<type>", "</type>");
String district=Tools.xmlForValue(xml, "<district>", "</district>");
String maintenance=Tools.xmlForValue(xml, "<maintenance>", "</maintenance>");
String site=Tools.xmlForValue(xml, "<site>", "</site>");
//String site=Tools.xmlForValue(xml, "<site>", "</site>");
System.out.println(xml+"----测试");
if(basestation_name!=null&&basestation_name!=""){
omap.put("basestation_name", basestation_name);
}else{
throw new RuntimeException("102#basestation_name不能为空");
}
if(enodebid!=null&&enodebid!=""){
omap.put("enodebid", enodebid);
}else{
omap.put("enodebid", null);
}
if(bsc!=null&&bsc!=""){
omap.put("bsc", bsc);
}else{
omap.put("bsc", null);
}
 
if(btsid!=null&&btsid!=""){
omap.put("btsid", btsid);
}else{
omap.put("btsid", null);
}
if(type!=null&&type!=""){
omap.put("type", type);
}else{
throw new RuntimeException("102#type不能为空");
}
if(district!=null&&district!=""){
omap.put("district", district);
}else{
throw new RuntimeException("102#district不能为空");
}
if(maintenance!=null&&maintenance!=""){
omap.put("maintenance", maintenance);
}else{
throw new RuntimeException("102#maintenance不能为空");
}
if(site!=null&&site!=""){
omap.put("site", site);
}else{
omap.put("site", null);
}
return omap;
}


3.做测试


public static void main(String[] args) {
/*String xml= " <?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<root><basestation_name>ZHF_PG移动平谷上镇</basestation_name><enodebid>12" +
"</enodebid><bsc>12</bsc><btsid>2</btsid><type>4G</type><district></district>" +
"<maintenance>电信维护11111111区</maintenance><site></site></root>";*/

String xml= " <?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<root><basestation_name>WN02341HHC_CY中轴路B号综合楼</basestation_name><enodebid>112826" +
"</enodebid><bsc>1</bsc><btsid>1</btsid><type>3G</type><district>南郊区</district>" +
"<maintenance>电信维护16区</maintenance><site>221</site></root>";
try {
//测试地址
// String endPoint = "http://192.168.2.155:8088/JzshPort/services/BasestationInfo?WSDL";
 
Service service = new Service();
Call call = (Call) service.createCall();
  //call.setOperationName(new QName("http://www.JzshPort.com","jzshBaseinfo"));
call.setTargetEndpointAddress(new URL(endPoint));
call.setOperationName(new QName("http://www.JzshPort.com","jzshBaseinfo"));
//createsite
System.out.println(call+"--------");
String result = (String) call.invoke(new Object[] {xml});
System.out.println("SSSSSSSS"+result);


} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ServiceException e) {
e.printStackTrace();
} catch (RemoteException e) {

e.printStackTrace();
}
}