Мне нужно знать механизмы и порядок запуска Хадсона, чтобы я мог понять, в чем дело. Когда вы набираете
nohup java -jar $HUDSON_WAR > $HUDSON_LOG 2>&1 &
(конечно, используя реальные значения для этих переменных), что именно происходит? Я работаю разработчиком программного обеспечения более 10 лет, но в основном во встраиваемых системах, и веб-сервисы находятся вне моего домена. Я не думаю, что это имеет значение, но я использую Hudson на RHEL 5. Он не использует tomcat или apache; он работает как автономный сервис. Какие файлы доступны и почему?
Вот особенности ошибки: я скачал плагин, и после того, как он закончил загрузку, я остановил, а затем перезапустил Hudson, как я делал это много раз раньше. На этот раз, однако, когда я пытаюсь получить доступ к главной странице Hudson, я получаю
Error 404
Exception:
Stacktrace:
(none)
Я подозревал проблему с разрешениями, так как заметил, что некоторые вещи в HUDSON_HOME принадлежат root, поэтому я рекурсивно chown и chgrp'd этот каталог, чтобы все это принадлежало hudson. Это не решило проблему. Я попытался восстановить предыдущий hudson.war, но получил то же самое поведение. Одна вещь, которую я заметил, это то, что сразу после того, как я запускаю ее, если я захожу на веб-страницу, я вижу страницу «запуска» Хадсона, а затем она переключается на ошибку 404. Я попытался запустить Хадсон с другим номером порта и получил такое же поведение У меня нет проблем с доступом к веб-интерфейсу управления исходным кодом на том же сервере.
Обновление: я все еще подозреваю проблему с разрешениями. Возможно, последний, кто перезапустил Hudson, сделал это от имени root.
Update[2]: Excerpt from hudson.log:
[Winstone 2010/10/21 16:05:17] - Beginning extraction from war file
hudson home directory: /home/hudson
[Winstone 2010/10/21 16:05:17] - HTTP Listener started: port=8080
[Winstone 2010/10/21 16:05:17] - AJP13 Listener started: port=8009
Using one-time self-signed certificate
[Winstone 2010/10/21 16:05:17] - Error starting listener instance
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:44)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:516)
at winstone.Launcher.spawnListener(Launcher.java:232)
at winstone.Launcher.<init>(Launcher.java:205)
at winstone.Launcher.main(Launcher.java:391)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:600)
at Main.main(Main.java:200)
Caused by: java.lang.NoClassDefFoundError: sun.security.x509.CertAndKeyGen
at winstone.ssl.HttpsListener.<init>(HttpsListener.java:111)
... 12 more
Caused by: java.lang.ClassNotFoundException: sun.security.x509.CertAndKeyGen
at java.lang.ClassNotFoundException.<init>(ClassNotFoundException.java:77)
at java.net.URLClassLoader.findClass(URLClassLoader.java:385)
at java.lang.ClassLoader.loadClass(ClassLoader.java:653)
at java.lang.ClassLoader.loadClass(ClassLoader.java:619)
... 13 more