2012-01-12 7 views
0

Я развертываю WAR на сервере Tomcat 6 или Tomcat 7 в окне Windows 2003 Server. Ошибка выглядит примерно так:Tomcat развертывание войны Grails с проблемами класса Path

java.lang.Exception: Error initializing iSec web service proxy: Unable to create JAXBContext for generated packages: "com.integrity_apps" doesnt contain ObjectFactory.class or jaxb.index. 

, которого я получал ранее, когда tools.jar не был в classpath моего приложения. Я запускал приложение grails из STS с веб-контейнером по умолчанию, и я смог исправить это, переустановив JUST JDK с помощью tools.jar в каталоге lib и убедившись, что JAVA_HOME установлен правильно.

Я пробовал те же шаги на сервере - только установка JDK, следя за тем, чтобы JAVA_HOME указывал на него, и сбросил мою WAR в контейнере Tomcat. Я все еще получаю ошибку. Может ли кто-нибудь предположить, почему это может произойти?

В качестве дополнительного адресата я заметил, что если на сервере я запускаю Tomcat7.exe из командной строки напрямую (JAVA_HOME устанавливается как системная переменная), ошибка исчезает. Если я запустил его из диспетчера служб, ошибка вернется. Thanks

ответ

1

Похоже, что «com.integrity_apps» - это ваш пакет, содержащий ваши классы боба JAXB? Я думаю, что в пакете отсутствует класс ObjectFactory.

Проверьте, есть ли пакет под названием «com.integrity_apps» и если в этом пакете есть класс с именем ObjectFactory. Если нет, вы можете добавить его или использовать другие способы, чтобы JAXBContext знал, как создавать ваши JAXB-компоненты. Этот вопрос на SO может быть полезным: Do you always need an ObjectFactory class when using JAXB?

+0

Я думаю, что это что-то из tools.jar или rt.jar, то есть зависимость JAXB. Я не думаю, что написал код, явно требующий ObjectFactory. Я добавил файл datapoint о попытке запустить его на сервере win2003. – Derek

+0

ObjectFactory неявно используется инфраструктурой JAXB. Ваша новая точка данных, по-видимому, предполагает, что при запуске из командной строки и из диспетчера служб используется другая установка JVM? Я думаю, что, возможно, одна установка вашего JVM содержит классы пакета «com.integrity_apps», а другая - нет. – Alvin

Смежные вопросы