2015年8月16日日曜日

Java Web開発コーディング編 ステップ1 Hellow World

経緯とGoles

さてEclipseのインストール、WildFlyのインストールまで完了したら、いよいよプログラミングです。

今回は簡単なサーブレット、JSPプログラムを作っていこうと思いますが、せっかくなのでJava EE6で採用されたJAX-RSを利用して作成したいと思います。
また、今後のパッケージ追加が楽になるようにMavenプロジェクト化していきたいと思います。

JAX-RSのポイント


  1. 従来のサーブレットのようにWeb.xmlにURLマッピングの設定がアノテーションで可能となった。
  2. パラメータのバインドが簡単

ステップ1.動的Webプロジェクトを作成

File | New | Dynamic Web Prjectを選択します。

プロジェクトの初期設定を行っていきます。
Project name:プロジェクト名です。やる気が出るようにかっこいい名前をつけましょう
その他はそのままで、Next >をクリック

ソースを格納するパスと、ビルドしたクラスファイルなどを格納するフォルダを指定します。
ここでは、最終的にMavenプロジェクトにするので、src/main/javaにEdit...ボタンをクリックして変更してみたのですが、以下の画面のように変更できませんでした。
なんだか悔しいのですが、後で対処するとして、デフォルトのsrcのままNext>をクリックします。

次にContext rootを指定する画面ですが、WebページのURLのディレクトリになるので、こだわって名前をつけたほうが良いですが、練習なので、デフォルトのプロジェクト名と同じ設定のままFinishをクリックします。
気に入らなかった、ソースのディレクトリを変更します。
Project Explorerから作成したプロジェクトを選択して、右クリックから「Properties」をクリックします。
Propertiesから、「Java Build Path」を選択し、Sourceタブを選択します。
右中央にあるAdd Folderでsrc/main/javaを作成し、src/main/javaにチェックを入れてOKををクリック。

src/main/javaが追加されたのが確認できたら、OKをクリックする。
なぜか「ui WebContent」なんて変な名前になっているWebConetentもMaveにそって、src/main/webappに変更します。「ui WebContenet」フォルダをドラッグして、そのままsrc/mainしたに移動します。

そのまま、F2キーを押して名前をwebappに変更します。


Mavenプロジェクトにコンバートする。

プロジェクト右クリック | Configure | Convert to Maven Project
pom.xmlのDependenciesタブのDependenciesのAddボタンから以下の依存関係を追加する。


Group Id:org.jboss.spec.javax.ws.rs
Artifact Id:jboss-jaxrs-api_2.0_spec
Version:1.0.0.Final
Scope:proided

ちなみにpom.xmlの内容は以下のようになりました。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>HellowWorld</groupId>
  <artifactId>HellowWorld</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.3</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
   <dependency>
    <groupId>org.jboss.spec.javax.ws.rs</groupId>
    <artifactId>jboss-jaxrs-api_2.0_spec</artifactId>
    <version>1.0.0.Final</version>
    <scope>provided</scope>
   </dependency>
  </dependencies>
</project>





2015年8月14日金曜日

WildFly 9.0.1.Final のインストール

経緯とGoals


 仕事上、JavaEE環境によるWebサイトを構築する機会が多く、何度かJBoss Application Serverを利用した機会がありました。
 技術はもうそろそろいいかなと思いつつも、ある程度、動向は掴んでおく必要があるので、自宅のマシンにも開発環境を保持した状態にしたいため、久々にバージョンアップを行っていこうと思う。

今回の説明では、インストールするのはWildFlyの9.0.1.Finalを選択しました、GoalはEclipseとの連携までもって行きます。
途中発生した事象は、省略せず記述して行きます。

前提条件

  • Java SDKをインストールしていること(本説明では、バージョン1.8.0_51をインストールしています)
  • Eclipseのインストールが完了していること

WildFlyのダウンロード


上記サイトから、9.0.1Finalのダウンロード(ちなみに私が選択肢したのはJava EE7 & Web DistributionのZIP版)

インストール

とても簡単です。ZIPを好きなところに解凍してください。
移行WildFlyを展開したフォルダを$WFLY_HOMEと表現します。

動作確認

コマンドプロンプトから、起動してみますが、Eclipseからしか起動する気がない人はここは読み飛ばしてください。

以下のファイルを実行してください。
$WFLY_HOME\bin\standalone.bat
  Started in XXXXXmsというキーワードが出てくると起動完了です。

起動したサイトにアクセスしてみます。
ブラウザを起動して、「http://localhost:8080/」にアクセスして、以下のような画面が表示されると起動OKです。


確認が終わったら停止ですが。
起動したコマンドプロンプトからCtrl+Cで、強制終了させてもいいのですが、技術者なので、正規の停止方法も念のため。

$WFLY_HOME\bin\jboss-cli.bat -c --command=":shutdown"

Eclipseからの起動方法

Eclipseを起動してください。
Eclipseのインストール、起動はこちらを参照してください。
  1. Window |  Show View | Other...を選択してShow Viewダイアログを表示させ、Server | Serversを選択してOKをクリック。
  2. Serversタブから「No servers are available.Click this link ....」を選択
  3. New Serverダイアログを開くとWild Flyが無いので、「Download additional server adapters」をクリック
  4. Install New Extenstionから「JBoss AS, WildFly, & EAP Serer Tools」を選択する。
  5. Install New Extension | Review Licensesの「I accept the terms of the license agreement」を選択して「Finish」をクリックする。


    以下のメッセージが表示されるが、かまわずOKをクリック。

    するとインストールが開始されます。
  6. (後で確認)しばらくすると以下の警告が表示されました。

    なになに。後で調べるために、とりあえずDetailsで確認

    なんか、いっぱい出てきたので、中身もとりあえずコピッておこう。
    ※ おそらく、Eclipse上にインストールされているプラグインに既に含まれているという意味なので、影響はないかと思います。(WildFly起動までは特に何も影響はありませんでした)
    Warning: You are installing software that contains unsigned content. The authenticity or validity of this software cannot be established. Do you want to continue with the installation?
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.archives.core_3.6.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\features\org.jboss.ide.eclipse.archives.feature_3.6.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.archives.jdt.integration_3.6.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.archives.ui_3.6.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.archives.webtools_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\features\org.jboss.ide.eclipse.as.archives.integration.feature_3.1.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.classpath.core_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.classpath.ui_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.core_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.dmr_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.doc.user_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\features\org.jboss.ide.eclipse.as.feature_3.1.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.jmx.integration_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\features\org.jboss.ide.eclipse.as.jmx.integration.feature_3.1.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.management.as7_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.management.core_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.management.wildfly9_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.rse.core_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.rse.ui_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\features\org.jboss.ide.eclipse.as.server.rse.integration.feature_3.1.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\features\org.jboss.ide.eclipse.as.serverAdapter.wtp.feature_3.1.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.ui_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.ui.mbeans_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.wtp.core_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.wtp.ui_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.archives.scanner_3.6.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\features\org.jboss.tools.archives.scanner.feature_3.6.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\plugins\org.jboss.tools.as.catalog_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.as.runtimes.integration_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.common.jdt.debug_3.7.0.Beta2-v20150724-1456-B25.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.foundation.checkup_1.2.0.Beta2-v20150724-1456-B25.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.foundation.core_1.2.0.Beta2-v20150724-1456-B25.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.foundation.ui_1.2.0.Beta2-v20150724-1456-B25.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.jmx.core_1.7.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\features\org.jboss.tools.jmx.feature_1.7.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\plugins\org.jboss.tools.jmx.jvmmonitor.core_1.7.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.jmx.jvmmonitor.tools_1.7.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.jmx.jvmmonitor.ui_1.7.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.jmx.local_1.7.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.jmx.ui_1.7.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.runtime.core_3.1.0.Beta2-v20150724-1456-B25.jar
      C:\usr\bin\eclipse\features\org.jboss.tools.runtime.core.feature_3.1.0.Beta2-v20150724-1456-B25
      C:\usr\bin\eclipse\plugins\org.jboss.tools.runtime.ui_3.1.0.Beta2-v20150724-1456-B25.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.stacks.core_1.2.0.Beta2-v20150724-1456-B25.jar
      C:\usr\bin\eclipse\features\org.jboss.tools.stacks.core.feature_1.2.0.Beta2-v20150724-1456-B25
      C:\usr\bin\eclipse\plugins\org.jboss.tools.usage_2.1.0.Beta2-v20150724-1456-B25.jar
    
    とりえず、OKを押して継続すると、無事完了したので、YesをクリックしてEclipseを再起動
  7. JBoss Tools UsageダイアログでYesをクリックして、もう一度「No servers are available.Click this link ....」を選択





    すると、やっと、WildFly 9.x(Experimental)が表示されます。

    さっそく、選択して起動してみましょう。
  8. ここはそのまま、Next>をクリック



    Home Directoryに、$WFLY_HOMEを指定する。
    ダイアログの上部に、JDKの警告が表示されている場合は、JDKのパスを登録します。
    ダイアログ中央右のInstalled JREsボタンをクリックする。

    画面上部の右、Add..ボタンをクリック

    Standard VMを選択したまま、Next>をクリック

    FinishをクリックするとJDK1.8.0_XXが追加されたことが確認できます。
    チェックボックスを選択して、OKボタンをクリックする。
  9. New Server画面で、Alternate JREのオプションを選択して、8.で追加したJDKを選択すると、警告が消えたことが確認できる。

    ダイアログ上部の、警告メッセージが消えます。Finishボタンを押すと、ServersタブにWildFlyが追加され、設定の完了です。

EclipseからWildFlyを起動してみよう

  1. ServersタブからWildFly 9.Xを選択して、右クリックし、ショートカットメニューからStartをクリックする。
  2. 自動的にConsoleタブに切り替わりますので、Started in XXXXmsと表示されると、起動完了です。
  3. ブラウザを起動して、「http://localhost:8080/」にアクセスして、以下のような画面が表示されると起動OKです。

次のブログではサンプルプログラムを作成して、実際にプログラムをデプロイしてみます。







Eclipse Mars R Packagesインストールと各種設定類


前提条件

  • JDKをインストールしていること。(JDKの入手と、インストールは割愛)
  • 環境変数、JAVA_HOME、PATHに%JAVA_HOME%\binを通しておくこと
    ちなみに、私の設定はこんな感じです。
ポイントは2つです。
  1. ユーザ環境変数に設定することによって、個別に設定した内容のみをここに記述することが出来るため、見やすいのと不要になった際に、消しやすい。
  2. Pathに追加する場合は%JAVA_HOME%\binのように記載しておけば、バージョンアップの際にJAVA_HOMEのみ書きかえれば良くなる。

Eclipseのダウンロード

 以下のサイトから、ダウンロード&お好きなところにzipファイルを解凍してください。


Eclipseの実行

eclipse.exeが解凍したフォルダ直下にありますので、これを実行するとEclipseが起動します。
細かい使い方、また今度です。

快適にEclipseを利用するために

日本語化パッチ

 個人的には英語のままで利用(英語は著しく苦手なくせして)するので、特に利用しませんが以下のサイトからダウンロードできます)
http://mergedoc.osdn.jp/
 よく、迷うのですが、日本語化パッチのみをダウンロードする場合は、以下の場所からダウンロードしてください。


 日本語化の具体的な方法は、上記ファイルの解凍したフォルダにreadme\readme_pleades.txtがありますので、この内容を読めば簡単にインストールできます。

Eclipseが利用するメモリの調整

デフォルトのままだと、使ってるうちに、Eclipseのメモリが不足してきます。
 Eclipseをインストールしたフォルダ配下に「eclipse.ini」ファイルがありますので、これを適当なテキストエディタで編集します。
-startup
plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.300.v20150602-1417
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.7
-Xms256m   ⇒ 起動時の最小メモリです。自分の環境に合わせてカスタマイズ
-Xmx1024m  ⇒ 最大メモリです。自分の環境に合わせてカスタマイズ
端末のメモリ以上に増やすと、ディスクのスワップが増加して逆に遅くなるので、適切な数字は自分で模索してください。

ヒープステータスを表示

EclipseのメインメニューからWindow(W)-Preferences(P)を選択するとPreferencesダイアログが表示されます。



 ダイアログの左側のツリーからGeneralを選択すると、右側にShow Heap statusがあるのでこれのチェックをつけます。

Eclipseのウィンドウの下のステータス以下の画面が表示されます。


ゴミ箱のアイコンを押すと随時、ガベージコレクションが流れるといった感じです。
どれほどの効果があるかは疑問ですが、気休めにどうぞs

Cygwinインストール

Cygwinとは?

Windows環境でUnixコマンドを利用するためのソフトウェアです。
過去、Unix環境(Linux含む)での開発が多く、自宅のWindows端末でも利用したいと考えてインストールしました。

入手先


自分の環境に合わせて、32bitもしくは64bitのインストーラをダウンロードしてください。

インストール開始

 ファイル名は環境によってファイルが異なるのでファイル名は書きませんが、ダウンロードしたファイルを実行します。ちなみにWindowsが警告を発するのですがアプリケーションをインストールする際のいつものやつなので割愛します。

Cygwin Setup

 次へ(N)をクリック

Cygwin Setup - Choose Installation Type

Install from Internetのまま次へ(N)をクリック

Cygwin Setup - Choose Installation Directory


Root Directory:Cygwinをインストールするディレクトリです。好みに合わせて変更してもOK
Install For:Cygwinを利用するユーザをこの端末をりようするすべてのユーザ(All Users)もしくは自分だけ(Just Me)かを指定します。
お好みで変更後、次へ(N)をクリック

Cygwin Setup - Select local Package Directory




特にこだわらず、このまま、次へ(N)をクリック

Cygwin Setup - Select Connection Type



ご自分のネット環境に合わせて設定して、次へ(N)をクリック

Cygwin Setup - Choose Download Site(s)

 
どれが、いいのか分からないので、とりあえず無難にftpのサイトを選択

Cygwin Setup - Select Packages


  上記画面が表示されますが、しばらく待ちましょう。
 しばらくすると上記画面が表示されます。
 ここで必要なパッケージを選んで、インストールしておいても良いのですが、きっと後でも追加できるので、このまま次へ(N)をクリック

Cygwin Setup - Resolving Dependencies


 このまま、次へ(N)をクリック

XX% - Cygwin Setup

 かなり、時間がかかるので、しばらく放置しましょう。(私は30分くらい待ったかも)

Cygwin Setup - Installation Status and Create Icons


 お疲れ様でした。インストール完了です。

動作確認

スタートメニューから、Cygwin - Cygwin Terminalをクリックすると以下のような画面が表示される。

ここで、lsでもpwdでも好きなコマンドを実行して動作確認してください。