• 締切済み

EJB開発でのライブラリ管理

EJBで開発する時、沢山のjarファイルを使用することがよくあります。 システムをANTしてAPサーバにデプロイしてみると、ClassNotFoundException等のエラーが出る事もよくありますが、それがどのjarファイルに属しているか分からなくて途方に暮れることがあります。 また、複数のjarファイルで同じクラス名があったり、バージョンが微妙に異なっていたりして、バージョン古い方のクラスを呼んでいてエラーになっている時などは、どこがおかしいのか原因解明に膨大な時間が掛かることもよくあります。 EJB開発の時、jarファイル等のライブラリのうまい管理方法やエラー発生時の対処方法、良いツール等がありましたら教えてください。 お願いします。

  • Java
  • 回答数1
  • ありがとう数1

みんなの回答

noname#12943
noname#12943
回答No.1

EJBの開発をやってます。 クラス名の命名規約などはどうなってますか? 私はWEB系の開発が主だったので、正直今回のEJBでの開発で面食らったのは、命名規約です。 しかし、設計フェーズでクラス名の命名や、分割がうまくできていたようでクラス名の重複などはありません。とはいっても途中からこのプロジェクトに入れられたものであんまり周りの苦労を知らないんですけどね・・・。

kumattana
質問者

お礼

ご回答ありがとうございます。 確かに根本的には、クラス名の命名等の管理がしっかりしていれば、重複も無くあまり問題が発生しなさそうですよね。 しかしセットアップ手順などが不正確で元の担当者が消えたプロジェクトのを動かそうとしたときは、よく自分の想像で設定してみるのですが、デプロイの時にエラーが出てしまい、よく悩みます。 そのような時に有効な手段やツールが無いかなと思ったりします。

関連するQ&A

  • EJBコンテナ。

    OJT期間中でサーバサイドを勉強中です。 アプリケーションサーバーの使用で組んだEJBをデプロイ(配置ですか)したときのコンテナの動作を知りたいです。 ちなみに基本的にアプリケーションサーバはオートデプロイで、jarファイルを当該ディレクトリに置いたとき、自動的にEJBが認識されます。 そもそも、EJBのコンテナとは、アプリケーションサーバにEJBが認識された時に作られるものなのでしょうか? クライアントからEJBの機能を呼び出そうとしたときにコンテナを意識したことはありませんが、参照の取得の過程でHomeインターフェース、Remoteインターフェース、Beanは一体どのような過程を辿ってインスタンスを生成し、実行可能状態に至るのでしょうか? また、Beanで実装したビジネスメソッドを実行する過程はどのようなものでしょうか?(まぁ、インスタンスが生成されれば普通にメソッドが呼び出されるのですが) 内部の概念の部分で、知る必要がないかも知れませんが、知りたいのでぜひ教えてください。 ちなみに java.sun.com のサイトにあるj2eetutorial を見て勉強中ですが、そこの説明は表層的なもののようでよくわかりません。 それと、余裕がありましたら、複数のサーブレットに渡って一つの EJB インスタンスを使用する方法(Sessionに設定する以外に)を教えてください。 いまいちよく分かっていないので、質問内容が的外れになっているかも知れませんが、よろしくお願いします。 説明するのが面倒くさいという方は解説のあるページを教えていただくだけでも結構です。

    • ベストアンサー
    • Java
  • ejb-jarファイルの間違いが分からないです

    ejb-jarファイルを本のとおりに書いてエラーが出たので本のサンプルソースでやってみたんですが、エラーが出ます。 <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_2_0.dtd"> の記述がどうしてもうまくいきません。 エラーは以下のとおりです。 無効な文字がDTD内に見つかりました。リソース'http://java.sun.com/j2ee/dtds/ejb-jar_2_0.dtd'の実行エラーです。ライン1、位置1 この本の出版された時と、記述内容が変わってしまったんですかね?本はJBOSS入門と言う本です。JBOSSなのでGUI上で設定できないみたいで、このファイルがうまくいかないと先に行きません。誰か教えてください。よろしくお願いします。

    • ベストアンサー
    • Java
  • クラスライブラリのディレクトリについて

    以前(さっき)MySQLのDriverが見つからない ということ(ClassNotFoundException)で質問 させてもらいました。 しかし、この問題は、Driverファイル(jar)を jre1.5.0_03/lib/extにおくことで、解決しました。 ここで疑問なのですが、 クラスライブラリは、一般に(デフォルトでは)、 jdk/jre/lib/extに置くのではないのでしょうか。 また、CLASSPATHに C:\mysql-connector-java-3.1.8-bin.jarと して、Cドライブ直下にDriverを置いたのでは だめなのでしょうか。 よくわからなくなってしまったのですが。 何かわかる人お願いします。

  • Eclipse+Javaで開発をしているのですが、

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

    • ベストアンサー
    • Java
  • アンドロイド開発での外部jarファイルの呼び出し

    趣味でアンドロイドアプリの開発を行なっているのですが、外部jarファイルを読み込み、そのファイル中で計算した値を利用したいと考えてプログラムを書いています。 jarファイルのimportを行い、アンドロイドのコード中でjarファイルのクラスを呼び出すことが出来たのですが、そのクラス中の値をアンドロイドのコード中から呼び出すと、本来Stringの文字列が格納されているはずが、nullが入っていると表示されてしまいます。  そこで質問なのですが、アンドロイドのコード中から外部jarファイル中の値を参照するにはどうしたらよいのでしょうか? そもそもアンドロイドのプロジェクトから外部のjarファイルを呼び出すことは不可能なのでしょうか? 何か解決方法があれば、回答お願い致します。

  • jarファイルをCLASSPATHを設定せずに実行

    eclipseでantを用いてjavaの開発を行っています JDBCを使用するために外部のjarファイルを利用しているのですがその外部のjarファイルを含めた形で一つのjarファイルに固めることは出来るのでしょうか? 具体的には >export CLASSPATH="/workspace/project/lib/bar.jar" >java -jar hoge.jar ではなく >java -jar hoge.jar だけで実行できるようにしたいと考えています

    • ベストアンサー
    • Java
  • 自宅と学校での環境の差でエラー(多分)

    Eclipseでプログラムを組んで、区切りのいいところでAntを実行して動作確認して、ある程度正常(あるいは原因はわかる)ならUSBメモリに開発用フォルダをコピーして、続きを学校でやっているのですが、次の点に悩んでいます。 学校でUSBからフォルダをコピーした後、Antを実行するのですが、「クラスファイルのバージョン 49.0 は不正です。48.0 であるべきです。」と言うエラーが出てきます。 build下のファイルを消せば、解決はしますが、ほぼ毎回なので、面倒に感じます。 何か解決方法はないでしょうか?

    • ベストアンサー
    • Java
  • Eclipse + JBOSS でのデバッグ

    IDE:Eclipse、APサーバー:JBOSSで開発しています。 そこで質問なのですが JBOSSにデプロイした、warファイルをEclipse上からデバッグすることは可能でしょうか どうぞ、よろしくお願いします。

    • ベストアンサー
    • Java
  • Tomcatで開発したStrutsアプリをWeblogicで動かした際の不具合

    Strutsでの開発をしております <開発環境> OS:WindowsXP APサーバ:Tomcat5.0.25 <テスト環境> OS:UNIX APサーバ:Weblogic8.1 上記環境において 開発環境で動作したアプリケーションをテスト環境に デプロイすると一部のページが表示されない現象が起きて困っております。 エラー内容は Parsing of JSP File '/jsp/hoge.jsp' failed: -------------------------------------------------------------------------------- /jsp/hoge.jsp(61): Non-matching extension tags //[ null; Line: 61] probably occurred due to an error in /jsp/hoge.jsp line 61: </html:form> となっています。 現在2つの画面でエラーが出ていますが両方とも </html:form> で発生しているようです。 上記ご回答よろしくお願いします。

    • ベストアンサー
    • Java
  • ファイル管理(変更されたものの検出)

    現在とあるサーバ(HP-UX11iとSolaris8)のファイル管理 を行っています。 当方の技術力はIT業界10年目です。UNIX系C言語のプロ グラミングはできますが、スクリプトは未経験です。 ただし、ここ5年ほど開発から遠ざかっており、主に 開発部隊の後方支援(品質管理など)に回っています。 【背景】 上記サーバどちらでもいいのですが、開発APをインス トールし、次回に新しいバージョンをインストールす る際に差分管理(あるいは他人に触られた形跡がないか) 確認したいのです。CVSなどを使う手もありますが、 マシンはお客様のものですので、せいぜいファイル リストをとってdiffで確認する(であろう)ことが精一杯 です。 【質問】 マシン上の開発APの「インストール時刻・サイズ・ パーミッション」を最低限として、取得することは できますか?開発APは、複数階層のディレクトリに 格納されています。取得できれば、diffで差分が簡単 に確認できると考えています。 本来は、マシン全体の差分を求められていますが、 ファイル数が膨大なため、開発APの管理のみにしようと 思います。 なお、補足情報ですが、通常はWindowsを使っています。 ご回答は、少々専門用語が入っていても結構ですし、 URLのご紹介でも結構です。 なにとぞよろしくお願いします。