- PR -

異なるプロジェクト内のクラスの関数を使うには

投稿者投稿内容
junior
会議室デビュー日: 2004/03/11
投稿数: 8
投稿日時: 2004-03-12 17:32
こんにちは。

eclipse+tomcatプラグインを使用しているということで、てっきり私は
eclipse上でTomcatを動かしていると思い込んでいたのですが、よくよく
書き込み見ると

> EclipseからTomcatを起動できないです・・・。エラーが出ます。
> (いつもは「Start Tomcat」から起動していました。)

と発言されておりTomcatは単体で動かしてらっしゃるようですね。

だったらさんざんeclipseのクラスパスがどうのこうのって言っていた
のは全く関係なかったってことですね。

> 上記3の環境で動作させる場合、普通はwar形式のファイルにまとめることで
> 対応します。
> 具体的には、使用するwebアプリケーションの「WEB-INF/lib」ディレクトリ内に
> 共通ライブラリとして使用したいclassをまとめたjarファイルを入れること
> になると思います。

要するにWEBサーバ(Tomcat)にアプリをデプロイをされていないって話ですかね?

あれっ、だけど一番始めの書き込みでは

> <エラー>
> exception→
> javax.servlet.ServletException: サーブレットの実行により例外を投げました
> root cause→
> java.lang.NoClassDefFoundError: test/common/DBAccess

と言われており、これがTomcatをEclipse上ではなく単体で起動されていたので
あれば一応デプロイは行っているとも取れますね。

開発環境だけではなく実際の動作環境についても、もう少し明確に書いて
頂いた方が良いと思います。

どっちにしろokutinさんのアドバイスの2か3で解決しそうですけど。


> プロジェクト→プロパティ→tomcatの部分ですよね。

こんな設定があったんですね。知りませんでした。
(知らなくても問題なさそうですが)
okutin
ベテラン
会議室デビュー日: 2003/12/11
投稿数: 98
お住まい・勤務地: 広島
投稿日時: 2004-03-12 20:10
こんにちは。

引用:

juniorさんの書き込み (2004-03-12 17:32) より:

と言われており、これがTomcatをEclipse上ではなく単体で起動されていたので
あれば一応デプロイは行っているとも取れますね。




これはTomcatプラグインを使用しているためでしょう。
デフォルトではTomcatプロジェクトを作成したら$TOMCAT_HOME/conf/server.xmlを
書き換えて、プロジェクトディレクトリ内にあるWebアプリケーションを
参照するようにするので$TOMCAT_HOME/webappsにデプロイしなくても
Tomcat単体でWebアプリケーションが動作します。
ただ、別のプロジェクト内のclassである「test.common.DBAccess」は見えないため
「NoClassDefFoundError」になると。
junior
会議室デビュー日: 2004/03/11
投稿数: 8
投稿日時: 2004-03-12 23:06
こんにちは。

引用:
okutinさんの書き込み(2004-03-12 10:21)より

これはTomcatプラグインを使用しているためでしょう。
デフォルトではTomcatプロジェクトを作成したら$TOMCAT_HOME/conf/server.xmlを
書き換えて、プロジェクトディレクトリ内にあるWebアプリケーションを
参照するようにするので$TOMCAT_HOME/webappsにデプロイしなくても
Tomcat単体でWebアプリケーションが動作します。



あっ、なるほど!
そう言われて見ると仰る通りですね。

スキルアップ/キャリアアップ(JOB@IT)