1

我下载了最新的 JDK 和示例。我正在尝试运行上面的 JavaFX 示例程序,但它的 DataAppServer 总是给我错误。

数据库和 glassfish 服务器运行正常。我可以毫无问题地运行 DataAppClient。我还可以通过 IE 浏览器通过单击现有的 html 文件来运行其他示例。

DataAppServer 与 DataAppClient 相同,但客户端作为 Web 服务运行并在 IE 浏览器中启动。

我正在使用 Windows 7 64 位。我正在使用最新的 NetBeans IDE。我没有改变样品上的任何东西。我检查了我的机器 Java 设置,Java 已启用。

这是我运行 DataAppServer 时的第一个警告:

在此处输入图像描述

然后,我检查复选框并单击运行按钮。出现以下页面:

在此处输入图像描述

错误的详细信息是这样的:

在此处输入图像描述

我应该做些什么让它对我有用?

编辑:

我注意到 GlassFish Server 上出现了一些错误,这是最新的 v3.1.2:

SEVERE: Exception while visiting com/sun/gjc/spi/base/datastructure/Cache.class of size 450
java.lang.NullPointerException
    at org.glassfish.hk2.classmodel.reflect.impl.TypesImpl.getType(TypesImpl.java:78)
    at org.glassfish.hk2.classmodel.reflect.impl.ModelClassVisitor.visit(ModelClassVisitor.java:119)
    at org.objectweb.asm.ClassReader.accept(Unknown Source)
    at org.objectweb.asm.ClassReader.accept(Unknown Source)
    at org.glassfish.hk2.classmodel.reflect.Parser$5.on(Parser.java:363)
    at org.glassfish.hk2.classmodel.reflect.util.JarArchive.onSelectedEntries(JarArchive.java:125)
    at org.glassfish.hk2.classmodel.reflect.util.DirectoryArchive.parse(DirectoryArchive.java:111)
    at org.glassfish.hk2.classmodel.reflect.util.DirectoryArchive.onSelectedEntries(DirectoryArchive.java:92)
    at org.glassfish.hk2.classmodel.reflect.Parser.doJob(Parser.java:348)
    at org.glassfish.hk2.classmodel.reflect.Parser.access$300(Parser.java:70)
    at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:307)
    at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:296)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)

SEVERE: Thu Jun 13 08:56:54 EDT 2013 Thread[main,5,main] java.io.FileNotFoundException: derby.log (Access is denied)

SEVERE: Thu Jun 13 08:56:54 EDT 2013 Thread[main,5,main] Ignored duplicate property derby.module.dataDictionary in jar:file:/C:/Program%20Files/glassfish-3.1.2.2/javadb/lib/derby.jar!/org/apache/derby/modules.properties

SEVERE: Thu Jun 13 08:56:54 EDT 2013 Thread[main,5,main] Ignored duplicate property derby.module.lockManagerJ1 in jar:file:/C:/Program%20Files/glassfish-3.1.2.2/javadb/lib/derby.jar!/org/apache/derby/modules.properties

SEVERE: Thu Jun 13 08:56:54 EDT 2013 Thread[main,5,main] Ignored duplicate property derby.env.classes.dvfJ2 in jar:file:/C:/Program%20Files/glassfish-3.1.2.2/javadb/lib/derby.jar!/org/apache/derby/modules.properties
...
4

1 回答 1

0

您需要对DataApp 客户端应用程序进行签名,以便为应用程序提供运行所需的权限。

要在 NetBeans 中执行签名,请打开 DataApp 客户端项目,右键单击该项目并选择“属性”,单击“请求不受限制的访问(启用签名)”复选框。

符号

重建您的 DataApp 客户端项目并尝试运行它。当您从浏览器或 webstart 部署运行应用程序时,您仍然会收到警告(这将是一个不同的警告,表明发布者使用了自签名证书),但是应用程序现在应该具有运行所需的所有权限点击警告。

JavaFX 部署文档中提供了有关签署应用程序和 JavaFX 的更多详细信息。

特别是,DataApp 客户端使用 fxml。部署在沙盒环境(例如浏览器或 webstart)中的应用程序必须经过签名才能使其工作(至少在 JavaFX 2.2 中,并且可能在以后的 JavaFX 版本中也是如此)。请参阅问题跟踪器参考RT-23622 JavaFX 应用程序在浏览器上运行时失败,以了解更多信息。

于 2013-06-10T22:53:52.033 回答