最终目标是使用Glassfish 4中的Java webstart提供应用程序客户端下载。
我一直试图让这个工作3天,研究我能找到的每一种方法,无论我尝试什么,webstart都会被阻止。
开始让我发疯,因为使用webstart开发任何东西是不可能的,我能看到的唯一选择是购买本地开发的证书或完全放弃webstart ...
How I added the certifacte to my machine - 证书显示在我的Java控制台中。
以下是我无法工作的简单方案:
package com.cbprogramming;
import javafx.application.Application;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
System.out.println("Test");
}
public static void main(String[] args) {
launch(args);
}
}
然后我使用IntelliJ Idea创建一个包装它的JavaFX应用程序,包括webstart jar文件,JNLP文件和html网页,包括权限的自定义清单字段:沙箱和代码库。
JNLP文件,我也尝试了安全和权限标记,包括所有权限和沙箱。
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0" xmlns:jfx="http://javafx.com" href="WebstartTest.jnlp">
<information>
<title>Webstart Test</title>
<vendor>Testing</vendor>
<description>A Java Webstart testing app</description>
<offline-allowed/>
</information>
<resources>
<jfx:javafx-runtime version="8.0+" href="http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp"/>
</resources>
<resources>
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="WebstartTest.jar" size="1190" download="eager" />
</resources>
<security>
<all-permissions/>
</security>
<applet-desc width="600" height="400" main-class="com.javafx.main.NoJavaFXFallback" name="WebstartTest" >
<param name="requiredFXVersion" value="8.0+"/>
</applet-desc>
<jfx:javafx-desc width="600" height="400" main-class="com.test.Main" name="WebstartTest" />
<update check="background"/>
</jnlp>
清单文件:
Manifest-Version: 1.0
permissions: sandbox
codebase: file:///d:/test/
JavaFX-Version: 8.0
Class-Path:
Created-By: JavaFX Packager
Main-Class: com.test.Main
Name: com/test/Main.class
SHA-256-Digest: 8BK5m/ojirCK/QEx8Oe+9z/L6P8JXin0CMDK4R2mkAI=
我已将jnlp,jar和html文件添加到例外列表中,我已尝试使用file://和file:///,我还尝试将glassfhish URL添加到例外列表,http和https ...
我正在使用Jdk 8.0.31在Win 8.1 pro机器上进行开发。
我读过的每个论坛用户都说这些选项中的任何一个都可以解决他们的问题。我做错了什么?!? 8.0.31坏了吗?或者webstart不值得使用?
答案 0 :(得分:0)
这是我发现的,其他人觉得它很有用。
使用Java 7更新25或更高版本(目前为8.0.31)时,Glassfish 4.1似乎有一个webstart错误。解决方法是使用旧版本的Java。
另外,要在IntelliJ中调试glassfish应用程序客户端:
start "name" cmd /c "<installdir>\glassfish\bin\appclient.bat -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -client <dir>\TEMPSClient.jar"
这使用默认端口等进行远程调试,并在将调试器附加到glassfish客户端容器之前运行应用程序jar。要获取控制台输出,请将stdout和stderr重定向到日志文件,并将日志文件附加到远程调试配置。
我首先尝试使用嵌入式ACC但无法正常工作(从文档复制/粘贴具有甚至不存在的功能......)。如果有人知道使用嵌入式ACC的好教程,那就太棒了。