我下载了最新的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/