通过chrome

时间:2016-01-19 06:55:29

标签: java google-chrome gwt applet jnlp

我有一个基于gwt的应用程序试图通过jnlp文件(jws)启动applet。 这样的事情:How to display java applet inside GWT page?

我没有直接启动applet,而是指定参数jnlp_href使用jnlp文件来启动它。

我的jnlp文件看起来像 -

<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.6+" codebase="." href="jconsole.jnlp">
<information>
  <title>JConsole WebStart</title>
  <description>Launching JCOnsole via web start</description>
  <offline-allowed/>
</information>
<security>
  <all-permissions/>
</security>
<resources>
  <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se" />
  <jar href="launchJConsoleAppletForRose.jar" main="true"/>
  <jar href="common.jar"/>
</resources>
<applet-desc
  name="MyJConsoleApplet"
  main-class="rose.applet.LaunchJConsole"
  width="100%" 
  height="100%">
</applet-desc>

这里的问题是它在IE11和Firefox中启动良好。我启用了调试和显示控制台,当通过jnlp启动applet时,我得到了正确的控制台消息。 但是,它不适用于chrome v 47.0。几秒钟后窗口就消失了。没有日志消息,堆栈跟踪或控制台输出。 任何想法如何调试这个或什么可能是错的?

2 个答案:

答案 0 :(得分:0)

Chrome中不再支持小程序:https://java.com/en/download/faq/chrome.xml

(顺便说一下,在其他浏览器中,鉴于Java有关沙箱漏洞的历史,建议你禁用applet)

答案 1 :(得分:0)

现在已修复。我将我的applet类重写为独立的java应用程序。但是,我需要创建动态jnlp,因为我的主类需要一些运行时参数。我通过我的gwt入门类通过servlet映射将参数传递给jsp。 jsp负责动态生成jnlp文件,如http://justobjects.org/cowcatcher/browse/advjava/slides/java-dev-env/core/deploy/slide.0.20.html中所述,它解决了这个问题。

干杯!