0


JavaEE プロジェクトを Sun Application Server 9.1 から Glassfish 3.1.2 に移行中です。プロジェクトの構造は次のとおりです。


| - /lib/someProject.jar (confictEJB および EJB で使用)
| -confictEJB.jar
| - EJB.jar
| - webProj.war

瓶と耳はmavenで作られています。問題は、これが SAS 9.1 と Glassfish 2.1 でエラーなしでデプロイされることです。しかし、Glassfish 3.2.1 では次のエラーが発生します。

#|2012-04-23T13:44:29.562+0200|SEVERE|glassfish3.1.2|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=34;_ThreadName=Thread-2;|WebModule[/ArchiveTool]PWC1396: Servlet /ArchiveTool threw load() exception
javax.servlet.UnavailableException: Parsing error processing resource path /WEB-INF/struts-config.xml
at org.apache.struts.action.ActionServlet.handleConfigException(ActionServlet.java:739)
at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:715)
at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:670)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:329)

ActionServlet が GF3.2.1 の struts-config.xml を解析/検索できないようです。私がこれまでにやったこと:

  • struts-config.xml の DOCTYPE でローカル DTD を参照
  • struts-config.xml の一般的な構文検証 -> エラーなし
  • struts-config.xml を DTD に対して検証 -> エラーなし
  • webProj.war スタンドアロンを Glassfish にデプロイ -> エラーなしでデプロイ

戦争プロジェクトの構造:

webProj.war
| - いくつかのもの (画像、css、js など)
| - メタ-INF
| - WEB-INF
    | - ライブラリ
        | - struts.jar (その他)
    | - struts-config.xml
    | - struts-config_1_2.dtd
    | -glassfish-web.xml
    | - web.xml

何が欠けているのか、それ以上の設定をどこで確認できるのか、誰にも手がかりがありますか? どんな助けでも大歓迎です!ありがとうございました!

4

1 に答える 1

0

さて、これは解決策へのヒントを与えてくれました: Maven - スキニー WAR の作成

wars WEB-INF/lib forlder のすべての lib を ears lib フォルダーに配置して検索する必要があります。つまり、Maven ページで説明されているように、戦争で使用されるすべての依存関係のスコープを に設定し、耳をパックする<scope>provided</scope>のこの jar に依存関係を追加する必要があります。pom.xml

したがって、 ear パッケージは次のようになります。


| - /lib
    |- someProject.jar (confictEJB および EJB で使用)
    |- struts.jar
| -confictEJB.jar
| - EJB.jar
| - webProj.war

于 2012-04-30T12:45:07.550 に答える