同様の質問では対処できないと思われる問題に直面しています。
SpringMVC、JSP、およびタグライブラリを使用して、Jetty を埋め込むアプリがあります。Maven プラグインを使用して jar を生成し、依存するすべての jar をディレクトリにバンドルして、マニフェストを作成します。
jar (例: java -jar app.jar) を使用してアプリを実行すると、指定する JSP<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
またはその他の taglib をロードしようとするまで、すべて正常に動作します。
java を実行し、コマンド ラインでクラスパスを指定し、メイン クラスに明示的に名前を付けると、すべて機能します。アプリの jar MANIFEST.MF 内の Class-Path が正しいことを確認しました。
これまでのところ、回避したい 2 つの回避策を考え出しました。起動スクリプトでクラスパスを生成し、コマンド ラインに配置します。または、Jetty jsp-api パッケージから .tld ファイルを取り出して、taglibs として指定できる通常のファイルとして使用できるようにします。
私の理解では、Jasper は tld ファイルを探しているすべての Jar のすべてのクラスパスを引き裂くことになっていますか? コマンドラインでjarをクラスパスの一部として指定すると機能しますが、アプリのjarでクラスパスを指定すると失敗します。