您的位置:首页 > 技术开发 > 正文


    关于树型目录的框架

    严格说来写一个树型目录的架构是一项非常复杂的工作,树型目录的实现有两种方式:全部画出所有的树节点和当触发时实时画出下一层节点。前一种的实现相对简单一些,但是当节点数量超过1000之后,采用递归算法会导致页面首次显示时出奇的缓慢,我曾经做过对js脚本和相应的存储过程做过调优,但是效果还是不甚理想;触发时才实时画出下一层节点技术难度很高,还好公司有现成的框架,光Java类和接口就有10几个,完全阅读并理解显然是不现实的,只能通过摸索把先有的业务和原来的接口进行不断的测试,花费了一天时间才得以完成. 

    关于Web Service
    Web Service是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。总体来讲它能够突破平台限制,穿越企业防火墙,通过开放的接口和认证实现信息的共享和传递.

    WSDL
    对于商业用户来说,要找到一个自己需要使用的服务,他必须知道如何来调用。 WSDL (Web Services Description Language) 规范是一个描述接口,语义以及Web服务为了响应请求需要经常处理的工作的XML文档。这将使简单地服务方便,快速地被描述和记录。
    对于.Net的WSDL调用来说是很简单的,例如一个简单的VBS脚本
Dim obj set obj=createobject("MSSOAP.SoapClient30") obj.MSSoapInit "QueryService.wsdl" MsgBox obj.getPhoneByName("0578", "XXX单位",10)
    但是对于Java而言调用一个.Net产生的WSDL简直被折磨了半死,Q公司又不肯提供技术支持,不断的进行调试跟踪最后才发现是一个setEncodingStyle参数设置的问题.
public class CpSpInterface { protected Log logger = LogFactory.getLog(this.getClass()); private String endpoint = "http://192.168.1.2/Service1.asmx"; private String nameSpace = "GetSPInfo"; public String callGetIndexByType(String strTypeID, String strParaList,String strResultType) { String ret = "<?xml version=\"1.0\" encoding=\"gb2312\" ?><root status=\"1\" lines=\"0\"></root>"; try { String methodName = "GetIndexByType"; Service service = new Service(); Call call = (Call) service.createCall(); call.setTimeout(new Integer(120000)); call.setTargetEndpointAddress(new java.net.URL(endpoint)); call.setUseSOAPAction(true); call.setSOAPActionURI(nameSpace + "/GetIndexByType"); call.setOperationStyle(org.apache.axis.constants.Style.WRAPPED); call.setEncodingStyle("literal"); call.setOperationName(new QName(nameSpace, methodName)); StringHolder holder = new StringHolder("0"); // Set Call Parameter call.addParameter(new QName(nameSpace, "strTypeID"), Constants.XSD_STRING, ParameterMode.IN); …………略 //Set back Parameter call.setReturnType(Constants.XSD_STRING); ret = (String) call.invoke(new Object[] { strTypeID, strParaList, strResultType }); ret = ret.replaceAll("utf-8","gb2312"); logger.debug("ret = "+ret); logger.info("return errorcode = " + holder.value); } catch (Exception e) { logger.error("Error " + e); } return ret; } }
相关关键词 项目经历
1 2 3 4
【内容导航】
第1页: 项目的起因 第2页: 关于Spring框架的配置
第3页: 关于树型目录的框架 第4页: 关于Ajax
©版权所有。未经许可,不得转载。
[责任编辑:赵恒]