先上controller配置 <!-- Controller方法调用规则定义 -->
<bean id="paraMethodResolver"
class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
<property name="paramName" value="action"/>
<property name="defaultMethodName" value="list"/>
</bean> <!-- 页面View层基本信息设定 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView"/>
<!--<property name="prefix" value="/myjsp/"/>-->
<property name="suffix" value=".jsp"/>
</bean><!-- servlet映射列表,所有控制层Controller的servlet在这里定义 -->
<bean id="wxUrlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="wx.do">wxController</prop>
</props>
</property>
</bean>
配置好以后,使用HttpRequester发送post请求
http://localhost:8080/wx.do?action=findGifts&aaa=111&bbb=222
发送请求后,进入wxController中的findGifts方法,同时传递参数aaa,bbb
问题来了,前几次请求,能够顺利进入controller的findGifts方法,多次请求后,却始终无法进入了,系统所有controller报废,没有一个能进入的其中wxController extends MultiActionController
方法gifts返回是这样写的PrintWriter out = null;
try{
response.setCharacterEncoding("UTF-8");
response.setContentType("text/plain");
out = response.getWriter();
out.print(GsonUtil.mapToJson(map));
out.flush();
out.close();
} catch (Exception e){
e.printStackTrace();
} finally{
if (out != null) {
out.close();
out = null;
}
}
研究一大晚上,始终不得其解,跟踪源码,发现在spring的MultiActionController中执行invokeNamedMethod方法时,卡在了
Object returnValue = method.invoke(this.delegate, params.toArray(new Object[params.size()]));
不报异常,不超时,什么错误都没有,到了这里就没有结果了。整个程序就停止了。tomcat没有挂掉,访问登录页面也可以,但是一旦调用接口,变又卡在这里。请教各位大神,此种问题应该从哪一方面下手去解决另外,非数据库问题,数据库是正常的。 tomcat重启后一切正常,接口接收处理几次请求后,问题马上出现。已经处理一天了。。求指导
<bean id="paraMethodResolver"
class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
<property name="paramName" value="action"/>
<property name="defaultMethodName" value="list"/>
</bean> <!-- 页面View层基本信息设定 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView"/>
<!--<property name="prefix" value="/myjsp/"/>-->
<property name="suffix" value=".jsp"/>
</bean><!-- servlet映射列表,所有控制层Controller的servlet在这里定义 -->
<bean id="wxUrlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="wx.do">wxController</prop>
</props>
</property>
</bean>
配置好以后,使用HttpRequester发送post请求
http://localhost:8080/wx.do?action=findGifts&aaa=111&bbb=222
发送请求后,进入wxController中的findGifts方法,同时传递参数aaa,bbb
问题来了,前几次请求,能够顺利进入controller的findGifts方法,多次请求后,却始终无法进入了,系统所有controller报废,没有一个能进入的其中wxController extends MultiActionController
方法gifts返回是这样写的PrintWriter out = null;
try{
response.setCharacterEncoding("UTF-8");
response.setContentType("text/plain");
out = response.getWriter();
out.print(GsonUtil.mapToJson(map));
out.flush();
out.close();
} catch (Exception e){
e.printStackTrace();
} finally{
if (out != null) {
out.close();
out = null;
}
}
研究一大晚上,始终不得其解,跟踪源码,发现在spring的MultiActionController中执行invokeNamedMethod方法时,卡在了
Object returnValue = method.invoke(this.delegate, params.toArray(new Object[params.size()]));
不报异常,不超时,什么错误都没有,到了这里就没有结果了。整个程序就停止了。tomcat没有挂掉,访问登录页面也可以,但是一旦调用接口,变又卡在这里。请教各位大神,此种问题应该从哪一方面下手去解决另外,非数据库问题,数据库是正常的。 tomcat重启后一切正常,接口接收处理几次请求后,问题马上出现。已经处理一天了。。求指导
解决方案 »
- 【编码】处理页面乱码问题。。。
- JSP乱码问题
- 初学JSP!~~~~~~~~~~~~~~~~~~~~~~~~~~
- 问一个HIBERNATE分页的问题,和SYBASE数据库有关系。
- 怎样用代码来初始化JSF的managed bean。
- MYSQL多表查询问题
- url传值问题?怎样把值传到下一页面,但是本页面不变???急 急急急急急急
- 两个整数相除,得百分数,请问怎样弄?
- weblogic7+jb7如何调试jsp页面?送分!!!!!!!!!!!
- 再问哪儿有resin插件(用于IIS)下载?
- java利用openoffice将excel转为pdf,怎样将excel的所有列都在pdf的一页里显示.求指教。
- 如何把mib文件读取解析出的信息进行存储,而后调用读取出的oid来get服务器信息
----------------------------
多访问几次,等卡住了 赶紧 thread dump 抓取和分析 jvm thread dump 在网上搜索一下 有很多例子
如果在IED中,可以直接在debug视图中看各线程的状态;
如果在运营环境中,需要用到命令
jstack -F <pid>
jstack 是jdk的一个工具,在jdk的bin目录下,如果运营环境中没有jdk,可以复制上去,直接可用。建议保证jdk和jre版本一致(至少大版本一致)用如果大多线程都处于block状态,说明有问题,可能是有死锁,可能是JVM内存不够导致频繁的内存回收。如果有死锁,通过上面的jstack可以检测出来,最后会输出一行 “found 1 deadlock”
检测内存是否频道回收
同样使用jdk的工具
jstat -gc <pid> pid表示java进程编号
其中输出几列数据,其中如果YGCT(Young GC times)、FGCT(Full GC times),正常YGCT远远大于FGCT,如果两个数字特别大,且FGCT增长速度较快(10秒一次都算很快),那么说明内存分配或利用有问题。可以参照另外几组数据来分析。
以上,供参考
如果是在调试环境中,用eclipse打断点
jstat -gc `pgrep java` 3000 看一下内存回收情况,如果内存回收慢 也回收资源很少用jmap -dump:format=b,file=heap.bin <pid>看看内存增长在了哪里