Использование Seam v2.2.2.Final с JSF v1.2 в JBoss v7.1 - теги JSF не будут отображаться - почему? - PullRequest
1 голос
/ 05 марта 2012

В настоящее время я выполняю миграцию более крупного проекта, в котором в основном используются Seam 2 , Hibernate и JSF 1.2 из JBoss 4.2.x до JBoss 7.1 - и мне удалось решить большинство проблем до сих пор. Сервер приложений запускается просто отлично и в данный момент развертывает мой EAR-проект без ошибок. JSF 1.2 и Seam 2 шов, чтобы начать правильно.

Однако - как только я пытаюсь получить доступ к первой странице (т.е. context / login.seam), браузер загружает источник моего jsp вместо отображаемого содержимого. Пока я не знаю, куда идти. Были ли изменены web.xml ,face-config.xml или любые другие файлы установки для использования этой среды?


Вкратце я сделал следующие обновления для своего проекта:

Некоторые строки из web.xml в WAR

<context-param>
    <param-name>org.jboss.jbossfaces.JSF_CONFIG_NAME</param-name>
    <param-value>Mojarra-1.2</param-value>
</context-param>

<listener>
    <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
</listener>
<filter>
    <filter-name>Seam Filter</filter-name>
    <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>Seam Filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
    <servlet-name>Seam Resource Servlet</servlet-name>
    <servlet-class>
        org.jboss.seam.servlet.SeamResourceServlet
    </servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Seam Resource Servlet</servlet-name>
    <url-pattern>/seam/resource/*</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.seam</url-pattern>
</servlet-mapping>

jboss-deploy-structure.xml в EAR

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
    <deployment>
        <exclusions>
            <module name="javax.faces.api" slot="main" />
            <module name="com.sun.jsf-impl" slot="main" />
        </exclusions>
        <dependencies>

            <!-- Wir brauchen in jedem Fall Java Server Faces v1.2... nicht das aktuelle v2.0! -->
            <module name="javax.faces.api" slot="1.2" export="true" />
            <module name="com.sun.jsf-impl" slot="1.2" export="true" />

            <!-- Seam braucht einige Libraries, die der JBoss teilweise schon mitbringt... -->
            <module name="org.apache.commons.beanutils" export="true" />
            <module name="org.apache.commons.collections" export="true" />
            <module name="org.apache.commons.lang" export="true" />
            <module name="org.dom4j" export="true" />
            <module name="org.hibernate.validator" export="true" />

        </dependencies>
    </deployment>
</jboss-deployment-structure>

Я также удалил все файлы JAR из EAR, которые уже поставляются с JBoss v7.1, в виде модулей и модифицированных файлов MANIFEST.MF.

И я заменил Log4J на JBoss-Logging, исправил некоторые устаревшие коды FacesMessages и отключил классы @Service und @Management.

Также мой источник данных Oracle был добавлен в standalone.xml (с использованием ojdbc6.jar) и успешно инициализируется.


PS: в настоящее время нет возможности заменить Seam2 на Seam3 для этого проекта. Я еще не пытался использовать Seam2-JSF2-Branch (https://github.com/heyoulin/seam2jsf2) - я хочу понять свои текущие проблемы, прежде чем оценивать альтернативы.

1 Ответ

1 голос
/ 12 ноября 2012

Мы потратили все больше и больше времени без реального прогресса в этом.Поэтому я решил пойти другим путем и бросить Seam в пользу CDI и EJB v3.1!Большинство вещей, которые мы использовали в Seam v2, сейчас устарели.Это огромная миграция, но я думаю, что в конечном итоге она окупится.Это должно уменьшить общее использование памяти и улучшить производительность.Похоже, что Seam v2 и JBoss v7 не очень хорошая идея ...

...