Ошибка WebObjects Unsupported major.minor версии 49.0 - PullRequest
0 голосов
/ 15 января 2012

Меня попросили обновить старый код, над которым я работал много лет назад. У всех в xCode нет затмения, и изменение необходимо срочно, поэтому не успевайте мигрировать из банкомата xCode.

Я получил в руки установленную на OS 10.5.8 коробку xcode 3.1.4 и локально скомпилированный код.

Попытка развертывания никогда не работала. «Неподдерживаемая ошибка major.minor версии 49.0», кажется, на сервере работает JVM 1.4.2. У меня локально установлен 1.6. Я выполнил несколько инструкций о том, как безуспешно понизить мой локальный компьютер до версии 1.4.2.

Итак, я сдался и положил старую копию сайта обратно на сервер. Но теперь ВСЕ сайты на сервере получают одно и то же сообщение об ошибке, и ни один из них не запустится, даже если их не трогали в течение 3-4 лет. Не уверен, что случилось? мое единственное логическое объяснение - я случайно сделал одно действие на сервере вместо локально? В любом случае я понятия не имею, что не так или как это исправить?

  • С чего начать пытаться отлаживать это?
  • Могу ли я установить новую версию Java 1.5 или 1.6 на сервере (ОС 10.3.9) и заставить его нормально работать с веб-объектами?

1 Ответ

1 голос
/ 08 февраля 2012

Был ли этот проект фреймворком или приложением?Если это фреймворк, который зависит от других проектов WebObjects, это объясняет, почему все начало сбой при обновлении этого проекта.

По умолчанию XCode не включал (или «вставлял») какие-либо зависимые- над библиотеками или фреймворками в комплекте Project.woa.Приложения, созданные таким образом, зависят от наличия необходимых ресурсов в нескольких определенных местах, а затем загружают их при запуске.Если все они теперь ссылаются на несовместимую инфраструктуру или библиотеку, то все они перестанут работать.

Что касается фактической ошибки "Unsupported major.minor version", вам не нужно понижать версиюверсию Java на вашем Mac, вы можете просто указать компилятору нацеливаться на более старую версию Java.

Я не могу вспомнить, использовал ли Xcode Ant для компиляции Java, но если это было так, и вы используетеAnt 1.7 или более поздней версии, вы можете заставить Ant скомпилировать 1.4-совместимые двоичные файлы с Java 1.6, отредактировав файл build.xml так, чтобы тег javac включал параметр «target», такой как: <javac target="1.4" ... /> или передав свойство ant.build.javac.targetкогда вы вызываете Ant, либо через командную строку, либо изменяя файл свойств, который будет загружен Ant.Я считаю, что build.properties все еще существовали в проектах WebObjects на основе Xcode.Если это так, это было бы хорошим местом для свойства.

Основы охватываются этим вопросом stackoverflow: Как скомпилировать классы в JDK1.5, когда ant работает в JDK1.6

...