在菲利克斯OSGI JavaFX中使用自定义的CSS时异常登录(Exception logged w

2019-10-29 08:54发布

我越来越想用我自己的自定义CSS使用JavaFX 2.2(从JDK 7更新11)当异常之下记录到标准错误。 因为CSS是居然发现在我的应用程序使用,因此唯一错误是在日志中的异常,这很有趣。 我还加载了其他资源这样(图片,字体等),并没有记录在这些情况下例外。

我加载像这样的CSS:

val cssResource = getClass.getResource("/com/openaf/browser/gui/resources/openaf.css").toExternalForm
println("CSS Resource:    " + cssResource)
println("")
scene.getStylesheets.add(cssResource)

你可以从它被发现输出看到(我不知道为什么在例外它说* * .bss中,但也许这就是菲利克斯做一些内部包重命名。

没有人知道为什么这个异常被记录和/或如何摆脱它?

CSS Resource:    bundle://21.57:1/com/openaf/browser/gui/resources/openaf.css

java.io.IOException: Resource does not exist: bundle://21.57:1/com/openaf/browser/gui/resources/openaf.bss
java.io.IOException: Resource does not exist: bundle://21.57:1/com/openaf/browser/gui/resources/openaf.bss
at org.apache.felix.framework.URLHandlersBundleURLConnection.<init>(URLHandlersBundleURLConnection.java:136)
at org.apache.felix.framework.URLHandlersBundleStreamHandler.openConnection(URLHandlersBundleStreamHandler.java:64)
at java.net.URL.openConnection(URL.java:971)
at java.net.URL.openStream(URL.java:1037)
at com.sun.javafx.css.Stylesheet.loadBinary(Stylesheet.java:201)
at com.sun.javafx.css.StyleManager.loadStylesheetUnPrivileged(StyleManager.java:572)
at com.sun.javafx.css.StyleManager.loadStylesheet(StyleManager.java:411)
at com.sun.javafx.css.StyleManager.updateStylesheets(StyleManager.java:858)
at javafx.stage.Window.impl_visibleChanging(Window.java:818)
at javafx.stage.Stage.impl_visibleChanging(Stage.java:922)
at javafx.stage.Window$10.invalidated(Window.java:689)
at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:127)
at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:161)
at javafx.stage.Window.setShowing(Window.java:782)
at javafx.stage.Window.show(Window.java:797)
at javafx.stage.Stage.show(Stage.java:229)
at com.openaf.browser.gui.BrowserStageManager.createStage(BrowserStageManager.scala:64)
at com.openaf.browser.gui.BrowserStageManager.start(BrowserStageManager.scala:41)
at com.openaf.browser.gui.BrowserBundleActivator$$anonfun$startUp$2.apply$mcV$sp(BrowserBundleActivator.scala:32)
at com.openaf.browser.gui.utils.BrowserUtils$$anon$1.run(BrowserUtils.scala:48)
at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:173)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:76)

Answer 1:

无论你的CSS文件转换为二进制格式BSS:

http://docs.oracle.com/javafx/2/deployment/packaging.htm#BABCACBD

或者当你运行你的应用程序中使用“-Dbinary.css =假”。

另外请注意,我最近公布的Drombler FX,基于OSGi和Maven(POM一)JavaFX的模块化RCP的初始版本:

http://puces-blog.blogspot.ch/2012/12/drombler-fx-building-modular-javafx.html

http://wiki.drombler.org/GettingStarted

默认情况下它使用Apache菲利克斯也是如此。 也许你觉得它有用。



文章来源: Exception logged when using custom css in JavaFX in Felix OSGI