2014-01-09 2 views
0

Я встречаю странное поведение функции Eclipse Run on Server. Моя среда:Eclipse развертывает содержимое папки WebContent в папку WEB-INF.

  • Eclipse Kepler SR 1, WTP
  • Apache Tomcat 7.0.37

У меня есть два динамических веб-проектов внутри Eclipse, - ProjectA и ProjectB. Оба имеют файл index.xhtml (оба проекта - проекты JSF) непосредственно под папкой WebContent. Когда я экспортирую их как WAR файлов в папку Tomcat webapps установки Tomcat, обе работают нормально. Когда я запускаю ProjectA на сервере Tomcat, которым управляет Eclipse через функцию Run on Server, все в порядке. Но когда я хочу начать ProjectB от Eclipse до Run on Server, я получаю 404 error при обращении к http://localhost:8080/ProjectB/index.xhtml или, соответственно, ошибке от сервлета JSF при доступе к ресурсу через правильный URL-адрес http://localhost:8080/ProjectB/faces/index.xhtml. . (Все URL, начинающиеся с /faces/ согласованы с JSF Servlet

Глядя на развернутом приложении в папке Tomcat в Eclipse, Workspace (<eclipse-workspace>\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps) раскрывают причину:
Для ProjectB содержания Затмения проектов WebContent папки была .. развертывается в папку WEB-INF вместо корневой папки развертывания проектов сервер приложений, конечно, не может найти ресурс

Возникает вопрос - Почему не работает развертывание и как я могу избежать этого

?

Я даже проверил свойство обоих проектов внутри затмения. Оба имеют одинаковое (по умолчанию) сопоставление между папками источника и адресата. Вот содержимое файла .settings\org.eclipse.wst.common.component:

<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0"> 
<wb-module deploy-name="ProfileAndGroupManagementGUI"> 
    <wb-resource deploy-path="/" source-path="/WebContent" tag="defaultRootSource"/> 
    <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/> 
    <property name="context-root" value="ProfileAndGroupManagementGUI"/> 
    <property name="java-output-path" value="/ProfileAndGroupManagementGUI/build/classes"/> 
</wb-module> 

Странно, не правда ли? Любая идея?

ответ

0

Линия

<wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/> 

рассказывает WST, чтобы упаковать свои источники в/WEB-INF/классов, это то, что вы не хотите, как это Lib проект. Измените его на:

<wb-resource deploy-path="/" source-path="/src"/> 

будет делать трюк.