Затмение: Ошибка запуска статических ресурсов java.lang.IllegalArgumentException - PullRequest
4 голосов
/ 14 декабря 2010

В моей среде Eclipse IDE есть проект myproject2.У меня есть сервер приложений Tomcat, и я могу добавить туда ресурс myproject2 (это проект Spring MVC).

Теперь я закрыл myproject2 в Eclipse, удалил myproject2 из ресурсов Tomcat и сделал новую проверку Subversion с помощьюимя проекта: myproject3.

Перезапуск среды IDE Я хочу установить myproject3 на сервер Tomcat, поэтому его следует развернуть.Но все, что доступно, это myproject2 на выбор.Поэтому я выбираю это.Я могу получить доступ к http://localhost:8080/myproject2/, но получаю это предупреждение и выдаю в консоли:

14.12.2010 11:43:11 org.apache.catalina.startup.HostConfig deployDescriptor
WARNING: A docBase C:\Spring\apache-tomcat-6.0.29-windows-x86\apache-tomcat-6.0.29\webapps\myproject2 inside the host appBase has been specified, and will be ignored
14.12.2010 11:43:11 org.apache.catalina.core.StandardContext resourcesStart
SERVE: Error starting static Resources
java.lang.IllegalArgumentException: Document base C:\Spring\apache-tomcat-6.0.29-windows-x86\apache-tomcat-6.0.29\webapps\myproject3 does not exist or is not a readable directory
at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:142)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4249)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4418)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
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:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
14.12.2010 11:43:11 org.apache.catalina.core.StandardContext start
SERVE: Error in resourceStart()
14.12.2010 11:43:11 org.apache.catalina.core.StandardContext start
SERVE: Error getConfigured
14.12.2010 11:43:11 org.apache.catalina.core.StandardContext start
SERVE: Context [/myproject3] startup failed due to previous errors
14.12.2010 11:43:11 org.apache.catalina.core.StandardContext stop
INFO: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/myproject3] has not been started

Так что же здесь не так?Почему у меня нет myproject3, чтобы выбрать, что следует развернуть в Tomcat?

Кто-нибудь знает?

С наилучшими пожеланиями.


Обновление:

.project (myproject2) :

<projectDescription>
    <name>myproject</name>
    <comment>My-Project. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
    <projects/>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jdt.core.javanature</nature>
    </natures>
</projectDescription>

.project (myproject3)

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>myproject</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.wst.common.project.facet.core.builder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.wst.validation.validationbuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.maven.ide.eclipse.maven2Builder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
         <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
         <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
         <nature>org.maven.ide.eclipse.maven2Nature</nature>
         <nature>org.eclipse.jdt.core.javanature</nature>
         <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
         <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
    </natures>
</projectDescription>

Ответы [ 12 ]

1 голос
/ 23 июля 2013

Это происходит потому, что проект запускался до использования этого сервера или был настроен с использованием этого сервера.Следовательно, его путь хранится в папке внутри вашего каталога tomcat.

В вашей папке tomcat перейдите по адресу conf \ Catalina \ localhost \

В этой папке удалите XML-файл, который соответствует вашемупроект.

Либо удалите сервер и добавьте его снова.

1 голос
/ 19 мая 2012

Я думаю, Ladlestein , безусловно, на правильном пути, но я могу добавить немного больше контекста к этой проблеме так, как я смог ее воспроизвести:

У меня есть аналогичный Eclipse (Indigo), в котором я использую проект Maven и использую функцию Eclipse WTP для развертывания на встроенном сервере Tomcat 7. Все работает нормально, если я импортирую проект как проект Maven из Eclipse, но моя проблема возникает, когда я выполняю mvn eclipse:clean и mvn eclipse:eclipse из командной строки. Это, конечно, перестраивает файл Eclipse .project, но оставляет его без каких-либо явно важных Natures и buildCommands .

Я наблюдаю файл .project, очень похожий на ошибочный в вопросе (в myproject2), и в самом Eclipse проект больше не является тем, что Eclipse называет «Динамическим веб-модулем» - следовательно, не может быть развернут - и при этом дольше проект Maven. Я смог исправить это следующим образом:

Сначала сделайте его проектом Maven, добавив в файл .project следующее (я не знаю, есть ли лучший способ через сам Eclipse):

<buildSpec>
    ...
    ...
    <buildCommand>
        <name>org.eclipse.m2e.core.maven2Builder</name>
    </buildCommand>
</buildSpec>

<natures>
    ...
    ...
    <nature>org.eclipse.m2e.core.maven2Nature</nature> 
</natures>

Теперь вы можете убедиться в актуальности проекта, щелкнув правой кнопкой мыши по проекту и запустив Maven > Update Project Configuration....

Далее вы можете сделать проект развертываемым через Properties > Project Facets > Dynamic Web Module (флажок). Вот более полный набор инструкций для превращения вашего проекта в динамический веб-модуль .

В конце ваш .project файл должен выглядеть примерно так:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>project1</name>
    <comment>NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.wst.common.project.facet.core.builder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.m2e.core.maven2Builder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.wst.validation.validationbuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jdt.core.javanature</nature>
        <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
        <nature>org.eclipse.m2e.core.maven2Nature</nature>
        <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
    </natures>
</projectDescription>
1 голос
/ 14 декабря 2010

Используете ли вы Eclipse WTP и Tomcat-сервер для развертывания своего приложения, или вы создаете WAR и развертываете его на Tomcat самостоятельно?

Если вы используете интеграцию, вы можете попробовать создать WAR-файл и развернуть его самостоятельно, чтобы посмотреть, что произойдет. Опубликовать обновление - я буду следить за.


Я снова прочитал ваш оригинальный вопрос. Возможно, проблема в том, как вы создали myproject3. Я подозреваю, что у Eclipse нет необходимой природы проекта для развертывания на сервере. («Характер проекта» - это концепция Eclipse; у проекта может быть несколько из них; разные части Eclipse проверяют природу проекта, чтобы определить, на какие проекты они могут действовать.) шаг. Это не обязательно создает правильный тип проекта. Механизм развертывания Eclipse J2EE позволяет только развертывать проекты с определенной природой проекта - я думаю, что это «eclipse.common.project.facet.core.nature». Кроме того, вашему проекту нужны определенные компоновщики Eclipse, чтобы быть жизнеспособными; Я думаю, что "org.eclipse.wst.common.project.facet.core.builder" является одним из них.

Файл .project в корне вашего проекта - это то, где настраиваются натуры и строители. Вы должны изучить эти файлы в ваших двух проектах.

В: В вашем рабочем пространстве Eclipse существенно отличаются myproject2 / .project и myproject3 / .project (помимо имени)? Опишите различия здесь.

В: myproject2 в SVN содержит файл .project?

Ответы на эти вопросы должны рассказать вам больше. Вы можете внимательно изучить различные варианты проверки и создания проекта за один шаг.

0 голосов
/ 09 августа 2016

В моей ситуации я сделал следующие два шага, и ошибка исчезла:

1 - щелкните правой кнопкой мыши проект> свойства> аспекты проекта> время выполнения Я удалил веб-сервер, а затем применил. снова добавил, затем применил

2 - перезапуск IDE

Неловко работал для меня.

0 голосов
/ 14 июля 2016

Удаление экземпляра сервера из моей IDE и его добавление обратно решило мою проблему.

0 голосов
/ 17 декабря 2013

Я столкнулся с той же проблемой. Что помогло мне, в обзоре сервера (двойной щелчок по вашему серверу на вкладке серверы) мне пришлось установить путь развертывания «MY_SERVER_PATH \ webapps». Надеюсь, это будет полезно.

Спасибо: -)

0 голосов
/ 10 сентября 2013

Проблема решена !! Просто удалите свой экземпляр сервера и начните с нового сервера.

0 голосов
/ 19 июля 2013

Решите мою проблему.Я просто копирую файл .project из другого работающего веб-проекта и изменяю атрибут имени проекта

0 голосов
/ 23 мая 2013

У меня похожая проблема (с eclipse & tomcat7 & WTP). Решил это, убрав (закомментировав) следующую строку из % CATALINA_HOME% / конф / server.xml

Context docBase = "[CATALINA_HOME] \ webapps \\ ROOT" path = "" reloadable = "false" />

0 голосов
/ 01 сентября 2012

Эта проблема будет решена только путем создания нового проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...