LoginSignup
1
0

More than 5 years have passed since last update.

Maven Web Project の作成

Posted at

はじめに

テスト用にWeb Projectを作って、終わったら削除するのであればMavenである必要もないのですが、しばらく使うことを考慮してMavenを使えるようにします。

Eclipse Pluginの用意

New > Other > Maven > Maven Project でメニューが見つからなかったらプラグインが不足しているので、Installします。
Help > Install New Softwareで以下のように選択して導入します。
image.png

Maven Projectの作成

image.png

  • Projectの配置場所を指定します。こだわりがなければ、デフォルトを指定します。
  • Archetype に Liberty用の webapp-j2ee-liberty 違うアプリケーションサーバーを使っているような場合は、maven-arcehtype-webapp を選びます。
  • Project名は以下のようにしました。

GropuId : qiita.keniooi // ここのページ用という意味で、
ArtifactId : sampleWeb // プロジェクト名として、
Version : デフォルト
Package : sample.web

image.png

Finishを押せば出来上がります。

pom.xmlの編集

必要なライブラリをpom.xmlに記述して使えるようにします。ここではJSONのライブラリを追加します。

JSON In Java
このサイトで 20180130 をクリックして、以下の部分からコピーします。
image.png

コピーしたテキストを sampleWebプロジェクトにある pom.xml を開いて dependencies タグの中に追加します。

pom.xml
...
    <dependencies>
        <dependency>
            <groupId>net.wasdev.maven.tools.targets</groupId>
            <artifactId>liberty-target</artifactId>
            <version>RELEASE</version>
            <type>pom</type>
            <scope>provided</scope>
        </dependency>

    <!-- https://mvnrepository.com/artifact/org.json/json -->
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20180130</version>
        </dependency>
    </dependencies>
...

この設定をすると Maven Dependencies に追加されているのが確認できます。

image.png

サーブレット作成

JSON を POSTで受け取って処理するサーブレットを、作成していく予定なのですが、ここでは、サーブレット中でStringをJSONArray, JSONObject で処理するサーブレットを作ってみます。doPost()に書いてくので、テスト用の doGet()はそのまま doPost()を呼び出してあります。

TestServlet.java
@WebServlet("/TestServlet")
public class TestServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public TestServlet() {
        super();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request, response);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("application/json;charset=UTF-8");
        String json = "[{\"name\":\"Satoh Taro\",\"id\":\"123\",\"mail\":\"taro@sample.com\"},"
                + "{\"name\":\"Suzuki Hana\",\"id\":\"124\",\"mail\":\"hana@sample.com\"}]";
        JSONArray ja = new JSONArray(json);
        ArrayList<Person> list = new ArrayList<Person>();
        for(Object o : ja) {
            JSONObject jo =(JSONObject) o;
            Person p = new Person();
            p.setName(jo.getString("name"));
            p.setId(jo.getString("id"));
            p.setMail(jo.getString("mail"));
            list.add(p);
            System.out.println(p.getId() + "," + p.getName() + "," + p.getMail());
        }
        response.getWriter().println(json);

    }

}

class Person {
    String name;
    String id;
    String mail;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getMail() {
        return mail;
    }
    public void setMail(String mail) {
        this.mail = mail;
    }
}


このサーブレットにFirefoxでアクセスすると以下のようになり、
image.png

Libertyのログには、

stdout
123,Satoh Taro,taro@sample.com
124,Suzuki Hana,hana@sample.com

と出力されます。

参考

Eclipse+Maven という便利な開発環境をインストールからプロジェクト作成まで
【Java】JSONデータを標準API、Jackson、JSON in Javaで扱う方法

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0