繁体   English   中英

为什么在刷新的JSP页面上出现多个JADE GUI

[英]Why multiple JADE GUI appear on refreshing JSP page

我想从JSP运行JADE中间件GUI,为此,我创建了一个“动态Web项目”,然后右键单击WebContent文件夹,然后选择New .. Other ..type JsP文件,并给出了名称,例如runJADE.jsp。 现在在runJADE.jsp中添加以下详细信息

<%@ page import="jade.core.*"%>
<% try {
    String [] _args = {"-gui"};
    jade.Boot.main(_args); 
   } catch (Exception ex) {
       out.println(ex);
       ex.printStackTrace();
   }
 %>

<HTML>
<BODY>
JADE is running.
</BODY>
</HTML>

我还在JSP页面中尝试了以下代码:

<%@ page import="jade.core.Profile,jade.core.ProfileImpl,jade.core.Runtime,jade.wrapper.AgentContainer %>
<% try {
        Profile profile = new ProfileImpl();
        profile.setParameter(Profile.GUI, "true");
        AgentContainer mainContainer = Runtime.instance().createMainContainer(profile);
   } catch (Exception ex) {
       out.println(ex);
       ex.printStackTrace();
   }
 %>

<HTML>
<BODY>
JADE is running.
</BODY>
</HTML>

通过启动JADE,该代码可以得到很好的结果,但是刷新页面会导致创建另一个GUI。 我是否缺少一些基本步骤? 以及如何避免这个问题?

您的方法存在严重缺陷。 每次加载JSP时,它都会创建另一个Jade容器。 使用Jade时,通常只希望在一台机器上有一个容器。

更好的方法是在整个应用程序启动时启动容器。 然后,当您想触发Jade GUI时,应仅在Jade容器内启动RMA代理,如以下答案中所述: https : //stackoverflow.com/a/20462656/2047962


现在,让我们退后一步,谈谈您的代码。 我强烈建议您立即停止在JSP中使用scriptlet。 这是一种糟糕的做法,导致设计很差。 如果您不知道其他方法,请阅读“ 如何避免JSP文件中的Java代码? ”。

其次,为什么要混合使用Web应用程序和桌面Swing UI? 当有人在浏览器中访问您的网页时,为什么要打开Swing GUI? 如果要部署该应用程序,您的客户将进入一个页面,显示“ JADE正在运行”,但是他们什么也看不到。 GUI将在服务器而非客户端上打开。 我看不到您为什么要在网络环境中使用此功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM