2010-08-03 1 views
1

Я проверяю образец helloworld Mojarra JSF 2.0 от here (просто введите гость как имя пользователя). Я импортирую его как проект maven для затмения (v 3.5) с сервером tomcat 6. У меня есть зависимости mojarra для запуска JSF 2.0 внутри контейнера сервлета.jsf 2 и maven с затмением «запустить на сервере»

Когда я упаковываю его и потому что зависимости jsf имеют область компиляции, эти банки уже находятся в WEB-INF/lib. Затем я разворачиваю его в новый экземпляр tomcat, он работает без жалобы на исключение ClassNotFoundException.

Моя проблема: я не могу запустить проект в eclipse, не помещая эти jar в экземпляр tomcat eclipse.

Есть ли что-нибудь, что я сделал это неправильно?

ответ

1

У меня есть зависимости mojarra для запуска JSF 2.0 внутри контейнера сервлетов.

ли вы имеете в виду, что вы изменили зависимости от предоставленного ПОМ, как предложено в комментариях:

<dependencies> 
    <dependency> 
     <groupId>javax.faces</groupId> 
     <artifactId>jsf-api</artifactId> 
     <version>2.0</version> 
     <scope>provided</scope> 
    </dependency> 

    <!-- 
     Uncomment these dependencies and comment out the one above to use 
     a simple servlet container instead of a Java EE Application Server 
    <dependency> 
     <groupId>com.sun.faces</groupId> 
     <artifactId>jsf-api</artifactId> 
     <version>[2.0.1,)</version> 
    </dependency> 
    <dependency> 
     <groupId>com.sun.faces</groupId> 
     <artifactId>jsf-impl</artifactId> 
     <version>[2.0.1,)</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet.jsp</groupId> 
     <artifactId>jsp-api</artifactId> 
     <version>2.1</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet.jsp.jstl</groupId> 
     <artifactId>jstl-api</artifactId> 
     <version>1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.web</groupId> 
     <artifactId>jstl-impl</artifactId> 
     <version>1.2</version> 
    </dependency> 
    --> 

</dependencies> 

Вы можете это подтвердить? Фактически, показ модифицированной помпы может помочь.

Когда я использую «запустить на сервере» всегда говорят «Не нашел javax.faces.web.FacesServlet

Я предполагаю, что вы имели в виду javax.faces.webapp.FacesServlet. Это, безусловно, в jsf-api.jar. И положить jsf-api.jar и jsf-impl.jar в WEB-INF/libshould also work. Вы используете m2eclipse право?

Но при развертывании на другой TOMCAT экземпляра (без mojarra банок) он работает отлично.

Вы имеете в виду вне Eclipse? И не помещая банки Моджарры в папку lib от Tomcat?

+0

Да, я раскомментирую эти зависимости. Но для того, чтобы запустить его внутри eclipe, я должен положить mojarra jar в папку tomcat lib. Когда я упаковываю его и потому что зависимости jsf имеют область компиляции, эти банки уже находятся в WEB-INF/lib. Затем я разворачиваю его в новый экземпляр tomcat, он работает без жалобы на исключение ClassNotFoundException. Моя проблема: я не могу запустить проект в eclipse, не помещая эту банку в экземпляр tomcat eclipse. – robinmag

+1

@robinmag: Я попытаюсь воспроизвести позже. Звучит странно. –

+0

@robinmag: Не удалось воспроизвести ... –

0

Я решил. Это из-за проблемы класса class Maven не из JSF.

Если кто-либо сталкивается с этим, просто щелкните правой кнопкой мыши на вашем проекте, а затем выберите «Зависимости модуля Java EE», затем убедитесь, что отмечены «зависимостей Maven». Перезагрузите сервер, возможно, вы должны перезагрузить свой проект (закрыть и снова открыть).

Надеюсь, что помогите.

+1

Я бы не назвал это проблемой * Maven Classpath *, но проблема с неправильной конфигурацией Eclipse: если вы хотите, чтобы ваши зависимостей проекта управлялись Maven, ваш проект Eclipse должен быть правильно настроен ...Лично я предпочитаю создавать проекты Maven в командной строке, а затем использовать ** Импорт ...> Существующие проекты Maven **. Это просто работает, никаких сюрпризов. –

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