コードを書くだけで戦いは半分終わります。正しく動作させるにはまだ作業が必要です。IDE とデバッグ ツールは、これに非常に役立ちます。
IntelliJ IDEA を例として使用して、実行時にコードに何が起こるかを調べる方法を理解することを提案します。デバッグは幅広いトピックであるため、このレビューではダイバーのような深いダイビングは提供しません。でもシュノーケリングは絶対にしたいです)
次に、選択したプロジェクトをサーバー上で実行する必要があります。このプロセスは、プロジェクト自体にある小さなドキュメントで説明されています。
この後、サーバー ログで、新しいプロジェクトがどのように「デプロイ」されたかを確認できます。
その後、ページに移動すると、「会員登録
すべてが正常であれば、これに関するメッセージが以下に表示されます。
Enter を押して、見つかったソースに移動します。
登録時にmemberController.registerが呼び出されていることがわかりますが 、これは何らかの Java クラスであると思われます。クリックし
確かにそういう授業はありますね。それでは始めてみましょう。どうやら、 register メソッドがあるはずです。クリック
確かに、私たちはそれを見つけました。どうやら、ここ、memberRegistration.registerで登録が行われるようです。Ctrl キーを押しながらメソッドをクリックして「フォールスルー」します。
次に、「ブレークポイント」またはブレークポイントを設定しましょう。これは、コードの実行をどこで一時停止するかを示すマーカーです。この瞬間、私たちはたくさんの興味深いことを学ぶ機会を持つでしょう。これを配置するには、行番号の右側の場所をクリックする必要があります。
http://localhost:8080/wildfly-hibernate4 ページでフィールドに入力し、「登録」ボタンをクリックします。パネル上のアイデア アイコンが点滅します。
「アイデア」に移動すると、デバッグ パネルに興味深い情報がたくさんあることがわかります。
ここで、オブジェクトのフィールドの値を確認できます。たとえば、登録メンバーの構成は次のとおりです。
素晴らしい。他に何ができるでしょうか?コンテキスト メニューを開いて、そこで [式の評価] を選択します (または、[実行] -> [式の評価] メニューを通じて)。さらに良いのは、デバッガのコントロール パネルで次のことを行うことです。
これはブレークポイントでの非常に優れた機能であり、そのコード ポイントがアクセスできるすべてのものにアクセスして、その時点で実行できるコードを実行できます。例えば:
デバッガーのコントロール パネルには、プログラム フロー コントロールを移動する場所を制御するコントロール ボタンもあります。魔法ではないでしょうか?) F8 (ステップアウト) ボタンを押すと、メソッドを入力せずにコードを実行します。F9 キーを押すと、デバッガーによるコード行の実行が停止され、プログラムの実行制御がデバッガーに与えられます。F7 (ステップイン) を押すと、コードを実行し、途中で見つかった各メソッドを入力します。ちなみに、この情報ブロックには特に注意してください。
これは、現在いるスレッドと、現在のスレッドのスタック上のメソッドを示しています。しかし、それだけではありません。便宜上、「フレーム」タブを開くことができます。これを行うには、有効にする必要があります。
[フレーム] タブには、メソッドからメソッドへの移行に関する情報が表示されます。Step Into を使用してコードの実行を開始しました。
ご覧のとおり、プログラムが現在実行されている場所に常に転送されるわけではありません。現在、「getDelegate:469, AbstractEntityManager(org.jboss.as.jpa.container)」にいます。しかし実際には、私たちは実行に移しています。これは、次のように指定されたクラスによって証明されます。
これを見てみましょう。ご存知のとおり、これは現在のオブジェクトを指します。私たちはTransactionScopedEntityManagerにいます。Idea はなぜコードを見せてくれないのでしょうか? 実際のところ、IntelliJ Idea は現時点では TransactionScopedEntityManager について認識していません。これはプロジェクトに接続されていません (プロジェクトの依存関係にありません)。アプリケーション サーバーが実行されているとき、その内部では非常に多くの異なるライブラリが実行されます。しかし、私たちは彼らについてほとんど知りません。一般に、内部を詳しく調べる必要はありません。機能するだけで十分です。しかし、仕事やスポーツの関係でそれが必要になる場合もあります。次に、このライブラリについて Idea に通知し、クラス コードをどこで取得できるかを Idea に知らせる必要があります。
さて、結果を待ちましょう。彼はあなたを待たせません)
次に、そのソースコードをどこかで見つける必要があります。そして、オプションは 2 つあります。
次に、依存関係の説明に進みます。このページではソースコードをダウンロードできます。無事、コードがダウンロードされました。あとはライブラリを接続するだけです。非常にシンプルに接続できます。プロジェクト設定を開く必要があります。
そこで「ライブラリ」を選択し、受け取ったソースコードを「ソース」セクションに追加します。「クラス」セクションでは、Far Manager を使用して見つけた WildFly ディレクトリからのライブラリ jar ファイル自体を指定します。この後、F7 キーを押して移動すると、AbstractEntityManager クラスと TransactionScopedEntityManager クラスの内容が表示され、Ctrl+N を使用したクラスによる検索でも使用できるようになります。
これで、ブレークポイントは名前が Maximilian の場合にのみ起動されます。[詳細] ボタンをクリックすると、ブレーク ポイントの拡張された設定セットが利用できるようになります。
そして、選択した例外タイプに新しいルールを作成します。
たとえば、NPE の場合は次のようになります。
#ヴィアチェスラフ
導入
コードの作成にはデバッグも含まれます。また、タスクにコード サポートが含まれている場合は、さらに多くのデバッグが必要になります。さらに、デバッグの助けを借りて、他の人のコードのジャングルに浸るのと同じくらい深く、使用されているライブラリとフレームワークの動作を調べることができます。ダイビングには次のものが必要です。- 開発環境:無償のIntelliJ Idea Community Edition
- インストールされたMaven
- WildFlyアプリケーション サーバー12.0.0.Final
- 公式サンプルのソース コード:クイック スタート ソース コード
bin\standalone.bat
(*nix システムの場合はstandalone.sh) を使用してサーバーを起動します。 (!) --debug パラメータを指定して開始することが重要です 。サーバーが起動するのを待ちます。彼らは私たちにそれが始まったことと時間を示す手紙をくれます。次のようになります。
\hibernate4\README.adoc
このドキュメントに示されているように、hibernate4 ディレクトリでコマンドを実行する必要があります。mvn clean package wildfly:deploy
ビルドが正常に完了したというメッセージを待っています。
http://localhost:8080/wildfly-hibernate4
」フォームのあるページが表示されます。これで実験の準備が完了し、開始できます)) わかりやすくするためにたくさんの写真を用意しますので、準備をしてください)
リモートデバッグ
したがって、IDE がアプリケーション サーバー上のコードの実行を制御できるように、デバッグ モードを構成する必要があります。IntelliJ Idea には、無料 (コミュニティ) と有料 (アルティメット) の 2 つのバージョンがあります。後者はEAPの形で正式に試すことができます。Ultimate バージョンでは、すべてがシンプルです。アプリケーション サーバーはデバッグ モードで IDE から直接起動できます。ただし、コミュニティ バージョンでは、いくつかのことを手動で行う必要があります。したがって、より複雑なケースを考えてみましょう。コミュニティ版での設定です。コミュニティ バージョンにはいくつかの制限があります。特に、そこからアプリケーション サーバーを実行することはできません。ただし、必要なアプリケーションを備えた実行中のサーバーが別の場所にある場合は、リモート デバッグ (リモート デバッグ) をセットアップできます。ここからのセットアップの説明を使用しましょう: IntelliJ Idea コミュニティ エディションのリモート デバッグ Wildfly (ポート 8787 のリモート実行構成のセットアップ)。構成後、新しい構成をデバッグ モードで起動します。デバッグプロセス
レコードを保存してデバッグしてみましょう。そのためには、まず探索する場所を決める必要があります。ウィンドウから判断すると、「登録」ボタンが必要です。コードから見つけてみましょう。したがって、要素が必要です。その要素には「Register」というテキストが含まれている必要があります。あるいは、彼女には何か関係があるはずだ。クリックしCtrl+Shift+F
て「引用符で登録」を探します。1 つは、index.xhtml にあることがわかります。
Ctrl+N
て次のものを検索します。
Ctrl+F12
して登録方法を探します
デバッグ用のサードパーティ ライブラリの接続
まず、接続する必要があるライブラリがどのようなものであるかを私たち自身が理解する必要があります。 最初の方法は最も困難です - インターネットで検索します。結果を見つけるまでのスピードと結果は、プロジェクトがどれだけうまく管理されたかによって大きく左右されます。たとえば、WildFly にはオープン リポジトリがあります。したがって、Google で「TransactionScopedEntityManager」を検索すると、https://github.com/wildfly/wildfly/tree/master/jpa/subsystemにアクセスし、wildfly-jpa が必要であることがわかります。 2 番目の方法が正しいです。サーバーがどこにあるのか、そこを見てください。これにはさまざまな手段が役立ちます。たとえば、Windows ではFar Managerになります。以下は検索アルゴリズムの例です。インストールして起動したら、Tab をAlt+F1
使用して左側のタブまたはAlt+F2
右側のタブを使用していずれかのタブに切り替え、ハードドライブ上で必要なパーティションを選択します。インストール後に Far Manager ディレクトリ自体が Far Manager で開かれる可能性は十分にあります。ディスクのルートに移動するには、 を押しますCtrl + \
。を使用して、Alt+F
検索ウィンドウを開き、ディレクトリの名前の入力を開始し、ディレクトリが見つかったら Enter キーを押します。この検索は賢く、検索テキストに一致するディレクトリを強調表示します。フォルダが存在しない文字を入力した場合、その文字は入力できません。このようにして、アプリケーション サーバー ディレクトリに移動します。モジュールがサーバー上のどこにあるかわからないとします。おそらく、ある種の WildFly について聞くのは人生で初めてかもしれません。したがって、ここをクリックしてすぐにAlt+F7
ファイルを検索してください。したがって、論理的には、ライブラリを含むファイルが必要であると判断されます。つまり、瓶が必要です。内部には TransactionScopedEntityManager クラスがあるはずです。なぜなら class = file の場合は、「contains」を探します。つまり、次のようなものです。
- 超便利なversioneye.com
- 中央Maven リポジトリ
GO TO FULL VERSION