Base64 エンコーディングに依存する新しいセキュリティ Bean を実装しようとしています。Eclipse では、クラスは問題なくコンパイルされます。実際、ローカルで実行されている tomcat にデプロイされたときにビルドされます。ただし、コードが実際に呼び出した行に到達したとき
Base64.encodeBase64String(rawBytes)
私はこれを得る
SEVERE: Servlet.service() for servlet analytics threw exception
java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.encodeBase64String([B)Ljava/lang/String;
必要なタイプ(org.apache.commons.codec.binary.Base64)をインポートするように注意し、メソッドの絶対パッケージ名を使用するように呼び出しを変更しようとしました。
プロジェクトの pom.xml を調べると、Apache サイトによると、次のものが存在し、正しいアーティファクトであることがわかります。
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
Eclipse の依存関係階層ビューを見ると、コンパイル時にバージョン 1.4 (問題のクラスを含む) に commons-codec jar が含まれています。
こちらの同様の質問で、Tomcat の作業ディレクトリを削除することが提案されていたので、それを実行しても無駄でした。私は正確には maven や tomcat の専門家ではないので、どんな提案も役に立ちます。これは非常に具体的な問題であることを認識しているため、いくつかの手がかりを期待してこれを投稿し、問題を自分自身で明確にします。ただし、正しい方向を指す回答はすべて受け入れます。