Мы мигрируют в JBoss AS7 от старой версии JBoss, и мы используем JFreeChart в одной части нашего приложения:JBoss AS7 приложение развертывается на Mac не может найти com.apple.laf.AquaLookAndFeel
chart = ChartFactory.createStackedBarChart("", "", "Data", dataset,
PlotOrientation.HORIZONTAL, true, false, false);
Когда мы нажмем эту строку, мы получим трассировку стека ниже, указывающую, что com.apple.laf.AquaLookAndFeel не найден. Мы видим эту проблему только на Mac, что имеет смысл с учетом имени пакета com.apple.laf. Работа на сервере Linux, похоже, работает нормально. Есть ли что-то, что нам нужно сделать, чтобы заставить AS7 на Mac распознавать классы Apple?
Все маки, которые я пробовал, полностью обновлены с 4/26/12. Я не смог найти тот, у которого есть некоторые из старых 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[[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:]
На данный момент мы смогли обойти эту проблему, указав внешний вид по умолчанию и чувствовать себя как свойство системы при запуске JBoss:
-Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel
Это кажется как больше взломать, поэтому, если есть лучший способ, мы хотели бы попробовать это.
Вы проверили, что данный класс существует в войне? по стеку исключений он не смог найти этот класс из deploy.blah_war. – kosa
@thinksteep, я вижу его в /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/ui.jar/com/apple/laf –
Является ли JAVA_HOME указаным на правильный путь? Я бы предложил сообщение в форуме сообщества jboss. – kosa