1

現在、主にSeam 2Hibernate、およびJSF1.2を使用する大規模なプロジェクトをJBoss4.2.xからJBoss7.1に移行しています。これまでのところ、ほとんどの問題を解決することができました。アプリケーションサーバーは正常に起動し、現時点ではエラーなしでEARプロジェクトをデプロイします。JSF 1.2 undSeam2シームを正しく開始します。

ただし、最初のページ(つまり、context / login.seam)にアクセスしようとするとすぐに、ブラウザーはレンダリングされたコンテンツではなく、jspのソースをロードします。今のところ、どこに行けばいいのかわかりません。この環境を使用するために、web.xml、faces-config.xml、または関連するセットアップファイルを変更しましたか?


簡単にまとめると、これまでにプロジェクトに次の更新を加えました。

WARのweb.xmlからのいくつかの行

<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>

EARのjboss-deployment-structure.xml

<?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>

また、JBoss v7.1がモジュールとしてすでに付属しているすべてのJARをEARから削除し、MANIFEST.MFファイルを変更しました。

そして、Log4JをJBoss-Loggingに置き換え、いくつかの古いFacesMessagesコードを修正し、@Serviceクラスと@Managementクラスを今のところ無効にしました。

また、私のOracleデータソースがstandalone.xmlに追加され(ojdbc6.jarを使用)、正常に初期化されます。


PS:現在、このプロジェクトでSeam2をSeam3に置き換えるオプションはありません。Seam2-JSF2-Branch(https://github.com/heyoulin/seam2jsf2)をまだ使用しようとしていません-代替案を評価する前に、現在の問題を理解したいと思います。

4

1 に答える 1

1

私たちはこれに実際の進歩なしにますます多くの時間を費やしてきました。そこで、別の方法で、CDIとEJB v3.1を優先してSeamをダンプすることにしました!SeamV2から使用したもののほとんどは現在廃止されています。これは大規模な移行ですが、最終的には成果を上げると思います。全体的なメモリ使用量を削減し、パフォーマンスを向上させる必要があります。SeamV2とJBossv7はあまり良いアイデアではないようです...

于 2012-11-12T19:53:19.237 に答える