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

数据库和glassfish服务器运行正常。我可以运行DataAppClient而没有任何问题。我也可以通过单击现有的html文件,通过IE浏览器运行其他示例。

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
...

最佳答案

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

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



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

JavaFX deployment documentation中提供了有关签名应用程序和JavaFX的更多详细信息。

特别是,DataApp客户端使用fxml。必须对部署在沙盒环境(例如浏览器或Webstart)中的应用程序进行签名,以使其能够工作(至少在JavaFX 2.2中,并且可能在以后的JavaFX版本中)。有关更多信息,请参见问题跟踪器参考RT-23622 JavaFX applications with FXML fail while running on browser

关于java - JavaFX-samples-2.2.21 DataApp的DataAppServer启动问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17030962/

10-14 12:25