1

Java での IBM 統合用に 2 つの jar ファイルが追加されました。この例外を取得する:

error at :: BarFile b = BarFile.loadBarFile("C:\\Users\\Uni\\Desktop\\outputt\\Dev_BAR.bar");

root cause:::::::::

java.lang.ClassNotFoundException: com.ibm.broker.config.proxy.BarFile
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
com.cts.XmlExtract.extract(XmlExtract.java:25)
com.cts.BrokerServlet.doGet(BrokerServlet.java:30)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
4

1 に答える 1

2

IDE (おそらく IBM の RAD または Eclipse) を使用して Java プロジェクトを開発する場合、気にする 2 つのクラスパスがあることを覚えておくことが重要です。

  1. コードを書いているときのクラスパス。これがコンパイル クラスパスです。
  2. サーバーでコードを実行するときのクラスパス。これはランタイム クラスパスです。

プロジェクトに追加しようとしている jar のいずれか (または両方) がランタイム クラスパスに含まれていないため、表示されているエラーが発生しています。

次のいずれかの手法を使用して、ランタイム クラスパスに jar を追加できます。

  1. jar を Web アプリ プロジェクトの WEB-INF/libs ディレクトリに追加します。この手法により、jar ファイルが WAR ファイルと共に配布されることが保証されますが、その jar ファイルを使用する可能性のある他のプロジェクトによってその jar ファイルが共有されないことも保証されます。

  2. EAR を作成する場合は、jar ファイルを EAR ファイルに追加します。ear を作成してからしばらく経っているので、正確なディレクトリ名は覚えていません (EAR のルートにあるだけだと思います)。これにより、EAR 内の WAR ファイルが jar を共有できるようになります。

  3. jar を Tomcat の共​​有の場所に追加します。$CATALINA_HOME/lib は良い場所のようです。これにより、Tomcat のそのインスタンス内のすべての Web アプリが jar を共有できるようになります。

  4. 他の。他のサーバーは、jar を共有するための他の手段を提供します。

于 2013-09-11T17:56:04.543 に答える