t-fjkの日記

日々の気になったことを適当に。ネタは Windows/Android アプリとか。これからサーバサイド系の話が増えていく予感。

Mac + Eclipse + Tomcat でWEBアプリ開発のための準備3 - Jersey ライブラリの追加 -

作ろうと思っているのは REST な サービスなので
Java の RESTful の仕様 JAX-RS の実装である Jersey を使うことにする。

http://jersey.java.net/

ここのダウンロードページから、

  • jersey-server.jar
  • jersey-core.jar
  • asm.jar

Servlet で必要な

を落としてくる。

これらを WEB-INF/lib の中にコピーして、Build path に追加する。

f:id:t-fjk:20130103160834p:plain

さらに WEB-INF の中に web.xml というファイルを追加する。

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
	<display-name>jaxrsexample</display-name>
	<servlet>
		<servlet-name>Jersey</servlet-name>
		<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>Jersey</servlet-name>
		<url-pattern>/*</url-pattern>
	</servlet-mapping>
</web-app>

web.xml の中で jersey を使いますよってのを宣言する。

マッピングでは /* (すべてのURIに対して有効)にしたので
これでこのサーブレットでは jersey が動く。

ここにクラスを追加。

SampleService.java

package com.test.JerseySample;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("/Hello")
public class SampleService {
	@GET
	@Produces(MediaType.TEXT_PLAIN)
	public String sayHello() {
		return "HelloWorld";
	}
}

@path が @WebServlet に相当、

@GET が doGet メソッドの代わり、

@Produces でレスポンスのフォーマットを指定する。

#json や xml も同様に指定できるらしい。

Mac + Eclipse + Tomcat でWEBアプリ開発のための準備2 - Tomcat プロジェクトの作成 -

環境構築が終わったらさっそくプロジェクトを作る。

New → Project → Tomcat Project

f:id:t-fjk:20130103152316p:plain

とりあえず名前は HelloWorld。

するとこんな感じのディレクトリ構成が作られる。

f:id:t-fjk:20130103152610p:plain

WEB-INF/src・・ソースコードはここに置く。

WEB-INF・・・・jar(ライブラリ)など外部からアクセスしないものを置く。

work, bin, src・・とりあえず使わないので無視。

他のブログに web.xml の記述があるけど ServletAPI3.0 以降必須じゃなくなったらしく

自動では生成されないし、なくてもとりあえず大丈夫。

ではさっそくソースコードを追加。

HelloServlet.java を追加して下記のようなコードを書く。

f:id:t-fjk:20130103153240p:plain

@WebServlet(urlPatterns={"/HelloWorld"}) でこのクラスが実行されるパスを指定。

この場合、ブラウザで下記 URI にアクセスするとこのクラスが実行されることになる。

http://localhost:8080/HelloWorld/HelloWorld

doGet メソッド内にアクセスされた時の処理を書く。

これで Tomcat を起動してブラウザでアクセス。

Mac + Eclipse + Tomcat でWEBアプリ開発のための準備1 - 環境構築 -

環境:MAC OS X 10.8.2

  1. Tomcat のダウンロード

ここのダウンロードからcore版を落とす。tar.gz でも zip でも。

http://tomcat.apache.org/

ダウンロードしたものは適当なディレクトリに展開。

インストールのための作業というものはない。展開して終了。

TOMCAT_DIR/bin/startup.sh で起動、

ブラウザで http://localhost:8080 を開くと下記ページが見える。

f:id:t-fjk:20121231005039p:plain

TOMCAT_DIR/bin/shutdown.sh で終了できる

2.Eclipse のダウンロード

Android 開発のために Eclipse classic をダウンロードしていたのでとりあえずこのまま。

最初からの場合は Eclipse for Java EE developers がいいらしい。

  1. EclipseTomcat を連携

ここからダウンロード。

http://www.eclipsetotale.com/tomcatPlugin.html

ダウンロードしたものを ECLIPSE_DIR/plugins にコピー。

f:id:t-fjk:20121231005417p:plain

Eclipse を再起動したらこのアイコンが見えるはず。

Eclipse->Preference->TomcatTomcat のパスを指定。

3つのアイコンの左から順に「起動」、「停止」、「再起動」となる。

クラウドワークスを使って仕事を依頼してみた。

最近耳にするクラウドソーシングに興味があったので

クラウドワークスを使ってみました。

 

※クラウドソーシング・・狭義では不特定多数の人に業務を委託するという新しい雇用形態。ウェブサービスのトレンドの一つでもある。 - Wikipedia

 

クラウドワークスで仕事を依頼する流れを簡単にまとめると、

  1. 「○○円くらいでこんな仕事をやってくれませんか?」と募集をかける
  2. 興味がある人&募集をかけた案件をこなせる人からコンタクトがくる
  3. 依頼内容や報酬額について相談
  4. 合意できれば契約(募集した人が発注者、仕事を引き受けた人が受注者)
  5. クラウドワークスに仮払い(この時点では受注者には支払われない)
  6. 受注者と相談しながら仕事を進めてもらう
  7. 仕事が完了すれば(最初に依頼したものを納品してもらって、こちらで検収が完了)受注者に報酬が支払われる
という流れ。
 
契約が完了した際に支払われる報酬のうち、10%がクラウドワークスの取り分のよう。
 
 
今回発注した内容は趣味で作っているAndroidアプリのアイコンのデザイン。
アイドルグループ「ももいろクローバーZ」のブログリーダーなんですが、
自分でデザインしたアイコンがこちらでした。
 

f:id:t-fjk:20121201173012p:plain

 

見ていてせつなくなるくらい味気ないorz

「このアプリに合う素敵なアイコンをデザインしてください」と

依頼してできたデザインがこちら。

 

f:id:t-fjk:20121201173004p:plain

https://play.google.com/store/apps/details?id=com.tkcn.MCZFan

 

お値段もリーズナブルでこのクオリティ。

腕さえあれば会社で頼ることなくやっていける人がたくさん出てくる気もする。

 

最近「目指すべきはゼネラリストでなくスペシャリスト」という話を

よく耳にするけどそうなのかもなーと思った週末。

 

 

Macbook Pro Retina 上で eclipse をきれいに表示する

eclipse を選択して、

「パッケージの内容を表示」

→「Contents」

→ Info.plist をテキストエディタで開く

下記の末尾に挿入して保存。

<key>NSHighResolutionCapable</key> <true/>
 
アプリの情報を更新するために、eclipse をコピーして、複製。
もとの eclipse を削除、"eclipse コピー" を"eclipse" にリネームで完了。