2012-04-26 14 views
3

を見つけることができないと我々は我々のアプリの一部にはJFreeChartを使用します。のJBoss AS7アプリは、我々は、JBossの旧バージョンからのJBoss AS7に移行しているcom.apple.laf.AquaLookAndFeel

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

この行を押すと、com.apple.laf.AquaLookAndFeelが見つからないことを示すスタックトレースが下に表示されます。 com.apple.lafパッケージ名では、この問題はMac上でしか見えません。 Linuxサーバで動作させるとうまくいくようです。 MacでAS7を使ってAppleのルックアンドフィールのクラスを認識させるために必要なことはありますか?

私が試したすべてのMacは、4/26/12時点で完全にアップデートされています。私は古いJVMのいくつかを持っているものを見つけることができませんでした。

スタックトレース:

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

これがそうです:今、私たちは、デフォルトの外観を指定することでこの問題を回避するとJBossの起動時にシステムプロパティとして感じることができましたのために

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[[email protected]] 
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:] 

より多くのハックのように、より良い方法があれば、それを試してみたいと思います。

+0

戦争中に特定のクラスが存在することを確認しましたか?例外スタックごとに、そのクラスをdeployment.blah_warから見つけることができませんでした。 – kosa

+0

@thinksteep、/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/ui.jar/com/apple/lafにあります。 –

+0

JAVA_HOMEは正しいパスを指していますか?私はjbossコミュニティフォーラムにも投稿を提案します。 – kosa

答えて

8

これを正確に追加する場所をテストする方法はわかりませんが、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にそれを追加することができます。

また、あまりにもあなたの展開にごMANIFEST.MFDependencies: com.apple.laf,com.apple.laf.resourcesを追加してみてください。それがうまくいくかどうかはわかりませんが、おそらくテストの価値はあります。

+1

私はstandalone.confに次のものを追加しました: 'if [" 'uname''" = "Darwin"]; JBOSS_MODULES_SYSTEM_PKGS = "$ JBOSS_MODULES_SYSTEM_PKGS、com.apple.laf、com.apple.laf.resources" fi' –

+0

よろしくお願いします。私はそこに持っていることが理にかなっていると思う。 –

+0

wildfly 9.0.0 finalでも動作します。 – viktor

関連する問題