- 浏览: 96686 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
pug007:
您好。请问您是如何保证输出的json是按照{"tot ...
struts2 + hibernate + spring + flexgrid 分页实现 -
四书五经:
不错,记一笔。sorry,上面打错字了
MySql服务器的启动和关闭 -
四书五经:
不错,记不笔
MySql服务器的启动和关闭 -
VincentBoy:
不错 啊。
请问一下,你还有没有这个struts_JSON项 ...
struts2 + jquery + json模拟登陆效果 -
天空之城:
请问要是执行修改操作的时候,如何动态的默认显示?
comboboxTree的使用
利用AXIS开发WebService综合应用:
因项目需要,通过WebService传递对象及附件,最终返回结果对象。
1、开发服务端参数对象:
派单对象:
package com.starit.itsmhd.bean; import java.io.Serializable; import java.util.Date; /** * @author zqding * @version 1.0 * @date 2010-11-19 * @class_displayName ApplyItem * */ public class ApplyItem implements Serializable { private static final long serialVersionUID = -4997055778736225953L; // 事件流水号 private String applyserial; // 事件提出人 private String submitStaffName; // 事件标题 private String title; // 地点 private String place; // 事件发生时间 private Date occurTime; // 事件来源 private int origin; // 事件影响度 private int incidence; // 事件优先级 private int priority; // 事件完成期限 private Date finishLimit; // 所属系统类型 private int sysType; // 事件内容 private String content; // 附件标记 private boolean attachFlag; // 附件数量 private int fileNum; // 附件名称 private String[] attName; public ApplyItem() { } public String getApplyserial() { return applyserial; } public void setApplyserial(String applyserial) { this.applyserial = applyserial; } public boolean isAttachFlag() { return attachFlag; } public void setAttachFlag(boolean attachFlag) { this.attachFlag = attachFlag; } public String[] getAttName() { return attName; } public void setAttName(String[] attName) { this.attName = attName; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public int getFileNum() { return fileNum; } public void setFileNum(int fileNum) { this.fileNum = fileNum; } public Date getFinishLimit() { return finishLimit; } public void setFinishLimit(Date finishLimit) { this.finishLimit = finishLimit; } public int getIncidence() { return incidence; } public void setIncidence(int incidence) { this.incidence = incidence; } public Date getOccurTime() { return occurTime; } public void setOccurTime(Date occurTime) { this.occurTime = occurTime; } public int getOrigin() { return origin; } public void setOrigin(int origin) { this.origin = origin; } public String getPlace() { return place; } public void setPlace(String place) { this.place = place; } public int getPriority() { return priority; } public void setPriority(int priority) { this.priority = priority; } public String getSubmitStaffName() { return submitStaffName; } public void setSubmitStaffName(String submitStaffName) { this.submitStaffName = submitStaffName; } public int getSysType() { return sysType; } public void setSysType(int sysType) { this.sysType = sysType; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } }
派单返回对象:
package com.starit.itsmhd.bean; import java.io.Serializable; /** * @author zqding * @version 1.0 * @date 2010-11-21 * @class_displayName ApplyItemResponse */ public class ApplyItemResponse implements Serializable { private static final long serialVersionUID = -443142827992526070L; // 返回结果 private int result; // 服务保障流程号 private String fwbzSerial; // ITSM流程号 private String itsmSerial; // 返回信息 private String msg; public ApplyItemResponse() { } public String getFwbzSerial() { return fwbzSerial; } public void setFwbzSerial(String fwbzSerial) { this.fwbzSerial = fwbzSerial; } public String getItsmSerial() { return itsmSerial; } public void setItsmSerial(String itsmSerial) { this.itsmSerial = itsmSerial; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public int getResult() { return result; } public void setResult(int result) { this.result = result; } }
其它对象略...
2、配置wsdd文件:
<service name="FwbzService" provider="java:RPC" style="rpc" use="encoded"> <documentation>接口</documentation> <parameter name="allowedMethods" value="*"/> <parameter name="wsdlPortType" value="FwbzService"/> <parameter name="wsdlServicePort" value="FwbzService"/> <parameter name="wsdlServiceElement" value="FwbzService"/> <parameter name="className" value="com.starit.itsmhd.service.FwbzService"/> <parameter name="wsdlTargetNamespace" value="http://itsmhd.starit.com/service"/> <parameter name="wsdlServiceElement" value="FwbzService"/> <parameter name="schemaUnqualified" value="http://itsmhd.starit.com/bean,http://itsmhd.starit.com/exception"/> <!--派发--> <typeMapping xmlns:ns="http://itsmhd.starit.com/bean" qname="ns:ApplyItem" type="java:com.starit.itsmhd.bean.ApplyItem" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> <typeMapping xmlns:ns="http://itsmhd.starit.com/bean" qname="ns:ApplyItemResponse" type="java:com.starit.itsmhd.bean.ApplyItemResponse" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> <!--查询--> <typeMapping xmlns:ns="http://itsmhd.starit.com/bean" qname="ns:QueryItem" type="java:com.starit.itsmhd.bean.QueryItem" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> <typeMapping xmlns:ns="http://itsmhd.starit.com/bean" qname="ns:QueryItemResponse" type="java:com.starit.itsmhd.bean.QueryItemResponse" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> <!-- 取消--> <typeMapping xmlns:ns="http://itsmhd.starit.com/bean" qname="ns:CancelItem" type="java:com.starit.itsmhd.bean.CancelItem" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> <typeMapping xmlns:ns="http://itsmhd.starit.com/bean" qname="ns:CancelItemResponse" type="java:com.starit.itsmhd.bean.CancelItemResponse" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> <!-- 关闭--> <typeMapping xmlns:ns="http://itsmhd.starit.com/bean" qname="ns:CloseItem" type="java:com.starit.itsmhd.bean.CloseItem" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> <typeMapping xmlns:ns="http://itsmhd.starit.com/bean" qname="ns:CloseItemResponse" type="java:com.starit.itsmhd.bean.CloseItemResponse" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> <!--催单--> <typeMapping xmlns:ns="http://itsmhd.starit.com/bean" qname="ns:PromptItem" type="java:com.starit.itsmhd.bean.PromptItem" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> <typeMapping xmlns:ns="http://itsmhd.starit.com/bean" qname="ns:PromptItemResponse" type="java:com.starit.itsmhd.bean.PromptItemResponse" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> <!--附件--> <arrayMapping xmlns:ns="http://itsmhd.starit.com/bean" qname="ns:ArrayOf_tns1_DataHandler" type="java:javax.activation.DataHandler[]" innerType="cmp-ns:DataHandler" xmlns:cmp-ns="http://xml.apache.org/xml-soap" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> <!--异常--> <typeMapping xmlns:ns="http://itsmhd.starit.com/exception" qname="ns:AppException" type="java:com.starit.itsmhd.exception.AppException" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </service>
3、开发功能接口及实现和业务处理类:
package com.starit.itsmhd.interfaces; import java.rmi.Remote; import java.rmi.RemoteException; import javax.activation.DataHandler; import com.starit.itsmhd.bean.ApplyItem; import com.starit.itsmhd.bean.ApplyItemResponse; import com.starit.itsmhd.bean.CancelItem; import com.starit.itsmhd.bean.CancelItemResponse; import com.starit.itsmhd.bean.CloseItem; import com.starit.itsmhd.bean.CloseItemResponse; import com.starit.itsmhd.bean.PromptItem; import com.starit.itsmhd.bean.PromptItemResponse; import com.starit.itsmhd.bean.QueryItem; import com.starit.itsmhd.bean.QueryItemResponse; import com.starit.itsmhd.exception.AppException; /** * @author zqding * @version 1.0 * @date 2010-11-22 * @class_displayName FwbzInter */ public interface FwbzInter extends Remote { public ApplyItemResponse putEvent(ApplyItem applyItem, DataHandler[] attchments) throws RemoteException, AppException; public QueryItemResponse queryEvent(QueryItem queryItem) throws RemoteException, AppException; public CancelItemResponse cancelEvent(CancelItem cancelItem) throws RemoteException, AppException; public CloseItemResponse closeEvent(CloseItem closeItem, DataHandler[] attchments) throws RemoteException, AppException; public PromptItemResponse promptEvent(PromptItem promptItem) throws RemoteException, AppException; }
package com.starit.itsmhd.impl; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.StringReader; import java.rmi.RemoteException; import java.text.SimpleDateFormat; import javax.activation.DataHandler; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import com.primeton.tp.common.xml.XmlUtil; import com.primeton.tp.core.api.BizServiceCallerFactory; import com.primeton.tp.core.bizservice.ProcessCaller; import com.starit.itsmhd.bean.ApplyItem; import com.starit.itsmhd.bean.ApplyItemResponse; import com.starit.itsmhd.bean.CancelItem; import com.starit.itsmhd.bean.CancelItemResponse; import com.starit.itsmhd.bean.CloseItem; import com.starit.itsmhd.bean.CloseItemResponse; import com.starit.itsmhd.bean.PromptItem; import com.starit.itsmhd.bean.PromptItemResponse; import com.starit.itsmhd.bean.QueryItem; import com.starit.itsmhd.bean.QueryItemResponse; import com.starit.itsmhd.exception.AppException; import com.starit.itsmhd.interfaces.FwbzInter; /** * @author zqding * @version 1.0 * @date 2010-11-22 * @class_displayName FwbzImpl */ public class FwbzImpl implements FwbzInter { private static Log logger = LogFactory.getLog(FwbzImpl.class); public ApplyItemResponse putEvent(ApplyItem applyItem, DataHandler[] attchments) throws RemoteException, AppException { ApplyItemResponse resultObj = new ApplyItemResponse(); //ApplyItemResponse resultObj = null; String resultValue = null; String resultXML = ""; try { logger.info("开始处理 ITSM系统的工单派发请求接口<ITSM调服务保障>"); //1、如果有附件,先保存附件。 logger.info("保存附件"); String[] fileNames = applyItem.getAttName(); String[] fNames = {"222.pdf","222.rar"}; SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); String inputXML = ""; if(applyItem.isAttachFlag()){ for(int i =0 ;i < fileNames.length ; i++){ logger.info("保存文件" + i +":"+ fileNames[i]); String fullPath = "C:/" + fNames[i]; File file = new File(fullPath); int flag = 0; try { InputStream input = attchments[i].getInputStream(); FileOutputStream fos = new FileOutputStream(file); byte[] buffer=new byte[4096]; while((flag=input.read(buffer))!=-1){ fos.write(buffer,0,flag); } input.close(); fos.close(); } catch (IOException e) { e.printStackTrace(); } } } //2、向保障系统派单 logger.info("参数列表:"); logger.info("ITSM事件流水号:" + applyItem.getApplyserial()); logger.info("事件提出人:" + applyItem.getSubmitStaffName()); logger.info("事件标题:" + applyItem.getTitle()); logger.info("事件发生地址:" + applyItem.getPlace()); logger.info("事件发生时间:" + df.format(applyItem.getOccurTime())); logger.info("事件来源:" + applyItem.getOrigin()); logger.info("事件影响度:" + applyItem.getIncidence()); logger.info("事件优先级:" + applyItem.getPriority()); logger.info("事件完成期限:" + df.format(applyItem.getFinishLimit())); logger.info("所属系统类型:" + applyItem.getSysType()); logger.info("事件内容:" + applyItem.getContent()); logger.info("附件标记:" + applyItem.isAttachFlag()); logger.info("附件数量:" + applyItem.getFileNum()); logger.info("附件名称:" + StringUtils.join(applyItem.getAttName(), ",")); inputXML = "<?xml version=\"1.0\" encoding=\"GB2312\"?><root><data>" + "<applySerial>" + applyItem.getApplyserial() + "</applySerial>" + "<submitStaffName>" + applyItem.getSubmitStaffName() + "</submitStaffName>" + "<title>" + applyItem.getTitle() + "</title>" + "<place>" + applyItem.getPlace() + "</place>" + "<occurTime>" + df.format(applyItem.getOccurTime()) + "</occurTime>" + "<origin>" + applyItem.getOrigin() + "</origin>" + "<incidence>" + applyItem.getIncidence() + "</incidence>" + "<priority>" + applyItem.getPriority() + "</priority>" + "<finishLimit>" + df.format(applyItem.getFinishLimit()) + "</finishLimit>" + "<sysType>" + applyItem.getSysType() + "</sysType>" + "<content>" + applyItem.getContent() + "</content>" + "<attachFlag>" + applyItem.isAttachFlag() + "</attachFlag>" + "<fileNum>" + applyItem.getFileNum() + "</fileNum>" + "<attName>" + StringUtils.join(applyItem.getAttName(), ",") + "</attName>" + "</data></root>"; logger.info("派单输入信息:" + inputXML); resultXML = callBiz("spi", "bizITSM_Fault_Interface.bizITSM_BZ_PDintf", inputXML); logger.info("派单返回信息:" + resultXML); } catch (Exception e) { resultValue = "调用 服务保障系统工单派发接口失败,原因"; resultValue = resultValue + e.getMessage(); logger.info("异常原因:" + resultValue); throw new AppException(resultValue, null); } //3、把派单返回信息转成Document对象并赋值给ApplyItemResponse->resultObj对象 Document doc; try { doc = stringToDoc(resultXML); NodeList nodes = doc.getElementsByTagName("data"); for (int i = 0; i < nodes.getLength(); i++) { Node node = nodes.item(i); NodeList childNodes = node.getChildNodes(); for (int j = 0; j < childNodes.getLength(); j++) { Node childNode = childNodes.item(j); if (childNode.getNodeType() == Node.ELEMENT_NODE && childNode.getNodeName().equals("result")) resultObj.setResult(new Integer(childNode.getFirstChild().getNodeValue())); if (childNode.getNodeType() == Node.ELEMENT_NODE && childNode.getNodeName().equals("fwbzSerial")) resultObj.setFwbzSerial(childNode.getFirstChild().getNodeValue()); if (childNode.getNodeType() == Node.ELEMENT_NODE && childNode.getNodeName().equals("itsmSerial")) resultObj.setItsmSerial(childNode.getFirstChild().getNodeValue()); if (childNode.getNodeType() == Node.ELEMENT_NODE && childNode.getNodeName().equals("msg")) resultObj.setMsg(childNode.getFirstChild().getNodeValue()); } } } catch (Exception e) { resultValue = "派单结果转换失败,原因"; resultValue = resultValue + e.getMessage(); logger.info("异常原因:" + resultValue); throw new AppException(resultValue, null); } return resultObj; } ...... /** * String 转 XML org.w3c.dom.Document */ private static Document stringToDoc(String xmlStr) { // 字符串转XML Document doc = null; try { xmlStr = new String(xmlStr.getBytes(), "gb2312"); StringReader sr = new StringReader(xmlStr); InputSource is = new InputSource(sr); DocumentBuilderFactory factory = DocumentBuilderFactory .newInstance(); DocumentBuilder builder; builder = factory.newDocumentBuilder(); doc = builder.parse(is); } catch (ParserConfigurationException e) { System.err.println(xmlStr); e.printStackTrace(); } catch (SAXException e) { System.err.println(xmlStr); e.printStackTrace(); } catch (IOException e) { System.err.println(xmlStr); e.printStackTrace(); } return doc; } /** * XML org.w3c.dom.Document 转 String */ private static String docToString(Document doc) { // XML转字符串 String xmlStr = ""; try { TransformerFactory tf = TransformerFactory.newInstance(); Transformer t = tf.newTransformer(); t.setOutputProperty("encoding", "gb2312");// 解决中文问题,试过用GBK不行UTF-8 ByteArrayOutputStream bos = new ByteArrayOutputStream(); t.transform(new DOMSource(doc), new StreamResult(bos)); xmlStr = bos.toString(); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } return xmlStr; } }
package com.starit.itsmhd.service; import java.rmi.RemoteException; import javax.activation.DataHandler; import org.w3c.dom.*; import com.primeton.tp.core.api.BizContext; import com.starit.itsmhd.bean.ApplyItem; import com.starit.itsmhd.bean.ApplyItemResponse; import com.starit.itsmhd.bean.CancelItem; import com.starit.itsmhd.bean.CancelItemResponse; import com.starit.itsmhd.bean.CloseItem; import com.starit.itsmhd.bean.CloseItemResponse; import com.starit.itsmhd.bean.PromptItem; import com.starit.itsmhd.bean.PromptItemResponse; import com.starit.itsmhd.bean.QueryItem; import com.starit.itsmhd.bean.QueryItemResponse; import com.starit.itsmhd.exception.AppException; import com.starit.itsmhd.impl.FwbzImpl; import com.starit.itsmhd.interfaces.FwbzInter; /** * @author zqding * @version 1.0 * @date 2010-11-22 * @class_displayName FwbzService */ public class FwbzService implements FwbzInter { private FwbzInter impl; public FwbzService() { this.impl = new FwbzImpl(); } public FwbzService(FwbzInter impl) { this.impl = impl; } //派单 public ApplyItemResponse putEvent(ApplyItem applyItem, DataHandler[] attchments) throws RemoteException, AppException { ApplyItemResponse ret = impl.putEvent(applyItem, attchments); return ret; } //查询工单 public QueryItemResponse queryEvent(QueryItem queryItem) throws RemoteException, AppException { QueryItemResponse ret = impl.queryEvent(queryItem); return ret; } //取消工单 public CancelItemResponse cancelEvent(CancelItem cancelItem) throws RemoteException, AppException { CancelItemResponse ret = impl.cancelEvent(cancelItem); return ret; } //关闭工单 public CloseItemResponse closeEvent(CloseItem closeItem, DataHandler[] attchments) throws RemoteException, AppException { CloseItemResponse ret = impl.closeEvent(closeItem, attchments); return ret; } //催单 public PromptItemResponse promptEvent(PromptItem promptItem) throws RemoteException, AppException { PromptItemResponse ret = impl.promptEvent(promptItem); return ret; } }
4、测试代码:
package com.starit.itsmhd.testcase; import java.io.File; import java.rmi.RemoteException; import java.util.Date; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.xml.namespace.QName; import javax.xml.rpc.ParameterMode; import javax.xml.rpc.ServiceException; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.encoding.ser.BeanDeserializerFactory; import org.apache.axis.encoding.ser.BeanSerializerFactory; import org.apache.axis.encoding.ser.JAFDataHandlerDeserializerFactory; import org.apache.axis.encoding.ser.JAFDataHandlerSerializerFactory; import com.starit.itsmhd.bean.ApplyItem; import com.starit.itsmhd.bean.ApplyItemResponse; import com.starit.itsmhd.bean.CancelItem; import com.starit.itsmhd.bean.CancelItemResponse; import com.starit.itsmhd.bean.CloseItem; import com.starit.itsmhd.bean.CloseItemResponse; import com.starit.itsmhd.bean.PromptItem; import com.starit.itsmhd.bean.PromptItemResponse; import com.starit.itsmhd.bean.QueryItem; import com.starit.itsmhd.bean.QueryItemResponse; import com.starit.itsmhd.exception.AppException; /** * @author zqding * @version 1.0 * @date 2010-11-22 * @class_displayName TestCase */ public class TestCase { public static void main(String[] args) { putSheet(); ...... } public static int putSheet() { String[] fileNames = { "d:/111.pdf", "d:/111.rar" }; ApplyItem item = new ApplyItem(); item.setApplyserial("111111111"); item.setSubmitStaffName("wangyongq"); item.setTitle("测试单"); item.setPlace("xxx"); item.setOccurTime(new Date()); item.setOrigin(11); item.setIncidence(12); item.setPriority(12); item.setFinishLimit(new Date()); item.setSysType(10006); item.setContent("xxxx测试单"); item.setFileNum(2); item.setAttName(fileNames); item.setAttachFlag(true); DataHandler[] dataHandler = new DataHandler[item.getFileNum()]; for (int i = 0; i < item.getFileNum(); i++) { File file = new File(item.getAttName()[i]); FileDataSource source = new FileDataSource(file); dataHandler[i] = new DataHandler(source); } ApplyItemResponse response;// = new ApplyItemResponse(); Call call; try { String url = "http://127.0.0.1:7001/axis/services/FwbzService"; Service service = new Service(); call = (Call) service.createCall(); call.setTargetEndpointAddress(url); // 设定服务方法名 call.setOperationName(new QName(url, "putEvent")); QName qna = new QName("http://itsmhd.starit.com/bean", "ApplyItem"); QName qnd = new QName("http://itsmhd.starit.com/bean", "ArrayOf_tns1_DataHandler"); QName returnType = new QName("http://itsmhd.starit.com/bean", "ApplyItemResponse"); QName ae = new QName("http://itsmhd.starit.com/bean", "AppException"); call.registerTypeMapping(ApplyItem.class, qna, new BeanSerializerFactory(ApplyItem.class, qna), new BeanDeserializerFactory(ApplyItem.class, qna)); call.registerTypeMapping(DataHandler.class, qnd, JAFDataHandlerSerializerFactory.class, JAFDataHandlerDeserializerFactory.class); call.registerTypeMapping(ApplyItemResponse.class, returnType, new BeanSerializerFactory(ApplyItemResponse.class,returnType), new BeanDeserializerFactory(ApplyItemResponse.class,returnType)); call.registerTypeMapping(AppException.class, ae, new BeanSerializerFactory(AppException.class,ae), new BeanDeserializerFactory(AppException.class,ae)); // 设置参数占位符 call.addParameter("arg1", qna, ParameterMode.IN); call.addParameter("arg2", qnd, ParameterMode.IN); call.setReturnType(returnType); // 设置Webservice超时时间 call.setTimeout(new Integer(10000)); // 调用服务并获取服务调用返回信息 response = (ApplyItemResponse) call.invoke(new Object[] { item, dataHandler }); System.out.println("调用结果:response>>>>>>>>>>>>>>>>>>>>>>>>" + response.getMsg()); } catch (ServiceException e) { e.printStackTrace(); System.out.println("service method exception!"); // 调用Webservice异常时,设置标识值,直接返回 return 2; } catch (AppException e) { e.printStackTrace(); return 2; } catch (Exception e) { System.out.println("remote mothod exception!"); e.printStackTrace(); return 2; } return 1; }
.......
}
相关推荐
2025最新电工技师考试题及答案.docx
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat
骨科康复医疗领域知识图谱建立及其分析.pdf
基于交易能量框架的多微电网最优能源管理:配网协同优化以降低运营成本, 关键词:Transactive energy,微电网 配网 参考文档:《Optimal Energy Management for Multi-Microgrid Under a Transactive Energy Framework With Distributionally Robust Optimization》2021一区半完美复现 仿真平台:MATLAB YALMIP GUROBI 主要内容:我们制定了一个基于交易能量(TE)框架的上游网络和网络中电网的能源调度的优化问题,以最小化运营成本。 市电网与上游网络之间的能源管理由配电系统运营商(DSO)操作,这不同于传统电力系统中的直接控制信号和固定定价机制。 ,Transactive energy; 微电网; 配网; 能源调度; 运营成本; 配电系统运营商(DSO); 交易能量框架; 优化问题; MATLAB YALMIP GUROBI。,Transactive Energy驱动的微电网配网能源调度优化策略研究
西门子1200 PLC与欧姆龙E5cc温控器双重控制通讯程序:远程触摸屏与本地温控器485通讯实现轮询式控制及温度监测,西门子1200与欧姆龙E5cc温控器 远程+本地双重控制通讯程序 功能:实现西门子1200 PLC对欧姆龙E5cc温控器进行485通讯控制,在触摸屏上设定温度,读取温度 ,也可以在温控器本体设定温度。 达到双重控制 程序采用轮询方式,有通讯故障后再恢复功能,也可以后续根据需要在此基础上扩充台数 器件:西门子1200 1214DC DC DC.昆仑通态TPC7062Ti ,西门子KTP700 Basic PN,欧姆龙E5cc温控器。 说明:是程序,带详细注释程序,触摸屏程序,PLC设置和温控器设置,接线说明书。 ,关键词:西门子1200;欧姆龙E5cc温控器;485通讯控制;远程+本地双重控制;轮询方式;通讯故障恢复;昆仑通态TPC7062Ti;西门子KTP700 Basic PN;详细注释程序;触摸屏程序;PLC设置;温控器设置;接线说明书。,西门子1200与欧姆龙E5cc温控器通讯控制程序:远程本地双重控制及详解
2025专业技术人员继续教育公需课题库(附含答案).pptx
2025医院手术室应急预案考核试题及答案.docx
2025数字化技术基础试题(含答案).docx
2025最新电信5G协优资格认证考试题库附含答案.docx
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat
COMSOL裂隙动水注浆扩散模拟:研究水泥-水玻璃与高聚物改性水泥浆液扩散规律及黏度时变特性影响分析,COMSOL裂隙动水注浆扩散数值模拟 针对动水注浆中常用的2种速凝浆液,水泥–水玻璃浆液与高聚物改性水泥浆液,考虑浆液黏度时变特性,应用有限元计算软件COMSOL Multiphysics建立动水条件下裂隙注浆扩散的数值模型,研究动水条件下裂隙注浆扩散规律并分析不同黏度时变特性、初始动水流速与注浆速率对注浆扩散过程的影响。 ,关键词:COMSOL Multiphysics;裂隙动水注浆;扩散数值模拟;速凝浆液;水泥-水玻璃浆液;高聚物改性水泥浆液;浆液黏度时变特性;有限元计算;注浆扩散规律;动水流速;注浆速率。,COMSOL模拟动水注浆扩散规律及影响因素研究
Simulink模型下的纯电动汽车、混合动力汽车及染料电池电动汽车的制动优先与能量管理功能解析,纯电动汽车Simulink模型;混合动力汽车Simulink模型;染料电池电动汽车Simulink模型。 纯电动汽车模型: 制动优先;充电禁止车辆驱动;驱动控制;再生能量回收;紧急停机功能; ,纯电动汽车模型:制动优先;充电禁止驱动;驱动控制;再生能量回收;紧急制动系统; 混合动力汽车模型:燃料类型切换;动力输出控制;能量回收策略;模式切换;效率优化; 染料电池电动汽车模型:染料电池性能;能量转换效率;充电过程模拟;电池管理系统;安全保护措施。,Simulink模型研究:多种能源驱动车辆动力系统控制优化
2025最新初级保育员理论知识考试题库及答案.doc
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat
2025最新计算机网络技术考试题及答案.docx
西门子PLC与触摸屏的多功能检测设备编程案例:上下双工位四轴步进控制,双相机通讯与Modbus RTU交互,集成多重画面与配方功能,西门子1214PLC博图程序例程,版本V16及以上,加KTP700Basic PN触摸屏画面,双相机四轴多工位检测设备案例。 程序主要有: 上下双工位4轴脉冲控制步进电机; 与上位机双相机的TCP IP通讯; 有一台第三设备的modbus rtu通讯; 触摸屏包含多重画面,配方功能,密码 项目编程,现场调试电柜集成 ,核心关键词: 西门子1214PLC; 博图程序例程; 版本V16及以上; KTP700Basic PN触摸屏; 双相机四轴多工位检测设备; 上下双工位4轴脉冲控制步进电机; TCP IP通讯; 第三设备的modbus rtu通讯; 触摸屏多重画面; 配方功能; 密码保护; 项目编程; 现场调试电柜集成。,西门子PLC双相机四轴检测系统:博图程序例程与KTP700触摸屏集成应用
基于STM32bms与Battery Simulink的电池管理仿真系统及电池平衡控制策略模型,STM32bms动力电池管理系统仿真 Battery Simulink电池平衡控制策略模型 动力电池管理系统仿真 BMS + Battery Simulink 控制策略模型, 动力电池物理模型,需求说明文档。 BMS算法模型包含状态切模型、SOC估计模型(提供算法说明文档)、电池平衡模型、功率限制模型等,动力电池物理模型包含两种结构的电池模型。 通过上述模型可以实现动力电池系统的闭环仿真测试,亦可根据自身需求进行算法的更新并进行测试验证。 ,核心关键词: STM32bms; 动力电池管理系统仿真; Battery Simulink; 电池平衡控制策略模型; BMS算法模型; 状态切换模型; SOC估计模型; 电池平衡模型; 功率限制模型; 动力电池物理模型; 需求说明文档; 闭环仿真测试。,STM32bms系统下动力电池管理系统仿真与控制策略研究