Вы не можете использовать статический файл HTML для файла JSP с принудительным путем. Статический файл HTML предварительно не скомпилирован, и во время выполнения Jetty не может найти предварительно скомпилированный JSP. Он ищет сервлет с именем "jsp", который он может использовать в качестве класса сервлета. Это приведет к ошибке «Нет класса в держателе», так как класс сервлета не найден.
Я смотрел на рассматриваемый репозиторий и здесь - то, что продолжалось:
git checkout [commit id]
. Эта резкая ГОЛОВА в свободной фиксации, а не распознанном ответвлении. Я полагаю, что это - "повисшая ГЛАВНАЯ" проблема, к которой обращается CesarB.Эта схема должна сделать это более ясным:
-- D -- E -- F
/ ^
A -- B -- C - |
^ ^ HEAD
| |
remote master
Когда он пытался продвинуть свои изменения, только A
через C
были продвинуты и remote
перемещенный до C
. Он не мог получить фиксации D
через F
продвигать, потому что на них не ссылается известное ответвление.
Вот то, что Вы видите, когда Вы находитесь в этом состоянии:
$ git branch
* (no branch)
master
Решение состоит в том, чтобы переместиться master
до F
в повисшей цепочке фиксаций. Вот то, как я сделал это.
Создайте законное ответвление для текущего состояния:
git checkout -b tmp
tmp
ответвление теперь указывает на фиксацию F
в схеме вышеУскоренная перемотка вперед master
кому: tmp
git checkout master
git merge tmp
master
теперь указывает на фиксацию F
. Выбросьте свое временное ответвление
git branch -d tmp
Можно счастливо продвинуть в удаленный репозиторий, и он должен отправить все изменения.
От Мерзавца 1.7.3 вперед, можно сделать это с одной простой командой:
git checkout -B master
-b
переключатель означает, “создают ответвление здесь перед проверкой его” и -B
безусловная версия этого, “даже если ответвление уже существует – в этом случае, переместите его сюда перед проверкой его”.
Очень простой подход для фиксации этого вида проблемы должен просто удалить master
перейдите и воссоздайте его. В конце концов, ответвления в мерзавце являются просто названиями фиксаций и master
ответвление является ничем специальным.
Так предполагая, что текущая фиксация является той, которую Вы хотите master
чтобы быть, Вы просто делаете
git branch -D master
удалить существующее master
ответвление, затем сделайте
git checkout -b master
к a) создают новое названное ответвление master
это указывает на текущую фиксацию и обновление b) HEAD
указать на master
ответвление. После этого, HEAD
будет присоединен master
и поэтому master
продвинется каждый раз, когда Вы фиксируете.
Проверьте, продвигаете ли Вы корректные ответвления, и что ответвления на самом деле имеют то, что Вы думаете, что они имеют. В частности, проверьте, нет ли у Вас отдельной ГОЛОВЫ, которая может довольно сбивать с толку если не сделанный нарочно.
Самый легкий способ проверить состоит в том, чтобы использовать gitk --all
, который показывает графически все ответвления, ГОЛОВУ, и т.д.
Я предполагаю первую вещь, которую я сделал бы, должен будет работать git fsck
на Вашем локальном репозитории, чтобы удостовериться, что это - все в хорошем состоянии.
Я никогда не видел эту проблему прежде, и я не могу думать о том, что могло бы быть неправильным.
У меня нет репутации для комментария непосредственно более ранний ответ CesarB, но gitk --all
не работает в этом случае, потому что это только перечисляет известные ответвления.
gitk HEAD
шоу эта проблема, но это не совсем ясно. Дымящееся оружие - это master
разоблачает вниз дерево фиксации, а не в новой фиксации.
Так, оказывается что оба: хеш фиксации в .git/refs/heads/master был в корректном, и информация в .git/logs/refs/heads/master была неполной; в этом я подразумеваю, что это только подошло и включало хеш фиксации, указанный в .git/refs/heads/master.
После того как я зафиксировал эти файлы (вручную) и пододвинул обратно к GitHub, все было соусом снова. Я все еще понятия не имею, что, оказалось, получило вещи в этом состоянии, но я рад, что, по крайней мере, выяснил фиксацию.
В случае, если любой задается вопросом: для фиксации .git/refs/heads/master я просто заменил содержание того файла с последним хешем фиксации (ГОЛОВА), и зафиксировать .git/logs/refs/heads/master, я просто скопировал содержание .git/logs/HEAD в .git/logs/refs/heads/master. Легкий peasy... НЕТ.
Я имел эту ту же проблему дважды и наконец выяснил то, что я делал, который вызывал ее. В процессе редактирования старой фиксации с git rebase -i
, вместо вызова git commit --amend
, Я звонил git commit -a
по привычке, сразу сопровождаемый git rebase --continue
, конечно. Кто-то еще смог объяснять, что продолжается негласно, но кажется, что результатом является отдельная ГЛАВНАЯ проблема.