忍者ブログ

2024
09
09

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2024/09/09 (Mon.)

2010
08
17

Eclipse Web Tools PlatformとMavenの統合

 http://japan.internet.com/column/developer/20080520/26.html からパクリ

はじめに

Eclipse Web Tools Platform(WTP)とM2Eclipse(M2)は別々のプロジェクトです。両者はいずれも、Eclipseを使って開発をする際に価値の高い機 能を提供します。WTPはWebおよびJava EEアプリケーション開発用のEclipseプラットフォームを機能拡張するツールセットで、一方のM2は、このIDEとMavenを密に統合します。こ の2つを同じプロジェクトで利用すると絶大な効果が得られますが、残念ながらまだ、WTPとM2を追加設定なしで統合することはできません。今回の記事で はこれについて取り上げます。

この記事では、WTPとM2の統合ソリューションを使用して基本的なWebアプリケーションを開発していきます。プロジェクトのセットアップから配備ま での一連の構築手順を紹介するので、EclipseベースのJava Web開発を効率化するための参考にしていただけると幸いです。

 



環境のセットアップ

今回のプロジェクトでは、主な開発環境としてEclipseを使用します。後述の手順を行うためには、以下のテクノロジをEclipseの環境に含める必要があります。

この他のEclipse関連のダウンロード先一覧については、補足説明1を参照してください。

補足説明1 より完成度の高いEclipse環境のために
 Eclipse環境に追加すると作業期間の短縮に役立つテクノロジを表1に示します。
表1 Eclipse環境の充実度を高めるその他のテクノロジ
プラットフォーム/プラグイン URL メモ
WTP 2 http://download.eclipse.org/webtools/downloads オールインワンバージョン
Sysdeo http://www.eclipsetotale.com/tomcatPlugin.html Tomcatプラグイン
Hibernateツール http://www.hibernate.org/255.html Hibernateプラグイン
Checkstyle http://eclipse-cs.sourceforge.net/update アップデートURL
PMD http://pmd.sourceforge.net/eclipse アップデートURL
Spring IDEとAspectJ開発ツール、およびMylyn http://springide.org/updatesite アップデートURL
Buckminster http://www.eclipse.org/buckminster/ プロジェクトURL
Subclipse http://subclipse.tigris.org/update_1.2.x アップデートURL
M2プラグイン http://m2eclipse.codehaus.org/update アップデートURL
ここでは、私がツールボックスに追加しておきたいと思うプラグインを紹介しましたが、このすべてを以降の手順で使用するわけではありません。実際のところ、WTP2とM2は必ず使用しますが、その他のプラグインはどれも必須ではありません。
上記のアップデートURLからインストールされる機能のなかには相互参照を含むものがあるため、依存関係をインストールした後にアップデートが必要な場合があります。

WTPとM2プラグインの設定

まず最初に、初期サーバー、ブラウザ、そしてMavenを設定する必要があります。M2プラグインを使用してEclipseを起動すると、 settings.xmlファイルに関するエラーメッセージが表示されます。このメッセージは無視してください。問題はこの後すぐに解決します。

サーバーの設定

Webアプリケーションの実行に使用するサーバーを設定します。Eclipseメニューから [Windows]→[Preferences]→[Server]→[Installed Runtimes]→[add]の順にクリックしてサーバーを設定してください(図1)。

図1 サーバーの設定: 順にクリックしてサーバーを設定
図1 サーバーの設定: 順にクリックしてサーバーを設定
適切なバージョンのTomcatを選択します。ウィザードの次の画面でTomcatのホームディレクトリを参照し、[Finish]をクリックします。

ブラウザの設定

WTPを使ってWebアプリケーションを起動すると、WTP内部のブラウザが開きます。外部のブラウザを選択してそこにWebアプリケーションを開きた い場合は、Eclipseのメニューから[Window]→[Web Browser]の順にクリックして、外部のブラウザが起動するように設定してください。

Maven2の設定

Eclipseで[Menu]→[Window]→[Preference]の順にクリックし、左側のパネルで[Maven]をクリックします。このと きしばらく時間がかかる場合がありますが、そのままお待ちください。[User Settings file]フィールドに入力されているファイルパスをメモし(図2)、この場所にsettings.xmlファイルが存在することを確認します。 settings.xmlがない場合はapache-maven-2.0.8¥confからファイルをコピーします。[OK]ボタンをクリックしてくださ い。

図2 Mavenの設定:Eclipseで「Menu」→「Window」→「Preference」の順に選択し、左側のパネルで「Maven」をクリック
図2 Mavenの設定:Eclipseで「Menu」→「Window」→「Preference」の順に選択し、左側のパネルで「Maven」をクリック
ここまで終われば、動的なWTPプロジェクトを作成し、M2プラグインを統合する作業にとりかかることができます。
 

プロジェクトのセットアップ

以降では、WTPの動的Webアプリケーションプロジェクトを作成し、M2プラグインを使用してMavenのサポートを有効化します。具体的には、以下の作業について詳しく説明していきます。

  • プロジェクトのフォルダ構成とJavaのビルド設定をMavenに合わせて変更する
  • 特定のWTPメタデータファイルをMavenに合わせて変更する
  • WTPがpom.xmlを使用するように設定する
その前に、MavenのWebプロジェクトを作成し、M2プラグインの概要を理解しておきましょう。

Maven Webプロジェクトの作成

[File]→[New]→[Other]→[Maven]→[Maven Project]の順に選択し、[New Maven2 project]ウィザードを起動します。表2に示す値をウィザードの各ページに入力します。赤字で示した部分以外は、デフォルト値をそのまま使用してく ださい。

表2 Maven 2プロジェクト作成時の入力値
ページ データ
ページ1  
Project Name tempForRef
[Create in Workspace]ラジオボタン このボタンを選択
ページ2  
Group ID tempForRef
Artifact ID tempForRef
Version 0.0.1-SNAPSHOT
Packaging war
Description 空白、または適切な説明を入力
Project Layout src/main/java、src/main/resources、src/test/java、src/test/resources、src/main/webappのチェックボックスをオンにする
ページ3 変更なし
このM2プロジェクトをWTPの動的Webプロジェクトに変換できるのか疑問に思うかもしれません。もちろん、変換は可能です。ただし、WTPの動的 WebプロジェクトをM2プロジェクトに変換する方が、M2プロジェクトを動的Webプロジェクトに変換するよりも簡単です。

M2プロジェクトが作成できたので、次は動的Webプロジェクトを作成します。

動的Webプロジェクトの作成

[File]→[New]→[Other]→[Web]→[Dynamic Web Project]の順にメニューを選択して、動的プロジェクトを新規作成します。プロジェクト名をsample1にし、それ以外はすべてデフォルトのまま にします。Java EEパースペクティブに進むかどうか聞かれたら、[Yes]をクリックして先に進みます。

表3に各ページの値を示します。値の入力が必要なのはプロジェクト名だけです。

表3 動的Webプロジェクト作成時の入力値
ページ データ
ページ1  
Project Name sample1
Project Contents デフォルト値を使用(ディレクトリ)
Target Runtime Apache Tomcat v6.0
Configurations Apache Tomcat v6.0のデフォルトの設定
ページ2  
Dynamic Web Module デフォルト値を使用
Java デフォルト値を使用
ページ3  
Context Root sample1
Content Directory WebContent
Java Source Directory src
次は、このプロジェクトでM2プラグインを使用します。

Mavenの有効化

プロジェクトを右クリックし、ポップアップメニューで[Maven]→[Enable Dependency Management]の順に選択してMavenを有効化します。POM作成ウィザードが起動します(図3)。

図3 POM作成ウィザード:POM作成ウィザードを起動してMavenを有効化
図3 POM作成ウィザード:POM作成ウィザードを起動してMavenを有効化
[Packaging]に[war]を選択して[Finish]ボタンをクリックします。

統合を完了するために、Mavenを有効化した後で以下の手順も実行する必要があります。

  1. Mavenのフォルダ構成を作成する
  2. ソースフォルダを更新する
  3. WTPの内部をいくつか自分で調整する
  4. J2EEモジュールの依存関係を設定する

Mavenのフォルダ構成の作成

[Window]→[Show View]→[Other]→[General]→[Navigator]の順に選択してナビゲータビューを開きます。動的プロジェクトのフォルダ構成 は、デフォルトではMavenと異なっており、これが統合を妨げています。プロジェクトのフォルダ構成を、Mavenの典型的な構成に変更してください。 これには以下の2とおりの方法があります。

  1. ナビゲータビューを使用して、先ほど作成したMavenプロジェクト(tempForRef)に移動します。srcフォルダとtargetフォル ダをコピーします。再度ナビゲータビューでsample1プロジェクトに移動し、そこにフォルダを間違えないように貼り付けます。
  2. [File]→[New]→[Folder]の順に選択して、src/main/java、src/main/resources、src /main/webapp、src/test/java、src/test/resources、target/classes、target /test-classesの各フォルダを作成します。

ソースフォルダの更新

動的プロジェクトのJavaビルド設定(ソースフォルダとアウトプットフォルダ)も、デフォルトではM2との統合が可能な状態ではありません。Java コード用のソースフォルダの設定が必要です。これは手動でやることも、メニューから自動的に設定することもできます。手動であれば、わずかな手間ですべて の設定を一度に行えるので、ここでは手動で行うことにします。

sample1プロジェクトで、ナビゲータビューを使用して.classpathファイルを開きます。このファイルの内容は以下のようなものです。

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
     <classpathentry kind="src" path="src"/>
     <classpathentry kind="con"            path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
     <classpathentry kind="con" 
          path="org.eclipse.jst.server.core.container/org.eclipse.
                jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0"/>
     <classpathentry kind="con"            path="org.eclipse.jst.j2ee.internal.module.container"/>
     <classpathentry kind="con"            path="org.eclipse.jst.j2ee.internal.web.container"/>
     <classpathentry kind="con"            path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
     <classpathentry kind="output" path="build/classes"/>
</classpath>
実際のファイルは、これと完全に同じではないかもしれません。たとえば、このXMLに記述されているTomcatのバージョン情報は違う可能性もありま す。また、org.eclipse.jst.j2ee.internal.module.containerのエントリはWTP 2.0.1にはありますが、WTP2.0にはありません。変更の必要がある箇所を太字で示していますので、XMLのテキスト全体をコピーして貼り付けるの ではなく、このファイルを直接編集し、太字の箇所を変更してください。

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
     <classpathentry kind="src" path="src/main/java"/>
     <classpathentry kind="src" path="src/main/resources"/>
     <classpathentry kind="src" output="target/test-classes" 
         path="src/test/java"/>
     <classpathentry kind="src" output="target/test-classes" 
         path="src/test/resources"/>
     <classpathentry kind="con" 
           path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
     <classpathentry kind="con" 
          path="org.eclipse.jst.server.core.container/org.eclipse.
                jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0"/>
     <classpathentry kind="con" 
          path="org.eclipse.jst.j2ee.internal.module.container"/>
     <classpathentry kind="con" 
          path="org.eclipse.jst.j2ee.internal.web.container"/>
     <classpathentry kind="con" 
          path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
     <classpathentry kind="output" path="target/classes"/>
</classpath>
注意
 実際の.classpathファイルに記述されたTomcatのバージョンは、これとは異なる可能性があります。編集時にTomcatの情報を書き換えないでください。また、編集後は必ず保存してください。

WTP内での手動調整

ソースフォルダを更新した後、より確実に統合させるためにいくつか調整を加える必要があります。ナビゲータビューでプロジェクトを開 き、.settings/org.eclipse.wst.common.componentファイルを編集します。必要に応じてエディタで [Source]タブを開き以下を操作します。

  • /WebContentを/src/main/webappに変更する
  • build/classesをtarget/classesに変更する
以下のエントリを削除します。

<wb-resource deploy-path="/WEB-INF/classes"               source-path="/src/test/java"/>
<wb-resource deploy-path="/WEB-INF/classes"               source-path="/src/test/resources"/>
変更後のXMLは以下のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="sample1">
<wb-resource deploy-path="/" source-path="/src/main/webapp"/>
<wb-resource deploy-path="/WEB-INF/classes"               source-path="/src/main/java"/>
<wb-resource deploy-path="/WEB-INF/classes"               source-path="/src/main/resources"/>
<property name="context-root" value="sample1"/>
<property name="java-output-path" value="target/classes"/>
</wb-module>
</project-modules> 
変更後は必ず保存してください。

/WebContentの下のMETA-INFフォルダとWEB-INFフォルダを、src/main/webappへ慎重に移動します。ナビゲータビューでWebContentフォルダとbuildフォルダを削除します。

J2EEモジュールの依存関係の設定

プロジェクトを右クリックし、ポップアップメニューから[Properties]を選択して、プロジェクトのプロパティを表示します。左側のパネルで [J2EE Module Dependencies]を選択し、画面(図4)に表示されるチェックボックスをオンにして、maven2の依存関係をJ2EEモジュールの依存関係に 関連付けます。その他のチェックボックスは無視してください。

図4 J2EEモジュールの依存関係: maven2の依存関係をJ2EEモジュールの依存関係に関連付ける
図4 J2EEモジュールの依存関係: maven2の依存関係をJ2EEモジュールの依存関係に関連付ける
[Apply]ボタンをクリックすると、図4に表示されている警告が消えます。

ここまでの手順を見直して、すべて正しく行われていることを確認してください。この時点で、Eclipseの[Problem]ビューに、 sample1プロジェクトとtempForRefプロジェクトに関するエラーメッセージや警告は何も表示されていないはずです。次からはいよいよ開発作 業に入ります。
 

いよいよ開発作業へ

以降では、Mavenを使用し、jarを追加してクラスパスを変更するというM2プラグインの基本的な作業を主に取り上げます。エディタやリポジトリ検 索ツールを使ってpom.xmlファイルを編集する方法や、Mavenのゴールを起動する方法を説明します。さらに、「Maven化」されたプロジェクト を、WTPを使用して起動およびデバッグする方法も紹介します。ここでは短めのコードを作成して、ごく簡単なMVCアプリケーションを完成させます。

このアプリケーションがタグライブラリ関連の問題を起こさずに確実に動作するようにするため、以降の手順ではdisplaytagライブラリを使用します。

依存関係の管理

最初に依存関係をいくつか追加します。プロジェクトを右クリックし、ポップアップメニューから[Maven]→[Add Dependencies]の順に選択してリポジトリ検索を起動してください。ここに「tomcat」と入力し、強調表示されたservlet-api jar(図5)を選択して[OK]ボタンをクリックすると、POMにjarが追加されます。

図5 依存関係を追加するリポジトリの検索: 最初に依存関係をいくつか追加
図5 依存関係を追加するリポジトリの検索: 最初に依存関係をいくつか追加
pom.xmlファイルをエディタで開き、必要であれば[Source]タブをクリックして表示します。エディタ標準のコンテンツアシストを使用し、scopeにprovidedを挿入します(図6)。うまくいかない場合は、正しい場所に直接<scope>provided</scope>と入力してください。

図6 POMエディタ:エディタ標準のコンテンツアシストを使用し、scopeにprovidedを挿入
図6 POMエディタ:エディタ標準のコンテンツアシストを使用し、scopeにprovidedを挿入
同様に、JUnitとdisplaytagの依存関係を追加します。pom.xmlは以下のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>sample1</groupId>
  <artifactId>sample1</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <description></description>
  <dependencies>
  
  <dependency>
      <groupId>tomcat</groupId>
      <artifactId>servlet-api</artifactId>
      <version>5.5.15</version>
      <scope>provided</scope>
    </dependency>
    
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.4</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>displaytag</groupId>
      <artifactId>displaytag</artifactId>
      <version>1.1.1</version>
    </dependency>
    
  </dependencies>
</project>
JUnitのservlet-api jarではscopeにtestを挿入し、Tomcatではscopeにprovidedを挿入します。

注意
 WTPで開発する場合、servlet-api jarは特に必要ありませんが、Maven 2のゴールをコマンドラインから実行するためには必要です。
次回同じ検索を実行すると、新しく追加された依存関係が赤く表示されるため、pom.xmlファイルにこれが存在することがわかります(図7)。追加した依存関係は、削除しなければ再度追加することはできません。

図7 リポジトリ検索による既存の依存関係の強調表示: 新しく追加された依存関係が赤く表示される
図7 リポジトリ検索による既存の依存関係の強調表示: 新しく追加された依存関係が赤く表示される

Maven実行の設定

Maven実行の設定をsample1.packageという名前で作成します。これには図8に赤い円で示したツールバーボタンを使います。続いて [Open External Tools Dialog]をクリックします。画面の指示に従い[Maven Build]を選択してMaven実行の設定を新規作成し、図8に赤い矢印で示したボタンをクリックします。[Base directory]を設定するには[Browse Workspace]を、[Goals]を設定するには[Select]をそれぞれ選択します。

図8 外部ツールを使用してMaven実行の設定を作成: Maven実行の設定を新規作成
図8 外部ツールを使用してMaven実行の設定を作成: Maven実行の設定を新規作成
このサンプルではMaven実行の設定に以下の値を使用します。

  • Name: sample1.package
  • Base Directory: ${workspace_loc:/sample1}
  • Goals: package
このようなゴールを設定すれば、追加の引数やVMの引数をMavenコマンドに渡すこともできます。[Run]ボタンをクリックしてから、jarがローカルのリポジトリにダウンロードされるのを、Eclipseコンソールに表示される進捗を見ながら待ちます。

この操作を一度実行すれば、次回からはツールバーメニューのドロップダウンで素早くアクセスできます(図9)。

図9 最近使用したMaven実行の設定: 設定に素早くアクセス可能
図9 最近使用したMaven実行の設定: 設定に素早くアクセス可能
cleanやtestなどの一般的なMavenゴールを追加するには、プロジェクトを右クリックし、ポップアップメニューから[Run As]を実行して、追加するMavenゴールを選択します。

ここまで進んだら、次はコードを追加します。

コードの追加

サーブレットとJavaServer Page(JSP)は、[File]→[New]→[Other]→[Web]の順に選択して表示されるウィザードで作成できます。このウィザードを使っ てサーブレットを作成した場合は、web.xmlにサーブレットが登録されているはずなので確認してください。もし登録されていなければ、サンプルアプリ ケーションのダウンロードファイルに含まれているweb.xmlを利用してください。

この簡単なサンプルアプリケーションでは、index.jspからサーブレットに転送され、さらにそこからビューのJSPへと転送されます。このアプリ ケーションでは、displaytagタグライブラリを使用したテーブルの表示も行います。ダウンロードファイルに収録されているコードを使用すれば、こ のアプリケーションを簡単に作成できます。zipファイルを解凍し、srcフォルダの内容をsample1プロジェクトのsrcフォルダにコピーしてくだ さい。この他にコードに関連するファイルはpom.xmlファイルだけです(いずれにしても、このファイルはsrcフォルダの外に置かれます)。
 

WTPからのWebアプリケーションの起動

それでは、デバッグ機能を使ってみましょう。以下の手順を実行してください。

  1. doGetMethodサーブレットにブレークポイントを設定します。
  2. プロジェクトを右クリックし、[Debug As]を実行してアプリケーションを起動します(図10)。
  3. [Debug on Server]を選択します。
  4. [Choose an existing server]を選択できない場合は、[Manually define a new server]を使用します。
図10 Webアプリケーションの起動:プロジェクトを右クリックし、「Debug As」を実行してアプリケーションを起動
図10 Webアプリケーションの起動:プロジェクトを右クリックし、「Debug As」を実行してアプリケーションを起動
ウィザードの次のページ画面で、プロジェクトが[Configured project]の下に表示されていることを確認します。JSPやサーブレット、あるいは他のコードなどにブレークポイントを設定し、WTPのデバッグ機 能を試してみてください。うまく動作しない場合は、図11に表示されているサーバーを削除した後に再起動する必要があるかもしれません(最初に再起動する 必要はありません)。

図11 サーバービュー: うまく動作しない場合は、このサーバーを削除した後に再起動する
図11 サーバービュー: うまく動作しない場合は、このサーバーを削除した後に再起動する
Eclipseによってブラウザが呼び出され、アプリケーションが表示されます。ブレークポイントを設定した場所によっては、Debugパースペクティ ブが表示される場合もあります。また、実行時にブレークポイントを設定して結果を見ることもできます。あるいは、[Run As]→[Run On Server]を選択して同じように起動することも可能です。

WTPとM2プラグインの統合の確認

出力およびデバッグセッションの様子から、統合が成功しているかどうかを確認できます。

注意
 サーブレット、単純なクラス、あるいはJSPに変更を加えると、出力が大きく変化しますが、これはWTPがすべての変更をサーバーに送出しているからで す。この機能が必要ない場合は、いつでもサーバーを停止するか、前述のサーバービューでサーバーを削除してかまいません。Mavenゴールである packageを実行しても、この機能に一切影響はありません。実際、その他すべてのMavenゴールも同じように実行することが可能です。

その他の重要なポイント

M2Eclipseプラグインは便利なだけでなく、WTPと確実に統合させることもできます。ただし、そのためには、たとえ今回使ったようなごく簡単なWebアプリケーションプロジェクトの場合でも、いくつか設定が必要になります。

以下に、M2とWTPを統合する際に、この記事で解説したテクニックに加えて頭に入れておくべき重要なポイントを紹介します。

  1. .classpathファイルを保持する必要はありません。また、以前にMaven Eclipseプラグインで使用されていたeclipse:eclipseゴールを使用する必要もありません。pom.xmlは個々のjarを理解するた めの有効なメタデータとして使用されるため、.classpathの方が内容はかなり少なくなります。リポジトリから参照されるすべてのjar が.classpathに含まれるわけではありません。
  2. WTPとM2の統合において重要なのは、フォルダ構成やJavaのビルドパス設定、および.settings/org.eclipse.wst.common.componentファイルを理解することです。
  3. ワークスペース内の.metadata¥.plugins¥org.eclipse.wst.server.core¥フォルダを調べれば、配備 した実際のアプリケーションについてすべてを学ぶことができます。[Run on Server]の実行時にWebアプリケーションが実際にアセンブルされる場所を見つけるには、サブフォルダを調べることも必要になります。詳しく調べれ ば、アセンブルされるアプリケーションのWEB-INF/libフォルダ内に、servlet-api jarやJUnit jarが存在しないことがわかります。その理由は、servlet-api jarのscopeにはprovidedが、JUnit jarのscopeにはtestがそれぞれ設定されているからです。M2プラグインの以前のビルドでは、この件で問題が起きていました。
  4. Maven 2を使用する場合、MAVEN_HOMEなどの環境変数は、JAVA_HOME(およびそのパス)を除き一切必要ありません。また、JAVA_HOMEが必要なのはMaven 2をコマンドラインから実行する場合だけです。
  5. M2プラグインはMaven Embedderと呼ばれるMavenのコンポーネントを使用します。これはMaven バージョン2.1以降、コマンドラインインターフェース(CLI)で使用されています。
  6. Mavenを統合したまま非IDEベースで通常のビルドプロセスを実行する場合、Mavenをコマンドラインから使用する必要があります。 Mavenをコマンドラインから実行し、WebアプリケーションをTomcatに配備する場合は、Maven 2のマニュアルやMaven 2の書籍、『Better Builds with Maven』を参照してください。
PR

2010/08/17 (Tue.) Trackback() Comment(0) eclipse

Comments

名前
メールアドレス
URL
コメント
PASS  Vodafone絵文字 i-mode絵文字 Ezweb絵文字

Trackback

Trackback for this entry:

カレンダー

08 2024/09 10
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

リンク

カテゴリー

フリーエリア

最新CM

[08/09 VMAXON]

最新記事

最新TB

プロフィール

HN:
No Name Ninja
性別:
非公開

バーコード

RSS

ブログ内検索

アーカイブ

最古記事

アクセス解析

FX NEWS


-外国為替-

コガネモチ