インストール
公式サイトからプラットフォームに合ったものをダウンロード。
解凍して任意のディレクトリに配置。
MongoDB サーバの起動
{MongoDB インストールディレクトリ}/bin/mongod で起動する。
…が、以下のようなエラーが。
Sun Jan 08 22:23:56 [initandlisten] exception in initAndListen: 10296 dbpath (/data/db) does not exist, terminating
データディレクトリ(デフォルトではルート直下の/data/db)が無いと言われているので、
ディレクトリを作成するか起動時のオプションでデータディレクトリを指定する必要がある。
{インストールディレクトリ}/data/db を作成し、
カレントディレクトリ {インストールディレクトリ}/bin/ から相対指定してみることにする。
mongod --dbpath=../data/db
無事起動成功。
ライブラリのダウンロード
Java1.6 からは JAX-WS リファレンス実装が rt.jar に含まれたため、JRE だけで使用可能。
最新バージョンを使用したい場合はJAX-WSサイトからダウンロードできる。
Java 1.6.0_29 でバージョンを確認したところ、
System.out.println(com.sun.xml.internal.ws.util.RuntimeVersion.VERSION);
「JAX-WS RI 2.1.6 in JDK 6」だった。
本日時点でダウンロードできる最新は2.2.5。
ライブラリのダウンロード
Apache Axis2 サイトから axis2-1.6.1-bin をダウンロードする。
スタブを使用して Web サービス実行
ダウンロードしたライブラリには bin/wsdl2java.bat, bin/wsdl2java.sh が同梱されているため、
java コマンドを直接叩く必要がない。
uri のみ指定するとデータバインディングクラスを全てサブクラスに持つ1クラスが巨大な Stub が作成されるので、
u オプションをつけてバインディングクラスを別に生成したほうがいい。
接続先には前回のエントリで作成したものを使用する。
wsdl2java.bat -uri http://localhost:49175/WS/ZaneliWS.asmx?WSDL -u
Web サービスを用意する(ASP.NET)
今回は Java のライブラリである Apache Axis を利用してクライアントを作成するため、
せっかくなので繋ぎ先は Java 以外で。
Visual Studio 2010 で[新しいプロジェクト] -> [ASP.NET Web アプリケーション]を作成し、
ソリューション エクスプローラーで適当なディレクトリを作成し右クリック -> [追加] -> [新しい項目] -> [Web サービス]を選択。
文字列と数値を受け取って文字列を返すWebサービスを作成。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace WebServices.WS
{
 [WebService(Namespace = "http://www.zaneli.com/")]
 [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
 [System.ComponentModel.ToolboxItem(false)]
 public class ZaneliWS : System.Web.Services.WebService
 {
  [WebMethod(Description="テスト用Webサービスオペレーション")]
  public string GetMessage(String text, int num)
  {
   return "text=" + text + ", num=" + num;
  }
 }
}
アプリケーションの登録
My Appsの[Create an App]を押下する。
「App Name」と「Description」を入力し、Access level を選択する。
「App filder」と「Full Dropbox」があるので今回は Full を選択した。
アプリのインフォメーション画面に遷移するので、App key と App secret を控えておこう。
SDK の入手
Development Kits and Documentationからダウンロードする。
iOS, Android, Python, Ruby, Java があるけれど、Java のチュートリアルはあるようで無い。
(Tutorial のリンクは Android のそれに遷移する)
仕方がないので Javadoc 片手に試行錯誤してみよう。
ひょんなことからエンコードを指定して Syslog にログ出力をしたいと思い立ったものの、
どうも log4j では対応していないらしく、OS デフォルトエンコードでしか出力できないらしい。
変更個所は少ないのでちょこっと書き換えてみた。
rsyslog の設定
CentOS 6.0 を使って検証してみようとしたところ、デフォでインストールされているのは rsyslog だった。
rsyslog を扱うのは初めてだったので以下設定メモ。
まずは設定ファイル /etc/rsyslog.conf を編集。
デフォルトでは外部からのログを受け付けていないので、以下のコメントアウトされている箇所を外す。
# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
適当にファシリティとテンプレートを追加。
$template testtemplate,"%timegenerated%,%msg%\n"
local0.* /var/log/local0.log;testtemplate
設定ファイルを編集したのでservice rsyslog reloadでリロードする。
logger -p local0.info "test"のようにテストしてみる。
/var/log/local0.log に「test」と出力されていることを確認。設定はできているようだ。
ちょこちょこ調べたことの備忘。
Consumer Key, Consumer Secretの入手
http://www.evernote.com/about/developer/api/にアクセスし、
「Request an API Key」フォームに必要事項記入の上送信。
しばらくすると(1~2日かかる様子)記入したメールアドレスにキーの組み合わせが送信されてくる。
このキーはサンドボックス用らしく、これでは本物の Evernote へアクセスすることはできない。
まずお試しでサンドボックスでAPIを使ってみて、その後再度申請すれば本サービスへアクセスできるキーがもらえる、
という流れらしい。

Copyright© 2011-2021 Shunsuke Otani All Right Reserved .