2011-04-05 49 views
0

我们正在开发基于web的glassfish V3应用程序。 我们有2个应用程序作为客户端(GWT + Servlets)和服务(Spring + Hibernate + Restful Webservices)内部连接器错误(1002) - 调用线程在等待响应解除阻塞时超时。

GWT调用servlet和servlet连接到服务层。一个人获得一个请求运行良好,但是当GUI开始获取更多请求或更多人登录并从服务器获取数据时,Servlet开始等待服务连接并最终在下面输出错误消息。

“内部连​​接器错误(1002) - 该 调用线程超时在等待 的回应进行解锁。”

在这种情况下,我们应该放弃在客户端和服务之间使用宁静的web服务吗? 或者有什么办法可以解决这个问题吗? 或者EJB可能是更有效的开发这种架构的方式?

在此先感谢。

回答

0

我们注意到当客户层(Servlets)和服务层在同一台计算机(同一台服务器,域)上时发生此问题。

连接到Web服务时发生循环。

所以解决办法很简单。 我们已经创建了2个域,将客户端部署到第一个域,并将服务部署到第二个域。所以没有更多的等待队列和以上的错误消失了。

我希望它可以帮助其他人。

0

你注意始终包括以下内容,当您使用ClientResource的Restlet类在您的客户端代码,你不会得到这样那样的错误,只要:

ClientResource cr = new ClientResource(uri); 
//please substitute the line below with any other kind of request you need to forward 
Representation response = cr.put(json); 

if (response != null) { 
    try { 
     <something> 
    }finally { 
    response.exhaust(); 
    response.release(); 
     cr.release(); 
    } 

此外,在服务器端,您可能需要检查是否没有建立连接超时而创建的外部资源没有进一步的HTTP连接(否则会导致服务器花费更长的时间进行回复)