2013-11-27 2 views
1

Я не мог поверить, что провел несколько дней в решении этой проблемы, возможно, частично, потому что я не был знаком с Mac. Хорошо, просто опубликуйте мой дневник решений. Надеюсь, это будет полезно другим людям.Tomcat не работает в Eclipse

столкнулись с проблемами: 1. Первая проблема Tomcat не может быть запущен из Eclipse, но может быть запущен Startup.sh (locahost: 8080 страница не может быть загружена) 2.And затем, после нескольких попыток, даже startup.sh не будет работать. 3. После исправления первых двух проблем можно загрузить страницу locahost: 8080, но приложение не может быть загружено. Ошибка 404 - resouce not found отображается, даже если папка войны правильно помещена в папку webapps. Когда Tomcat ссылается на приложение Struts 2, произойдет некоторое исключение ClassNotFoundException или MethodNotDefinedException.

Причины и решения каждой проблемы.

  1. Tomcat не может быть запущен с Eclipse. Причина в том, что настройка Tomcat в Eclipse не завершена. Tomcat в Eclipse еще не указал на папку конфигурации. Решение: дважды щелкните сервер Tomcat на вкладке Server, и появится окно конфигурации. В окне выберите папку конфигурации Tomcat и папку назначения развертывания.

  2. стартп.sh не работает. Причина МОЖЕТ БЫТЬ дублированной проблемой банки. Я забыл, что я скопировал все банки Struts 2 в/Library/Java/Extensions, которые изначально были пустыми. Решения: Очистите эту папку, и startup.sh будет работать.

  3. Веб-приложение не может быть загружено, даже если Tomcat работает (предыдущие 2 проблемы были исправлены) Причина МОЖЕТ БЫТЬ, что избыточные бабки Struts включены в проект. Я googled, чтобы узнать необходимые банки для Struts 2 и включить их только.

Оригинальное сообщение: Я пытался запустить веб-приложение Hello World в Eclipse, но не может публиковать.

Вот что я сделал:

-при Macintosh на OS X 10.8.

- загрузка Tomcat 7 из Apache и увеличение файла под некоторым каталогом.

- также создавая определенные переменные среды, такие как $ CATALINA_BASE и $ CATALINA_HOME, используя команду «export».

-В Затмения, создавая новый сервер как Tomcat 7, указав его в распаковали каталог Tomcat выше, и добавить веб-приложение (компилировать безошибочную) проект в Tomcat

мой веб-Publishing приложение.

`

Вот что я возразил.

Как работает сервер в Eclipse, я получил ошибку 404, что ресурс не найден. Я проверил server.xml, добавлена ​​ссылка на контекст. Но в папке webapps Tomcat не добавляется файл войны. Даже если я набрал locahost: 8080, я по-прежнему получаю ошибку 404 вместо «страницы по умолчанию» tomcat.

    -

Однако, он работал, если я начал сервер с Startup.sh и вручную тащили войны файл в папке WebApps. Сразу же война распаковывается, и я могу загружать свои статические и динамические страницы.

p.s. Как только моя проблема будет решена, у меня теперь больше проблем. Мой startup.sh больше не может запускать сервер. И каждый раз, когда я запускаю его, он, кажется, стирает значение переменных среды, которые это касается.

---------------- ОТВЕТ НА МОИ ПРАЗДНИКИ КОММЕНТАРИИ ------------------------- ----------- к Keerthi Раманатану: содержание catalina.out

Nov 27, 2013 10:26:50 PM org.apache.catalina.core.AprLifecycleListener init 
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java 
Nov 27, 2013 10:26:50 PM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["http-bio-8080"] 
Nov 27, 2013 10:26:50 PM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["ajp-bio-8009"] 
Nov 27, 2013 10:26:50 PM org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 800 ms 
Nov 27, 2013 10:26:50 PM org.apache.catalina.core.StandardService startInternal 
INFO: Starting service Catalina 
Nov 27, 2013 10:26:50 PM org.apache.catalina.core.StandardEngine startInternal 
INFO: Starting Servlet Engine: Apache Tomcat/7.0.47 
Nov 27, 2013 10:26:50 PM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory /usr/local/apache-tomcat-7.0.47/webapps/docs 
Nov 27, 2013 10:26:50 PM org.apache.tomcat.websocket.server.WsSci onStartup 
INFO: JSR 356 WebSocket (Java WebSocket 1.0) support is not available when running on Java 6. To suppress this message, run Tomcat on Java 7, remove the WebSocket JARs from $CATALINA_HOME/lib or add the WebSocketJARs to the tomcat.util.scan.DefaultJarScanner.jarsToSkip property in $CATALINA_BASE/conf/catalina.properties. Note that the deprecated Tomcat 7 WebSocket API will be available. 
Nov 27, 2013 10:26:50 PM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory /usr/local/apache-tomcat-7.0.47/webapps/examples 
Nov 27, 2013 10:26:51 PM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory /usr/local/apache-tomcat-7.0.47/webapps/host-manager 
Nov 27, 2013 10:26:51 PM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory /usr/local/apache-tomcat-7.0.47/webapps/manager 
Nov 27, 2013 10:26:51 PM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory /usr/local/apache-tomcat-7.0.47/webapps/ROOT 
Nov 27, 2013 10:26:51 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-8080"] 
Nov 27, 2013 10:26:51 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["ajp-bio-8009"] 
Nov 27, 2013 10:26:51 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 1075 ms 
java.lang.NoSuchMethodError: org.apache.juli.ClassLoaderLogManager.setUseShutdownHook(Z)V 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:719) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456) 
Nov 27, 2013 10:26:51 PM org.apache.coyote.AbstractProtocol pause 
INFO: Pausing ProtocolHandler ["http-bio-8080"] 
Nov 27, 2013 10:26:51 PM org.apache.coyote.AbstractProtocol pause 
INFO: Pausing ProtocolHandler ["ajp-bio-8009"] 
Nov 27, 2013 10:26:51 PM org.apache.catalina.core.StandardService stopInternal 
INFO: Stopping service Catalina 
Nov 27, 2013 10:26:51 PM org.apache.coyote.AbstractProtocol stop 
INFO: Stopping ProtocolHandler ["http-bio-8080"] 
Nov 27, 2013 10:26:51 PM org.apache.coyote.AbstractProtocol stop 
INFO: Stopping ProtocolHandler ["ajp-bio-8009"] 
Nov 27, 2013 10:26:51 PM org.apache.coyote.AbstractProtocol destroy 
INFO: Destroying ProtocolHandler ["http-bio-8080"] 
Nov 27, 2013 10:26:51 PM org.apache.coyote.AbstractProtocol destroy 
INFO: Destroying ProtocolHandler ["ajp-bio-8009"] 
Exception in thread "Thread-2" java.lang.NoSuchMethodError: org.apache.juli.ClassLoaderLogManager.shutdown()V 
    at org.apache.catalina.startup.Catalina$CatalinaShutdownHook.run(Catalina.java:920) 

-

в Krish

по выберите кнопку «установка Использование Tomcat ... . «Я вижу хорошую страницу при загрузке localhost: 8080

Установив depl oyment в папку webapps, я вижу распакованную папку войны, скопированную в папке webapps.

Однако при загрузке приложения все еще не удалось. загрузка localhost: 8080/HellowWorldStruts2/index.jsp или localhost: 8080/HellowWorldStruts2/index.jsp (игнорировать опечатку дополнительного w, это опечатка в проекте) все еще выдал ошибку 404 и описание Запрошенный ресурс недоступен. Однако index.jsp находится прямо под папкой войны.

И я получил эти обратные связи во время развертывания

SEVERE: Exception starting filter struts2 
java.lang.NoClassDefFoundError: javax/servlet/Filter 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:295) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1617) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547) 
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:532) 
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:514) 
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:142) 
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260) 
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107) 
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4775) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5452) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) 
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1120) 
    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1678) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:680) 
Caused by: java.lang.ClassNotFoundException: javax.servlet.Filter 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    ... 35 more 
Nov 28, 2013 12:09:20 AM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Error filterStart 
Nov 28, 2013 12:09:20 AM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Context [/HellowWorldStruts2] startup failed due to previous errors 

-------------------- END РЕАКЦИЯ моего помощника Commenters ------ ---------------------

+0

Что говорит файл журнала? catalina.out? – Keerthivasan

+0

добавлен в главный вопрос – ChrisZ

ответ

1

Вы можете попробовать следующее, которое изменит способ обработки Eclipse Tomcat.

  • В Eclipse перейдите на вкладку «Серверы» и дважды щелкните экземпляр Tomcat, который у вас есть. Это открывает вкладку
  • В абах, нажмите на раздел Locations сервера, чтобы развернуть вид (если разрушился)
  • Выберите второй переключатель, который говорит, «установка Использование Tomcat (берет под контроль установки Tomcat)»
  • Также измените путь развертывания на путь каталога webapps в вашей установке tomcat, нажав кнопку «Обзор». В моем случае, он установлен в «D: \ Apps \ Apache-7.0.47-кот \ WebApps»
  • Нажмите кнопку «Сохранить» на панели инструментов и перезапустить экземпляр Tomcat на закладке Серверы

Вы можете попробовать посмотреть страницу tomcat.

Сообщите мне, как это.

+0

. Выберите переключатель «Использовать установку Tomcat ....». Я могу видеть хорошую страницу при загрузке localhost: 8080 Установив путь развертывания в папку webapps, я вижу разворачиваемую войну папка, скопированная в папке webapps. Однако загрузка приложения по-прежнему не удалась. загрузка localhost: 8080/HellowWorldStruts2/index.jsp или localhost: 8080/HellowWorldStruts2/index.jsp (игнорировать опечатку дополнительного w, это опечатка в проекте) все еще выдал ошибку 404 и описание Запрошенный ресурс недоступен. – ChrisZ

+0

plz см. Нижнюю часть главного сообщения для лучшего отформатированного ответа. – ChrisZ

+0

Крис, я думаю, что есть NoClassDefFoundError для javax.servlet.Filter. – Krish

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