Webアプリで異なるプロジェクトの参照

このQ&Aのポイント
  • Eclipse上で異なる動的WebプロジェクトAとBを作成し、AプロジェクトからBプロジェクトのクラスを参照したい。
  • AプロジェクトのソースでBプロジェクトのクラスをコールしているが、ClassNotFoundエラーが発生する。
  • BプロジェクトをjarにしてAプロジェクトにインポートすると正常に動作する。
回答を見る
  • ベストアンサー

Webアプリで異なるプロジェクトの参照

Eclipse上で異なる動的WebプロジェクトをA と B を作成しているのですが AのプロジェクトからBのプロジェクトのクラスを参照させたいと思っています。 そこでAプロジェクト上で右クリック→プロパティ にて Deployment Assembly を選択し、 追加でBプロジェクトを選択しました。これにより Aプロジェクトのソースで Bプロジェクトのクラスをコールしている部分のコンパイルが通りました。 しかし、この状態でサーバーを起動し、テストしてみるとBプロジェクトのクラスをコールしているところ でClass Not Found Exception が発生してしまいます。 まだ何か設定をする必要があるのでしょうか。 Aプロジェクト上で右クリックで Javaのビルドパス の設定画面でBプロジェクトにパスを 通しても同様のエラーが発生いたしました。 どなたか対応策はお分かりになりますでしょうか。 ちなみに、Bプロジェクトをjarにして出力してAプロジェクトのlibにインポートした場合はうまくいきました。

  • Java
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Java Build Path でも プロジェクトの参照を加えてみてください。

その他の回答 (1)

回答No.2

No.1の補足 質問の状況と合いませんが 1) ビルドエラーを消すには ⇒ Build Path にプロジェクトを追加する。 2) WAR に プロジェクトを追加するには ⇒ Deployment Assembly に プロジェクトを追加する。 ご質問では、Build Path と Deployment Assembly が入れ違っているような気がします。 両方でプロジェクトを追加して、WARでアプリをデプロイすれば問題ないはずです。

関連するQ&A

  • ★Eclipse で、プロジェクトから別のプロジェクトを参照する方法

    現在、Javaでプログラムを作成しているのですが、2つのプロジェクトを作り、BからAプロジェクトを利用している形にしてます。 Eclipse上で、BプロジェクトのJava Build Path のProjectsタブに、Aプロジェクトを指定しているのですが、 どうもAプロジェクト内のクラスが認識されず、リンクエラーになります。 Aプロジェクトをビルドしてjarを作成し、このjarをLibrariesタブに追加すると、問題なく参照解決されます。 このような症状をご存知の方、いませんでしょうか?

    • ベストアンサー
    • Java
  • Eclipseで新規クラスを作成時、スーパークラスをjava.lang.Object以外にするには?

    最近Eclipseを使い始めましたが、パッケージエクスプローラがよくわかりません。 Javaプロジェクトを新規に作成し、 インポートを使って既存のjarファイルをそのプロジェクト内に配置しました。 その後、プロジェクトフォルダを右クリックし、 「ビルド・パス」-「ビルド・パスの構成」から 「ライブラリ」タブの「JARの追加」から先述のjarファイルを選択しました。 これでビルド・パスは通ったと思ったのですが、 新規クラスを作成する際にスーパークラスは「java.lang.Object」しか選択できず、 追加したJARにあるクラスが選択できません。 新規クラス作成時のウィザード画面で追加したJARにあるクラスを 選択するにはどうすればよいのでしょうか? また、そもそもこのやり方でビルド・パスは通っているのでしょうか? 以上、よろしくお願いします。

    • ベストアンサー
    • Java
  • C# 別プロジェクトのフォームを参照する方法

    同じソリューションに複数のプロジェクトが存在しています。 その中のあるプロジェクト[Aプロジェクト]から別のプロジェクト[Bプロジェクト]に存在する フォームクラスを参照したいのですが、参照できません。 Bプロジェクト内に存在するクラスは参照できるのですが、フォームだけが参照できない状態です。 Bプロジェクトのフォームは、次のように宣言されています。 public partial class frmEdit : Form { ・・・・・・・・・ } もう1つのpartialクラスはfrmEdit.Designnerクラスに存在します。 どうすれば、参照できるようになるでしょうか? ご存知の方、ご教授お願い致します。

  • 同じソリューションの別プロジェクトの参照方法は?

    VS2005ProのVB2005を使用しています。 Aというソリューションに BプロジェクトとCプロジェクトがあります。 Bプロジェクトの参照設定にD.DLLを追加しました。 Bプロジェクトに追加されたD.DLLを使用しようと思い Cプロジェクトの参照設定にBプロジェクトを追加したのですが D.DLLがCプロジェクトからは使用できません。 どのように設定を行えばCプロジェクトから Bプロジェクトに追加されたD.DLLが 使用可能になるのでしょうか? よろしくおねがいします。

  • パッケージとビルドパス@eclipse

    eclipse3.1.2を使ってあるコードを書いています。次にあるのがこのプロジェクトの構造です。 Project: Aaa | default package-いくつかのファイル | aaa-いくつかのファイル | hoge.jar & hoge2.jar(2つのjarファイルはビルドパスで指定した) 質問はどのようにして、package aaa内にあるファイルがhoge.jarもしくはhoge2.jarにあるクラスを継承または実装するのか?です。 この2つのjarファイルに入っているクラスファイルはdefault package内では実装と継承ができるのですが、default package以外のpackageだと、とたんに継承と実装ができなくなります。importを使うのも手かなと思ったのですが、どうやってjarファイルを指定すればいいのかわかりません。 もともと、ビルドパスはdefault packageにしか、効かないのでしょうか? それから、どのようにpackage aaaはこのjarファイルにあるクラスを実装と継承をするのでしょうか? もともと、パッケージを2つ用意する必要も無いのですが、このプロジェクトの都合上、2つパッケージを用意した方が整理整頓できるのでこの方法を選びました。もし、「んな、うまい話なんかねぇよ!」ってことでしたら、この方法を廃止しざるを得ないのですが、どうにか実現する方法は無いでしょうか?

    • ベストアンサー
    • Java
  • VB2008:プロジェクト参照で名前空間が出てこない。

    VB2008:プロジェクト参照で名前空間が出てこない。 クラスライブラリを作ろうとプロジェクトC(ルート名前空間R)を作成しました。 別のプロジェクトAからCを参照しても、インテリセンスでR名前空間が出てきません。ビルドしてもダメでした。 オブジェクトブラウザにはRが表示されています。 プロジェクトCをビルドして、プロジェクトAからDLLを参照すれば問題は発生しません。 クラスライブラリも合わせて修正したいので、プロジェクト参照を使いたいのですが どのようにすれば良いのでしょうか? よろしくお願いします。

  • jarが参照するjarを取り込む必要がありますか?

    Androidアプリ(以下、自作アプリ)でJavaMailを使ったメール送信機能を作成しています。 メール送信機能はjar(以下、自作jar)として実装しており、 自作jarのプロジェクトにはJavaMailに必要な以下のjarファイルを取り込んでいます。  <JavaMailに必要なjarファイル>(以下、外部jarファイル)   ・activation.jar   ・additionnal.jar   ・mail.jar 自作jarファイルのみを自作アプリのプロジェクトに取り込み、 メール送信を行うと以下の例外が発生します。  <発生した例外>   java.lang.NoClassDefFoundError: javax.mail.Session    → クラス(のファイル)が見つからないという例外 試しに自作アプリのプロジェクトに外部jarファイルも一緒に取り込むと正常に動作します。 自作jarのプロジェクトに外部jarファイルを取り込んでいるので、 自作jarファイルには外部jarファイルがすべて取り込まれているように思います。 (2重で取り込んでいるような気がしてとても気持ちが悪いです) 自作アプリのプロジェクトに外部jarファイルを再度、取り込まないといけないのでしょうか?

    • ベストアンサー
    • Java
  • (MFC)別々のプロジェクト内で作成したダイアログを表示させる方法

    VC++2005のMFCにてアプリケーションを作成しています。 一つのソリューション内に二つのプロジェクトA、Bが存在し、 プロジェクトAで発生したあるイベント(例:ボタン押下)にて、 プロジェクトBで作成したダイアログを表示させたいのですが、 実装したところ、下記コンパイルエラーが出てしまいます。 「error C2065: 'IDD_TEST2_DIALOG' : 定義されていない識別子です。」 現在のプロジェクトの設定としては、 ・プロジェクトAの依存先をプロジェクトBに設定 ・プロジェクトA選択状態で、  「プロジェクト」→「プロパティ」→「構成プロパティ」  →「C/C++全般」→「追加のインクルードディレクトリ」にて、プロジェクトBのパスを指定 と設定しているのですが、どこに問題があるのでしょうか? もし問題があるようでしたら、正しい設定方法、また実装方法について、 お手数おかけしますが、ご教授お願いできませんでしょうか? また下記にソースコード実装例を記載します。 【プロジェクトA(呼び出し側)】 #include "test2Dlg.h" //プロジェクトBのヘッダファイル ・・・ void Ctest1Dlg::OnBnClickedOk() { CDlgTest MyDlg; MyDlg.DoModal(); //プロジェクトBのダイアログ生成 } 【プロジェクトB(呼出され側)】 ・リソースビューにて、ダイアログ(IDD_TEST2_DIALOG)の「クラスの追加」で、  クラス名「CDlgTest」と指定

  • Eclipseで別プロジェクトをTomcatで使用

    EclipseにTomcatプラグインを入れて Tomcatプロジェクトでサーブレットを作ってます。 そしてこのTomcatプロジェクトから別のライブラリプロジェクトを読み込んでいます。 EclipseのJavaのビルドパスにこのライブラリプロジェクトを指定しているので Eclipseから実行した場合はきちんとこのライブラリプロジェクトを利用して実行できます。 (リアルタイムでライブラリプロジェクトの修正が反映されます) しかしTOMCATでサーブレットを実行した場合にはこのライブラリプロジェクトを読み込んでくれないようで ClassNotFoundExceptionになってしまいます。 ライブラリプロジェクトをJarにしてTomcatのlib以下に置いてやればきちの読み込まれますが できればTomcatプラグインを使って実行した際にライブラリプロジェクトもコンパイルしてTOMCATに読み込ませてライブラリプロジェクトの変更内容もリアルタイムで反映させたいです。 そういう風にするにはどこで設定すればよろしいでしょうか? Eclipse Keplerを使ってます。

    • ベストアンサー
    • Java
  • Eclipse+Javaで開発をしているのですが、

    Eclipse+Javaで開発をしているのですが、 現在プロジェクトAでjarを作成、 そのjarを参照する形でプロジェクトBの開発をしています。 そこでプロジェクトAでクラス名の変更を行ったのですが、 Eclipseのリファクタリング機能ではプロジェクトA内しかリファクタリングされませんでした。 プロジェクトBにも変更を反映させるにはどうすればいいですか? jarファイルがリファクタリングされた場合に自動的に対応する方法はあるのでしょうか?

    • ベストアンサー
    • Java