寻觅dwr调用方法缓慢的问题

问题描述

前几天我遇到了一个问题,让我百思不得其解。我们项目需要用dwr开发,以前也用过,可是这次需要和Spring整合,很快一个下拉列表联动就做好了,可是进入Tomcat中运行相当慢,我在网上差了很多资料,但是都是一场空,下来看看我这个项目第一次写的代码。public class Deptement {private static SystemQuery systemQuery = null;private static TrainQuery trainQuery = null; Company company = new Company(); Department department = new Department();public static void find(){}//调用公司方法public Map ClassList() { //得到spring上下文ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext(new String[] { "applicationContext-hibernate.xml" });// 得到beantrainQuery = (TrainQuery)appContext.getBean("trainQueryTarget");List companylist=new ArrayList();Map reply = new HashMap(); //调用bean方法companylist=trainQuery.queryCompany();System.out.println("+++++++++++"+companylist.size());if(companylist.size()>0){for(int i=0;i<companylist.size();i++){ company="(Company)" companylist.get(i);="" system.out.println("______"+company.getid().getcompanyid()+"______"+company.getid().getcompanyname());="" 循环将公司id与公司名称放入map="" reply.put(company.getid().getcompanyid(),company.getid().getcompanyname());="" }="" }="" system.out.println(reply.size());="" 返回map="" return="" reply;="" }="" 调用部门方法="" public="" map="" userlist(string="" classid){="" 得到spring上下文="" classpathxmlapplicationcontext="" appcontext="new" classpathxmlapplicationcontext(="" new="" string[]="" {="" "applicationcontext-hibernate.xml"="" });="" 得到bean="" systemquery="(SystemQuery)appContext.getBean(&quot;systemQueryTarget&quot;);" list="" deptementlist="new" arraylist();="" map="" reply="new" hashmap();="" 调用bean方法="" deptementlist="systemQuery.searchDepartmentList(Integer.parseInt(CLASSID));" system.out.println("+++++++++++"+deptementlist.size());="" if(deptementlist.size()="">0){for(int i=0;i<deptementlist.size();i++){ department="(Department)" deptementlist.get(i);="" system.out.println("______"+department.getid().getcompanyid()+"______"+department.getid().getdepartmentname());="" 循环将部门id和名称放入map="" reply.put(department.getid().getdepartmentid(),department.getid().getdepartmentname());="" }="" }="" system.out.println(reply.size());="" 返回map="" return="" reply;="" }="" }="" <="" pre="">  这是后台方法,现在看看dwr文件<dwr> <allow> <create creator="new" javascript="Deptement"> </create> <create creator="new" javascript="People"> </create> </allow> </dwr>  web.xml就不用看了,大家应该比我更熟悉。 前台页面我也不写了,这次重点不是在展现,是解决为什么调用慢。     当这个功能完成后,我兴高采烈的将它部署到Tomcat下面,心想终于完了,开始运行,当我进入这个联动页面时,发现很久都没有响应,真不知道是怎么了,看看后台没有抛异常, 正郁闷的时候,突然页面出现了下拉列表的内容,大家可以想象得到这有多么长的时间才响应。这再交给客户,客户非跳起来不可,还什么ajax框架,比jsp响应还慢。直到下班我都没有解决,效率真低,第二天我又重新寻找问题,其实高手们一看就可以知道我写的方法有问题,大家可以看到,这虽然是与spring连用,但是并没有与spring的bean配合,这是一个问题,最大的问题是每次调用bean方法是都得到一次spring的上下文,这显然给服务器无形的压力。终于找到问题了。于是我把方法写到service层,重新配置dwr文件<dwr> <allow> <create creator="spring" javascript="Deptement"> </create> <create creator="spring" javascript="Company"> </create> <create creator="new" javascript="People"> </create> </allow> </dwr>  再次运行,问题解决了。不知道你们遇见过这个问题吗?我要申请专利啦。呵呵!问题补充放到src下最好

解决方案

applicationContext-hibernate.xml请问一下你的这个文件在哪位置放的.

时间: 2024-10-11 00:38:36

寻觅dwr调用方法缓慢的问题的相关文章

DWR调用远程方法的错误和异常处理

记得以前通常我们在调用 DWR 的远程方法是这样写 Remote.method(params,function(data){ //服务端执行后客户端的逻辑,如 alert("服务端执行后返回的数据:"+data); }); Remote.method(params,function(data){ //服务端执行后客户端的逻辑,如 alert("服务端执行后返回的数据:"+data); }); 第一个至倒数第二个参数为客户端传向服务端的数据,最后一个参数直接就是一个回

js-利用dwr调用后台程序 ,页面报错

问题描述 利用dwr调用后台程序 ,页面报错 前台使用ext插件,调用后台的方法就是如图所示的问题,对照别的功能也看了,步骤和需要的参数都配置了,实在很纳闷. 最后补充一下,XXXXX is not a function 这句话以为着什么,和那个 没定义是什么区别 解决方案 XXXXX is not a function 就是说你前面需要有window.onload的地方没有,它不是没有定义函数,只是不被认为是函数

DWR调用类函数的路径问题

问题描述 如题,我做了个在JSP页面使用DWR方式调用java类函数叫Fna.在这个类里面有个地方要取项目根目录下的一个配置文件如config.xml(放在项目根目录下的,因为使用Filef=newFile(absolutePath+fileName);方式取,很多文章建议文件放在根目录).在类之间调用Fna一切正常,可以正常使用.调试取到当前根路径即为项目所在根路径如:D:/tool/WebAPP/.但是当我在jsp通过DWR方式调用同一个函数Fna,报错了,去调试发现相同的代码,取到的当前路

select-link能不能直接调用方法?还是只能写表达式?

问题描述 link能不能直接调用方法?还是只能写表达式? link能不能直接调用方法?还是只能写表达式? int[] array = { 1, 2, 3, 4, 5, 6, 7, 8 }; var query = from x in array where Predicate select x; foreach (int item in query) Console.WriteLine(item); bool Predicate(int n) { if (n % 2 == 0) return t

jax_ws 客户端远程调用方法时必须使用wsimport命令生成接口代码

问题描述 jax_ws 客户端远程调用方法时必须使用wsimport命令生成接口代码 jax_ws 客户端远程调用方法时,不生成服务端的代码如何实现?

objective c-在Xcode4中调用方法没用回应

问题描述 在Xcode4中调用方法没用回应 如题,要调用的方法是导入工程中的外来文件,但是工程编译成功了,文件方法调用失败.而且也没有错误提示什么的. 问题描述: 1.下载了 Flickr API(4个文件) 到Xcode文件管理器中,指定赋值和链接到我工程中的4个文件. * Flickr.h * Flickr.m * FlickrPhoto.h * FlickrPhoto.m 2.在主视图控制器中,最先导入了外来文件: #import "Flickr.h" #import "

HTML在线编辑器的调用方法和使用方法详解

详解|在线 HTML在线编辑器不需要懂得使用Dreamweaver,会用Word就会使用此编辑器,在文章系统或者是新闻系统需要文字编辑的web程序中非常实用. 但是如何将html编辑器嵌入到web页中和怎么取得里面的数据呢?! 首先我们假定我们所要调用得HTML在线编辑器放在一个单独得页面中,文件名是gledit.htm. HTML在线编辑器有两种基本调用方法: 一.使用object调用: 1.怎么在web页中嵌入html编辑器: 我们在需要嵌入得位置加入以下html代码: <object id

实现vbscript和javascript互相调用方法

javascript|vbscript    ASP具备管理不同语言脚本程序的能力,能够自动调用合适的脚本引擎以解释脚本代码和执行内置函数.ASP开发环境提供了两种脚本引擎,即VBScript(缺省)和JScript.不过,开发者并没有被限制于只能使用这两种语言,只要能够提供合适的ActiveX脚本引擎就能使用任何脚本语言.    脚本语言的选择往往基于许多不同原因:它可能是开发者最为熟悉的语言,可能是对给定工程来说能够提供最多特色支持的,也有可能是最具效率的.不同的环境和要求使得我们在选择脚本

php异步调用方法

php 异步调用方法 客户端与服务器端是通过HTTP协议进行连接通讯,客户端发起请求,服务器端接收到请求后执行处理,并返回处理结果. 有时服务器需要执行很耗时的操作,这个操作的结果并不需要返回给客户端.但因为php是同步执行的,所以客户端需要等待服务处理完才可以进行下一步. 因此对于耗时的操作适合异步执行,服务器接收到请求后,处理完客户端需要的数据就返回,再异步在服务器执行耗时的操作. 1.使用Ajax 与 img 标记 原理,服务器返回的html中插入Ajax 代码或 img 标记,img的s