Похоже, вы изменили конфигурацию Tomcat.
Либо вы перешли на блок l {0,1} [iu] n [iu] x, либо установлены на виртуальной машине с управлением безопасностью, отличным от того, на котором вы ее тестировали.
Видимо
GraphicsEnvironment.getLocalGraphicsEnvironment()
Пытается получить доступ к свойству: java.awt.graphicsenv
Может возвращать нулевое или какое-либо несуществующее имя класса, которое затем загружается и выдает исключение ClassNotFoundException. 1
Решение, похоже, заключается в указании свойства "java.awt.headless".
Это похожий вопрос: java.awt. Ошибка цвета
Попробуйте поиск , он показывает ситуации, аналогичные вашей.
Я помню, что что-то было и в базе данных ошибок от солнца.
Опубликуйте решение, когда найдете его!
1. GraphicsEnvironment.java
EDIT
Это не затмение !!
В моем оригинальном посте есть ссылка на исходный код класса, который выдает исключение.
Так как я выгляжу так, как будто вы пропустили это, я выложу это здесь для вас:
public static synchronized GraphicsEnvironment getLocalGraphicsEnvironment() {
if (localEnv == null) {
// Y O U R E R R O R O R I G I N A T E S H E R E !!!
String nm = (String) java.security.AccessController.doPrivileged
(new sun.security.action.GetPropertyAction
("java.awt.graphicsenv", null));
try {
// long t0 = System.currentTimeMillis();
localEnv =
(GraphicsEnvironment) Class.forName(nm).newInstance();
// long t1 = System.currentTimeMillis();
// System.out.println("GE creation took " + (t1-t0)+ "ms.");
if (isHeadless()) {
localEnv = new HeadlessGraphicsEnvironment(localEnv);
}
} catch (ClassNotFoundException e) {
throw new Error("Could not find class: "+nm);
} catch (InstantiationException e) {
throw new Error("Could not instantiate Graphics Environment: "
+ nm);
} catch (IllegalAccessException e) {
throw new Error ("Could not access Graphics Environment: "
+ nm);
}
}
return localEnv;
}
Вот что исполняется.
И в оригинальном сообщении, которое вы, похоже, не читали, я сказал, что код обращается к свойству "java.awt.graphicsenv"
Если тот другой проект, использующий ось, не имеет той же проблемы, это может быть связано с тем, что он может быть запущен в другой конфигурации tomcat, или библиотека осей предоставила доступ к этому свойству. Но мы не можем быть уверены. Это чистое предположение. Так почему бы вам не проверить следующее и посмотреть, что напечатано:
String nm = (String) java.security.AccessController.doPrivileged
(new sun.security.action.GetPropertyAction
("java.awt.graphicsenv", null));
System.out.println("java.awt.graphicsenv = " + nm );
Если он печатает ноль, то вы теперь в чем проблема. У вас нет этого свойства в вашей системе, или безопасность запрещает вам его использовать.
Отсюда очень сложно сказать: "Перейдите и отредактируйте файл xyz и добавьте: fail = false " Итак, вы должны выполнить свою работу и попытаться выяснить, в чем истинная причина.
Начните с изучения того, что представляет собой выполняемый код (который я только что опубликовал), а затем поймите, что он делает и как работает весь этот AccessController.doPrivileged. (Вы можете использовать Google + StackOverflow для этого).