科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道经验分享:我的20天项目经历

经验分享:我的20天项目经历

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

20天的项目经历使我终身难忘,有喜有悲,有付出更有收获,从web service, Tomcat, Eclipse, Ajax,Spring都在这20天的辛勤努力中克服了. 时间转眼过去一年多了,我离开H公司也已经一年多了.

作者:中国IT实验室 来源:中国IT实验室 2007年9月30日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共3页)

 关于树型目录的框架
    严格说来写一个树型目录的架构是一项非常复杂的工作,树型目录的实现有两种方式:全部画出所有的树节点和当触发时实时画出下一层节点。前一种的实现相对简单一些,但是当节点数量超过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; } }

 

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章