JSF 2 и Maven с затмением "запустить на сервере" - PullRequest
1 голос
/ 03 августа 2010

Я ознакомился с примером helloworld Mojarra JSF 2.0 из здесь (просто введите guest в качестве имени пользователя).Я импортирую его как проект maven для затмения (v 3.5) с сервером Tomcat 6.У меня есть зависимости mojarra для запуска JSF 2.0 внутри контейнера сервлета.

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

Моя проблема в том, что я не могу запустить проект в eclipse без помещения этих jar в экземпляр tomcat eclipse.Есть что-то, что я сделал неправильно?

Ответы [ 2 ]

1 голос
/ 03 августа 2010

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

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

<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/lib также должно работать . Вы используете m2eclipse, верно?

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

Вы имеете в виду за пределами Затмения? И без помещения банок Мохарры в папку lib Tomcat?

0 голосов
/ 03 августа 2010

Я решил это. Это проблема Maven Classpath, а не JSF.

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

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

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