【问题标题】:JBoss AS7 app deployed on a Mac can't find com.apple.laf.AquaLookAndFeel部署在 Mac 上的 JBoss AS7 应用找不到 com.apple.laf.AquaLookAndFeel
【发布时间】:2012-04-26 21:13:44
【问题描述】:

我们正在从旧版本的 JBoss 迁移到 JBoss AS7,并且我们在应用程序的一部分中使用了 JFreeChart:

chart = ChartFactory.createStackedBarChart( "", "", "Data", dataset,
            PlotOrientation.HORIZONTAL, true, false, false );

当我们点击这一行时,我们得到下面的堆栈跟踪,表明无法找到 com.apple.laf.AquaLookAndFeel。我们只在 Mac 上看到这个问题,考虑到 com.apple.laf 包名称,这是有意义的。在 Linux 服务器上运行似乎工作正常。我们需要做些什么来让 Mac 上的 AS7 识别 Apple 的外观类吗?

截至 2012 年 4 月 26 日,我尝试过的所有 Mac 都已全面更新。我还没有找到一个有一些较旧的 JVM。

堆栈跟踪:

15:38:30,125 SEVERE [javax.enterprise.resource.webcontainer.jsf.lifecycle] (http--0.0.0.0-8080-1) JSF1054: (Phase ID: RENDER_RESPONSE 6, View ID: /blah/blah/blah/blahInfo.xhtml) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@3dc264b1]
15:38:30,129 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/mgmt].[Faces Servlet]] (http--0.0.0.0-8080-1) Servlet.service() for servlet Faces Servlet threw exception: java.lang.ClassNotFoundException: com.apple.laf.AquaLookAndFeel from [Module "deployment.blah_war-1001.0-SNAPSHOT.war:main" from Service Module Loader]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
    at java.lang.Class.forName0(Native Method) [classes.jar:1.6.0_31]
    at java.lang.Class.forName(Class.java:247) [classes.jar:1.6.0_31]
    at javax.swing.SwingUtilities.loadSystemClass(SwingUtilities.java:1856) [classes.jar:1.6.0_31]
    at javax.swing.UIManager.setLookAndFeel(UIManager.java:563) [classes.jar:1.6.0_31]
    at javax.swing.UIManager.initializeDefaultLAF(UIManager.java:1329) [classes.jar:1.6.0_31]
    at javax.swing.UIManager.initialize(UIManager.java:1422) [classes.jar:1.6.0_31]
    at javax.swing.UIManager.maybeInitialize(UIManager.java:1410) [classes.jar:1.6.0_31]
    at javax.swing.UIManager.getDefaults(UIManager.java:645) [classes.jar:1.6.0_31]
    at javax.swing.UIManager.getColor(UIManager.java:687) [classes.jar:1.6.0_31]
    at org.jfree.chart.JFreeChart.<clinit>(JFreeChart.java:261) [jfreechart-1.0.13.jar:]
    at org.jfree.chart.ChartFactory.createStackedBarChart(ChartFactory.java:950) [jfreechart-1.0.13.jar:]
    at this.is.our.code.DisplayChart.buildChart(DisplayChart.java:73) [classes:]

现在我们已经能够通过在启动 JBoss 时将默认外观指定为系统属性来解决这个问题:

-Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel

这似乎更像是一种 hack,所以如果有更好的方法,我们愿意尝试。

【问题讨论】:

  • 你检查过战争中是否存在特定的职业吗?根据异常堆栈,它无法从 deployment.blah_war 中找到该类。
  • @thinksteep,我在 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/ui.jar/com/apple/laf 看到它
  • JAVA_HOME 是否指向正确的路径?我也建议在 jboss 社区论坛发帖。
  • @thinksteep,JAVA_HOME 是 /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
  • 你试过Using Headless Mode吗?

标签: java macos jfreechart jboss7.x classnotfoundexception


【解决方案1】:

我不确定如何测试究竟在哪里添加它,但您需要添加 com.apple.laf,com.apple.laf.resources 作为依赖项。在 AS 7 附带的 CLI GUI 中,它在 JAVA_OPTS-Djboss.modules.system.pkgs=com.apple.laf,com.apple.laf.resources 中定义。您可以将其添加到您的standalone.confdomain.conf,具体取决于您运行的模式。

您也可以尝试在部署中将Dependencies: com.apple.laf,com.apple.laf.resources 添加到您的MANIFEST.MF。我不确定这是否可行,但可能值得一试。

【讨论】:

  • 我将以下内容添加到了我们的standalone.conf 并且它可以工作:if [ "``uname``" = "Darwin" ]; then JBOSS_MODULES_SYSTEM_PKGS="$JBOSS_MODULES_SYSTEM_PKGS,com.apple.laf,com.apple.laf.resources" fi
  • 太好了,感谢您告诉我。我认为把它放在那里很有意义。
  • 也适用于wildfly 9.0.0 final。
【解决方案2】:

不确定是否相关,但对我来说,将 fork="true 添加到 Ant 文件中的 &lt;java ...&gt; 任务有帮助。

来源:http://lists.apple.com/archives/java-dev/2004/Oct/msg00529.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多