退出应用程序时不会卸载类(Web启动)?

时间:2014-01-18 13:19:04

标签: java multithreading classloader java-web-start

我正在使用url http:\ [ip of server]:[port]启动的客户端 - 服务器应用程序(Web启动)。它在浏览器中加载index.html,主应用程序在另一个窗口中弹出,这里我们有几个选项来查看/执行状态/操作。

最近我遇到了一个服务器状态显示为未知的问题,这是默认的,但在加载应用程序后应该加载它。我找到了它的原因,显示服务器状态的方法是在启动时执行的,所以我使用while循环来检查应用程序是否加载,然后我执行了该方法。它奏效了。

但是如果我退出弹出窗口(主应用程序)并刷新主浏览器窗口中的URL,应用程序会成功弹出但没有服务器状态,服务器状态没有任何内容。这让我觉得在切换弹出窗口时,serverStatus类没有卸载。

我试图了解类加载器,但没有得到任何东西,也无法在应用程序源代码中找到有关加载/卸载类的任何内容。

有人可以指导或参考可以解决我问题的学习资料。

请原谅我,如果我不清楚询问确切的问题,请询问是否需要更多信息。在此先感谢

更改的代码在这里:

@Override
    public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws IOException, ServletException
    {
 PrintWriter out = new PrintWriter(
                new OutputStreamWriter(response.getOutputStream(), "UTF-8"));

synchronized(this){
while(!notCompleted){
Thraed.sleep(100)}
out.println("<LABEL><B>" + discoveryStatusLabel_ +
                        "&nbsp;:</B></LABEL>&nbsp;<SPAN ID='DiscoveryStatus'>" +
                        discoveryStatus_ + "</SPAN>");}
}

我添加了while循环,而notCompleted是变量来检查应用程序是否完全加载。 注意:doGet()synchronized block除此之外还有更多代码。

0 个答案:

没有答案