Ошибка при развертывании проекта JSP / Servlet с maven на jboss6 - PullRequest
0 голосов
/ 13 мая 2011

Проблема с зависимостью Maven.

Привет всем,

Это ссылка на мой предыдущий пост Ошибка с Jboss при развертывании веб-приложения jsp / servlet "com.sun.faces.config.ConfigureListener" Ошибка

Когда я не собираюсь с помощью maven и не экспортирую проект как войну (я использую Eclipse для J2EE) и развертываю его на Jboss6 через его консоль администратора, он работает нормально, тогда как если я собираю с помощью maven с помощью mvn clean install и копирую войну построенный maven в мой каталог / deploy (Jboss) я получаю следующую ошибку

2011-05-10 14: 41: 57,509 ИНФОРМАЦИЯ [org.jboss.web.tomcat.service.deployers.TomcatDeployment] (HDScanner) развертывание, ctxPath = / UltimateSMS-1 2011-05-10 14: 41: 57 681 ОШИБКА [org.apache.catalina.core.ContainerBase. [Jboss.web]. [Localhost]. [/ UltimateSMS-1]] (HDScanner) Ошибка при настройке прослушивателя приложения класса com. sun.faces.config.ConfigureListener: java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener at java.net.URLClassLoader $ 1.run (URLClassLoader.java:217) [: 1.6.0_20] at java.security.AccessController.doPrivileged (собственный метод) [: 1.6.0_20] на java.net.URLClassLoader.findClass (URLClassLoader.java:205) [: 1.6.0_20]

И развертывание войны не удается.

Вот часть моего помета

    <dependency>
                    <groupId>javax.servlet</groupId>
                    <artifactId>servlet-api</artifactId>
                    <version>2.5</version>
                    <type>jar</type>
                    <scope>compile</scope>
            </dependency>
            <dependency>
                    <groupId>jboss</groupId>
                    <artifactId>jboss-j2ee</artifactId>
                    <version>4.0.2</version>
                    <type>jar</type>
                    <scope>compile</scope>
            </dependency>
    <dependency>
                    <groupId>javax</groupId>
                    <artifactId>javaee-web-api</artifactId>
                    <version>6.0</version>
            </dependency>

Нет, где в моем web.xml настроен прослушиватель лиц, и он не имеет ссылок на JSF

P.S .: Мой проект - это простой проект JSP / Servlet J2EE без каких-либо ссылок на JSF. Я использую JDK 1.6 и Maven -> Apache Maven 3.0.3
Я сузил ошибку, и я думаю, что проблема в моем pom.xml

Пожалуйста, сообщите. Спасибо

1 Ответ

4 голосов
/ 18 января 2012

У меня возникла такая же проблема. Вы должны заменить в pom.xml:

    <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <version>2.5</version>
                <type>jar</type>
                <scope>compile</scope>
    </dependency>

и:

    <dependency>
                <groupId>javax</groupId>
                <artifactId>javaee-web-api</artifactId>
                <version>6.0</version>
    </dependency>

по:

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <version>6.0</version>
        <scope>provided</scope>
    </dependency>

Согласно maven doc вы должны установить зависимость от API сервлета и связанных API Java EE для области действия , предоставленной , поскольку веб-контейнер предоставляет эти классы.

при условии Это очень похоже на компиляцию, но указывает, что вы ожидаете, что JDK или контейнер предоставят зависимость во время выполнения. Например, при создании веб-приложения для Java Enterprise Edition вы должны установить зависимость от API-интерфейса сервлета и связанных API-интерфейсов Java EE, так как веб-контейнер предоставляет эти классы. Эта область доступна только для пути к классам компиляции и тестирования и не является транзитивной.

...