1

我有一个使用 webstart 的 EJB 3.0 项目,我试图将其作为 WAR 部署到 JBoss AS 7.1.1。我可以很好地访问 html 页面,但是当我单击 webstart 链接时,它会尝试从http://java.sun.com下载 JRE 1.7并弹出以下错误:

"AutoDL?BundleId=68742" on java.sun.com is not a Java installer.

这是我的战争的目录结构:

root of war(dir)
-->GrahamsProjClient-webstart.jnlp
-->GrahamsProjStartAppPage.html
-->app(dir)
    -->GrahamsProjClient.jar(The actual client project)
-->META-INF(dir)
    -->context.xml(blank file)
    -->MANIFEST.MF
-->WEB-INF(dir)
    -->web.xml
    -->classes(dir) contains my compiled servlet
    -->lib(dir)
        -->jboss-servlet-api_3.0_spec-1.0.0.Final.jar
        -->jnlp-servlet.jar

以下是战争中重要文件的链接:

GrahamsProjClient-webstart.jnlp --> http://pastebin.com/zwkm1zz3

<?xml version="1.0" encoding="UTF-8"?>
<jnlp codebase="$$codebase">
 <information>
     <title>Grahams Project</title>
     <vendor>Graham</vendor>
     <description>desc</description>
 </information>
 <resources>
   <j2se version="1.6"/>
   <jar href="GrahamsProjClient.jar"/>
 </resources>
 <application-desc/>
</jnlp>

GrahamsProjStartAppPage.html --> http://pastebin.com/EXu8Z5dZ

web.xml --> http://pastebin.com/KK3fPPY9

GrahamsProjServlet.java --> http://pastebin.com/iC9JDiTL

这可能是什么原因造成的?

4

1 回答 1

0

在摆弄了一段时间后,我遇到了解决方案。在命令GrahamsProjStartAppPage.htmldeployJava.createWebStartLaunchButton()需要有1.6.0+而不是1.6.0. 所以 html 文件现在看起来像这样:

<body>
<!-- ... -->
<script src=
  "http://www.java.com/js/deployJava.js"></script>
<script>
    // using JavaScript to get location of JNLP
    // file relative to HTML page
    var dir = location.href.substring(0,
        location.href.lastIndexOf('/')+1);
    //var url = dir + "GrahamsProjClient-webstart.jnlp";
    var url = "http://127.0.0.1:8080/GrahamsProjClient/GrahamsProjClient-webstart.jnlp"
    deployJava.createWebStartLaunchButton(url, '1.6.0+'); //changed from 1.6.0 to 1.6.0+
</script>
<!-- ... -->
</body>
于 2012-10-09T16:46:36.620 回答