TomcatのソースコードがEclipseにインポートされ、実行されています
Tomcat Source Code Is Imported Into Eclipse
今日、Tomcatソースコードのインポート、コンパイル、実行に成功しました。これは、次の3つのドキュメントへの主な参照であり、直接コピーされたものもあれば、リンクを書き込むだけのものもあります。それらは異なるソースコードメソッドをインポートし、コンパイルプロセス中に発生した問題を含むものもあります。それらを解決する方法は?後でそれらが見つからない場合は、それらを参照できます。
1. http://jackycheng2007.iteye.com/blog/1477845
2. http://blog.csdn.net/cuidiwhere/article/details/12361425
3. http://zhoushu126.iteye.com/blog/1343718
最初のもの:download-compile-solve-run(簡略化された簡潔な)
tomcat 7のソースコードを学習する準備をしてください。最初のステップは、Eclipseをダウンロードしてインポートし、実行することです。
1.ソースコードをダウンロードします
tomcat 7のソースコードはsvnにあるため、svnをインストールする必要があります。ディレクトリtomcat7を作成し、コマンドラインを使用してこのディレクトリに入り、次のコマンドを使用してダウンロードします
- svn co http://svn.apache.org/repos/asf/tomcat/tc7.0.x/tags/TOMCAT_7_0_27/ ./
ここでタグをダウンロードしました。トランクなどの他のブランチもダウンロードできますが、タグは比較的安定していると思います。
2.日食プロジェクトを作成します
Tomcat 7はantを使用して構築および管理されるため、antをインストールする必要があります。 tomcat7ディレクトリで実行します。
Javaコード
- ant ide-eclipse
実際、build.xmlを見ると、2つの既製のファイルをコピーしていることがわかります。
'ide-eclipse'依存='deploy、extras-webservices-prepare' - description =「Eclipseで構築されるソースツリーを準備します」>>
-
'$ {tomcat.home} /res/ide-support/eclipse/eclipse.project' tofile ='$ {tomcat.home} /。project'/> -
'$ {tomcat.home} /res/ide-support/eclipse/eclipse.classpath' tofile ='$ {tomcat.home} /。classpath'/> - Eclipseプロジェクトファイルが作成されました。
- ApacheTomcatドキュメントサイトのBuildingページをお読みくださいためにEclipseワークプレースを構成する方法の詳細。
したがって、このTomcatプロジェクトをEclipseにインポートできます。
3.Eclipseにlib変数を追加します
プロジェクトをインポートした後、コンパイルを妨げるいくつかのエラーがあることがわかります。実際、lib変数がありません。
ANT_HOME、antインストールディレクトリをポイントします
TOMCAT_LIBS_BASE、tomcat7で実行していない場合は、依存ライブラリの場所を指します。
- 蟻
このプロジェクトをビルドしてデプロイするには、最初に実行します。
これにより、必要なライブラリがダウンロードされます。
どこに置くかわからない場合は、ecj-3.7.2を検索して、その親ディレクトリをこの変数に割り当てることができます。
もちろん、それを追加した後、eclipseはプロジェクトを再構築するように促します。その後はエラーは発生しません。
4.実行
このtomcat-7.0.xプロジェクトを右クリックし、[実行] / [Javaアプリケーション]を選択します。プロジェクト内のすべての主要機能を自動的に検索します。 org.apache.catalina.startup.Bootstrapの主な機能を選択します。選択すると、tomcat-startとtomcat-stopの2つのスタートアップ項目が表示される場合があります。実際、これはtomcat7 res ide-support eclipseの下にあるtomcatによって準備された起動ファイルです。2つの起動ファイル。つまり、これら2つのスタートアップコンフィギュレーションを実行コンフィギュレーションで直接見つけて使用することができます。実行構成の[共通]タブで、デバッグを選択するように設定して、デバッグメニューに表示することもできます。
質問:この関数のコメントがテスト専用に書かれているのはなぜですか?
- / **
- *メインメソッド。テストにのみ使用されます。
- *
- * @paramargs処理するコマンドライン引数
- * /
- 公衆 静的 ボイドmain(String args []){
5.起動後、次のURLを開くことができます。
- http:// localhost:8080 /
ウェルカムページが表示され、完了です。 mainでブレークポイントデバッグを設定できます。
6.より詳細なログを構成します
より詳細なログを見ると、Tomcatの実行を正確に追跡するのに役立ちます。 Tomcatのロギングフレームワークを使用すると、log4jなどのサードパーティのログシステム実装を構成できます。デフォルトでは、java.util.loggingを使用します。
より詳細なログ構成を実装するには、2つのステップが必要です
1)実行中のパラメーターと
- -Djava.util.logging.config.file = $ {project_loc:/ tomcat-7.0.x} /conf/logging.properties
2)ログレベルの構成を変更し、FINEをFINESTに変更します。そして参加する:
- org.apache.catalina.level = FINEST
第二部:多くの問題を含み、最初の記事に対処する方法
この記事は主にこのブログを参照しています http://jackycheng2007.iteye.com/blog/1477845 、しかしプロセス全体で別の問題が発生した場合、特別なレコードは次のとおりです
1.ソースコードを入手する
方法1:公式ウェブサイトから http://tomcat.apache.org/download-70.cgi 直接ダウンロード、公式ウェブサイトはバイナリとソースコードの2つのダウンロード方法を提供します。tomcatのソースコードを研究するために、ダウンロードするソースコードを選択します
方法2:svnを使用してソースコードを取得し、最初にsvnをインストールしてから、新しいディレクトリtomcat7を作成し、そのディレクトリで次のコマンドを実行します。
[java] プレーンビュー コピー- svn co http://svn.apache.org/repos/asf/tomcat/tc7.0.x/tags/TOMCAT_7_0_35/ ./
タグディレクトリにはさまざまなバージョンのTomcatソースがあり、ここでダウンロードされるバージョンは7.0.35です。
2.ソースコードをEclipseにインポートします
tomcatのソースコードは、antを使用して作成および管理されます。最初にantをインストールしてから、antide-eclipseを実行します。コマンドが正常に実行されると、.projectファイルと.classpathファイルがtomcat7ディレクトリに生成されます。これがeclipseプロジェクトになります。このようにして、TomcatソースをEclipseにインポートできます。 ant ide-eclipseの実行時にエラーが発生しました: [java] プレーンビュー コピー- ビルドに失敗しましたbuild.xml:2361:以下のエラーが発生しました一方実行中このライン:
- ビルドに失敗しましたbuild.xml:2449:コンパイルに失敗しましたコンパイラエラー出力を参照してくださいために詳細。
- build-tomcat-dbcp:
- [コピー]コピー64E: usr share java tomcat7-deps dbcpへのファイル
- [移動]移動64E: usr share java tomcat7-deps dbcp src java org apache tomcat dbcpへのファイル
- [javac]コンパイル64E: usr share java tomcat7-deps dbcp classesへのソースファイル
- [javac]警告:[オプション]ブートストラップクラス-sourceと組み合わせて設定されていないパス1.6
- [javac] E: usr share java tomcat7-deps dbcp src java org apache tomcat dbcp dbcp BasicDataSource.java:53:エラー:ベース
- icDataSourceは概要オーバーライドしません概要CommonDataSourceのメソッドgetParentLogger()
- [javac]公衆 クラスBasicDataSource実装情報源 {
- [javac] ^
- [javac] E: usr share java tomcat7-deps dbcp src java org apache tomcat dbcp dbcp DelegatingStatement.java:46:エラー:
- DelegatingStatementは概要オーバーライドしません概要ステートメントのメソッドisCloseOnCompletion()
- [javac]公衆 クラスDelegatingStatement拡張しますAbandonedTrace実装ステートメント{
- [javac] ^
- [javac] E: usr share java tomcat7-deps dbcp src java org apache tomcat dbcp dbcp DelegatingPreparedStatement.java:57
- :エラー:DelegatingPreparedStatementは概要オーバーライドしません概要StatのメソッドisCloseOnCompletion()
- 絶対に
合計時間:2分57秒build-tomcat-dbcpのビルドログが次のように更新されていることにも注意してください。 [java] プレーンビュー コピー
- build-tomcat-dbcp:
- [コピー]コピー64E: usr share java tomcat7-deps dbcpへのファイル
- [移動]移動64E: usr share java tomcat7-deps dbcp src java org apache tomcat dbcpへのファイル
- [javac]コンパイル64E: usr share java tomcat7-deps dbcp classesへのソースファイル
- [javac]注:一部の入力ファイルは、廃止されたAPIを使用またはオーバーライドします。
- [javac]注:詳細については、-Xlint:deprecationを使用して再コンパイルしてください。
- [javac]注:一部の入力ファイルは、チェックされていない、または安全でない操作を使用します。
- [javac]注:詳細については、-Xlint:uncheckedを使用して再コンパイルしてください。
- [jar] jarのビルド:E: usr share java tomcat7-deps dbcp tomcat-dbcp.jar
- [jar] jarのビルド:E: usr share java tomcat7-deps dbcp tomcat-dbcp-src.jar
3.コンパイルの問題を解決するために、ビルドパスにjarパッケージを追加します。
Eclipseをインポートすると、プロジェクトtomcat7に赤い感嘆符が付いていることがわかります。これは、依存するjarパッケージがビルドパスに追加されず、コンパイルエラーが発生するためです。リファレンスブログ http://jackycheng2007.iteye.com/blog/1477845 真ん中の3番目のステップ。発生した別の問題、org.apache.naming.factory.webservicesパッケージの下の2つのクラスServiceProxy、ServiceRefFactoryはまだ間違っており、認識されません [java] プレーンビュー コピー- インポートjavax.xml.rpc.Service
- インポートjavax.xml.rpc.ServiceException
- インポートjavax.wsdl.Definition
- インポートjavax.wsdl.Port
- インポートjavax.wsdl.extensions.ExtensibilityElement
- インポートjavax.wsdl.extensions.soap.SOAPAddress
- インポートjavax.wsdl.factory.WSDLFactory
- インポートjavax.wsdl.xml.WSDLReader
4.実行
リファレンスブログ http://jackycheng2007.iteye.com/blog/1477845 の4番目のステップパートIII:解凍されたSRCは大丈夫ですか?
オリジナル:http://www.cnblogs.com/huangfox/archive/2011/10/20/2218970.html
Tomcatのアーキテクチャまたはソースコードを調べるには、Tomcatのソースコードをideにインポートし、コード追跡(デバッグ)用のインスタンスを作成するのが最善です。
ここでは、インターネット上のいくつかの情報を参照し、自分の操作プロセスを実行中のアカウントとして記録します。
準備完了:
1.Tomcatソースのダウンロード
ここからtomcat-6.0.33ソースコードをダウンロードします。
2.antインストール。tomcatのソースコードをコンパイルするために使用されます。
antのダウンロードが解凍されたら、そのbinをシステム環境パスに追加します。
3.IDE-Eclipse3.7を選択します。
=================================
最初の一歩:
Tomcatソースを解凍します。たとえば、次のように解凍します。 D: tomcat apache-tomcat-6.0.33-src 。
2番目のステップ:
2.1)antを使用してTomcatソースコードをコンパイルします。コンパイルする前に、関連する依存関係をダウンロードする必要があります。コンパイルに必要な依存プロジェクトはわかりません。私たちは何をすべきか?
アリを助けましょう!たとえば、これらの依存プロジェクトを保存する場所を準備するだけで済みます。 d: tomcat basepath 。
2.2)antを機能させるには、apache-tomcat-6.0.33-srcフォルダーのbuild.properties.defaultの名前をbuild.propertiesに変更する必要もあります。
そしてそれを開いて、変更します base.path = d: tomcat basepath 。
2.3)依存プロジェクトをダウンロードし、コマンドコンソールに入り、ディレクトリを入力します D: tomcat apache-tomcat-6.0.33-src 、注文の実行: Antのダウンロード 。
2.4)依存プロジェクトがダウンロードされたら、tomcatをコンパイルできます。注文の実行: 蟻 。コンパイルが完了すると、ディレクトリを表示できます D: tomcat apache-tomcat-6.0.33-src 、
中にもう1つのフォルダがあります: 出力 。
出力フォルダの構造は次のとおりです。
この構造は、インストールパッケージから抽出されたTomcat構造と一致していることがわかります。
binに入り、tomcatを正常に起動します。つまり、コンパイルされたtomcatが成功しました。
=====================================
TomcatソースをEclipseにインポートします。
最初の一歩:
Eclipseで新しいJavaプロジェクトを作成します(例:tomcat6)。
2番目のステップ:
インポート->ファイルシステム
以下に示すように、FromディレクトリでTomcatソースを選択し、Javaを選択してテストします(テストする必要がある場合は、テストを選択します)。
intoフォルダーで、新しく作成したtomcat6を選択し、終了します。
注:javaを設定し、ソースフォルダーにテストし、javaビルドパス->ソース->フォルダーを追加...-> javaを選択してテストします。
プロジェクトの構造は次のようになります。
パートIII:jarパッケージをインポートします。
上記の不幸な赤いフォークは、瓶がないためです。今、どんな種類の瓶が必要ですか?
テストにはjunit.jarが必要です。これは、eclipse内で直接使用できます。
Javaのニーズ:
- ant.jar
- jaxrpc.jar
- org.eclipse.jdt.core_3.3.1.v_780_R33x.jar
- wsdl4j-1.5.1.jar
インポート後はさわやかです!
4番目のステップ:
EclipseでTomcatを起動します。
クラスorg.apache.catalina.startupパッケージでBootstrapクラスを見つけます。
実行:引数のVM引数に設定
-Dcatalina.home = 'd: output build'
その後、あなたはそれを始めることができます!
==========================================
問題:
-Dcatalina.home = 'd: output build'を設定する必要があるのはなぜですか?
まず、出力とは何かを説明します。これはantによってコンパイルされた出力フォルダーです。内容を削除して、正常に開始できるかどうかを確認できます。
このパラメーターを構成しないとどうなりますか? -Dcatalina.home = 'd: output build'を削除します。エラー:
2011-10-20 14:49:35 org.apache.catalina.startup.ClassLoaderFactory validateFile
警告:ディレクトリ[D: myWorkSpace tomcat6 lib]に問題があります。存在します:[false]、isDirectory:[false]、canRead:[false]
2011-10-20 14:49:35 org.apache.catalina.startup.ClassLoaderFactory validateFile
警告:ディレクトリ[D: myWorkSpace tomcat6 lib]に問題があります。存在します:[false]、isDirectory:[false]、canRead:[false]
2011-10-20 14:49:35 org.apache.catalina.startup.Catalina load
警告:D: myWorkSpace tomcat6 conf server.xmlからserver.xmlを読み込めません
2011-10-20 14:49:35 org.apache.catalina.startup.Catalina load
警告:D: myWorkSpace tomcat6 conf server.xmlからserver.xmlを読み込めません
2011-10-20 14:49:35 org.apache.catalina.startup.Catalina start
重要:サーバーを起動できません。サーバーインスタンスが構成されていません。
プロジェクトのルートディレクトリにlibフォルダー、confフォルダー、confにserver.xmlがないため、サーバーをインスタンス化できないことがわかります。
次に、彼のプロンプトに従い、起動時にOKです!