3

WAR モジュールに問題があり、taglib の読み込みが困難です。私はこの例外を受け取り続けました:

JSPG0047E: uri http://www.springframework.org/tags/form のタグ・ライブラリーが見つかりません
    com.ibm.ws.jsp.translator.visitor.tagfiledep.TagFileDependencyVisitor.visitCustomTagStart(TagFileDependencyVisitor.java:76) で
    com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:366) で
    com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren (JspVisitor.java:419) で
    com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:369) で
...

少し検索した後、Spring jar をアプリケーションのクラスパスに配置する必要があるという提案がたくさん見つかりました。EAR の lib フォルダーをチェックインしたところ、確かに spring-web と spring-webmvc がそこにありました。

EAR はスキニー WAR で構築されていることに注意してください。それらはほとんど同じライブラリを使用するため、すべてのライブラリ ファイルは、、などMyAppEAR/libの代わりに...MyAppEAR/MyWAR1/WEB-INF/libMyAppEAR/MyWAR2/WEB-INF/libMyAppEAR/MyWAR3/WEB-INF/lib

最終的にこのタグライブラリの欠落エラーを解決することができましたが、spring-web と spring-webmvc を に移動する必要がありましたMyAppEAR/MyWAR1/WEB-INF/lib

だから私はいくつかの質問があります:

  1. これがこの問題を解決する唯一の方法ですか?
  2. もしそうなら、どうすればmavenを使って一種のスキニーWARを構築できますか? 現在、POM の EAR 部分は次のようになっています。

    <plugin>
      <artifactId>maven-ear-plugin</artifactId>
      <version>2.8</version>
      <configuration>
        <applicationName>MyAppEAR</applicationName>
        <defaultLibBundleDir>lib</defaultLibBundleDir>
        <skinnyWars>true</skinnyWars>
    

スキニー WAR をオフにしてから、他の手順ですべてのライブラリを WAR ファイルから削除し、Spring Web jarを除いて M​​yAppEAR/lib にコピーすることができると思いますが、より良い解決策があることを願っています。

4

2 に答える 2