严重: All threads (150) are currently busy, waiting. Increase maxThreads (150) or check the servlet status
在网上查询了一下关于这个问题的描述,好像是和连接池有关,可是我写的应用里根本没有关于数据库的东西啊~或许是我Hessian的应用写的不正确也说不定,这里把我写的代码附上,望有这方面经验的达人能够不吝赐教,只要别看完后骂我就行,我这里先谢谢了。
在附上代码之前交代一下我应用的包层次关系:
很简单,src目录下有service包,Hessian的server端文件和client端文件都放在下面。
以下是我写的测试代码:
接口文件:
文件名:Hello.java
代码:
package service;
public interface Hello {
public String seeHello();
}
接口的实现:
文件名:HelloImpl.java
代码:
package service;
import com.caucho.hessian.server.HessianServlet;
public class HelloImpl extends HessianServlet implements Hello {
private String helloStr = "Hello World";
public void setHelloStr(String str){
helloStr = str;
}
public String seeHello() {
return helloStr;
}
}
客户端文件:
网上例子的client端文件多数都是使用一个带Main方法的类来实现的,我把其中主要的代码提取出来放到一个Servlet里了。(也不知道这样行不行)
文件名:HelloClient.java
代码:
package service;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.MalformedURLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.caucho.hessian.client.HessianProxyFactory;
public class HelloClient extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String url = "http://localhost/HessianPro/hello";
HessianProxyFactory factory = new HessianProxyFactory();
Hello hello = (Hello)factory.create(Hello.class, url);
System.out.println("Hello:" + hello.seeHello());
request.setAttribute("success", "Hello World");
request.getRequestDispatcher("/hessian.jsp").forward(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String url = "http://localhost/HessianPro/hello";
HessianProxyFactory factory = new HessianProxyFactory();
Hello hello = (Hello)factory.create(Hello.class, url);
System.out.println("Hello:" + hello.seeHello());
request.setAttribute("success", "Hello World");
request.getRequestDispatcher("/hessian.jsp").forward(request, response);
}
}
web.xml文件配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>service.HelloClient</servlet-class>
<init-param>
<param-name>home-class</param-name>
<param-value>service.HelloImpl</param-value>
</init-param>
<init-param>
<param-name>home-api</param-name>
<param-value>service.Hello</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
以上就是我测试的所有代码了(说实话,刚接触Hessian,也不知道是不是这样就可以了,总之网上例子大部分都是这样的),以上的代码部署到Tomcat上运行,当我的请求提交到hello的servlet上的时候,Tomcat就长时间没有响应,并报告文章开始的信息。
小弟恳请哪位达人能够给于解释,这样的问题是我代码的问题?还是Tomcat的问题?如果是我代码的问题,那我的代码应该怎样写才是正确的?望达人赐教,不胜感激。
1 个解决方案
#1
补充说明:
以上代码工作环境:
开发工具Eclipse3.2+MyEclipse5.1
服务器:Tomcat5.5.20
操作系统:Windows XP SP2
P.S.:我只想知道基础的Hessian是怎样使用的,有关于Spring包装下的解决方案,就不要提出了。谢谢。
以上代码工作环境:
开发工具Eclipse3.2+MyEclipse5.1
服务器:Tomcat5.5.20
操作系统:Windows XP SP2
P.S.:我只想知道基础的Hessian是怎样使用的,有关于Spring包装下的解决方案,就不要提出了。谢谢。
#2
#1
补充说明:
以上代码工作环境:
开发工具Eclipse3.2+MyEclipse5.1
服务器:Tomcat5.5.20
操作系统:Windows XP SP2
P.S.:我只想知道基础的Hessian是怎样使用的,有关于Spring包装下的解决方案,就不要提出了。谢谢。
以上代码工作环境:
开发工具Eclipse3.2+MyEclipse5.1
服务器:Tomcat5.5.20
操作系统:Windows XP SP2
P.S.:我只想知道基础的Hessian是怎样使用的,有关于Spring包装下的解决方案,就不要提出了。谢谢。