8. 8
1.2.4. JSON データの準備(リクエストボディの書き込み)
out.write() の引数 json は、任意の JSON テキストがセットされている String 変数です。
1.2.5. コネクションを開く
接続することで POST リクエストが実行され、アウトプットストリームが生成されます。
アウトプットを読みこんで必要な処理を行い、最後に HTTP の接続を切断します。
// リクエストの body に JSON 文字列を書き込む
OutputStreamWriter out = new OutputStreamWriter(con.getOutputStream());
out.write(json);
out.flush();
out.close();
con.connect();
9. 9
1.2.6. レスポンスの読み出し
1.2.7. コネクションのクローズ
// 切断
if (con != null) {
con.disconnect();
}
int status = con.getResponseCode();
if (status == HttpURLConnection.HTTP_OK) {
// 通信に成功した
// テキストを取得する
final InputStream in = con.getInputStream();
String encoding = con.getContentEncoding();
if (null == encoding) {
encoding = "UTF-8";
}
final InputStreamReader inReader = new InputStreamReader(in, encoding);
final BufferedReader bufReader = new BufferedReader(inReader);
String line = null;
// 1 行ずつテキストを読み込む
while ((line = bufReader.readLine()) != null) {
result.append(line);
}
bufReader.close();
inReader.close();
in.close();
}
10. 10
2. Spring Boot
Spring Boot は、Spring Framework ベースの Java アプリケーションを簡易に行うことができる開
発フレームワークであり、MVC を基にした Spring MVC フレームワークの膨大なライブラリや複雑
な設定を簡単に開発することが出来るように作られています。
Spring Framework の開発グループが提供している統合開発環境 STS(Spring Tool Suite)を利用するこ
とでさらに開発を手軽に行うことができます。
STS は、Eclipse ベースの IDE で Spring Framework ベースのアプリケーションの開発のための機
能が豊富に用意されています。
Spring Boot では、設定ファイルの記述量の軽減、多数に定義された有用なアノテーションの利用、
Web コンテナ(デフォルトでは Tomcat)を含んだ jar ファイルの生成が出来るなど、コーディング負
荷を大幅に軽減することができるようになっています。
14. 14
5.3.3. 設定ファイル postgresql.conf の編集
postgresql.conf の listen_addresses に’*’を指定します。
5.3.4. 設定ファイル pg_hba.confi の編集
pg_hba.conf に 0.0.0.0 のエントリを追記します。
5.3.5. PostgreSQL の再起動
$ sudo vi /var/lib/pgsql/data/postgresql.conf
$ sudo vi /var/lib/pgsql/data/pg_hba.conf
$ sudo systemctl restart postgresql
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
...
…
host all all 0.0.0.0/0 md5
…
15. 15
5.4. テーブルの作成
PostgreSQL で使用するテーブルを作成します。(psql を使用する例)
$ sudo su - attendance
$ psql -d attendance
ALTER ROLE attendance WITH PASSWORD ‘uj9woRzLWS6h7VAh3iOI2GxfXlitbM3m’;
CREATE TABLE user_account(
id SERIAL
, user_id VARCHAR(64) PRIMARY KEY
, user_name VARCHAR(64)
, department VARCHAR(128)
);
CREATE TABLE user_summary(
id SERIAL
, user_id VARCHAR(64)
, year VARCHAR(8)
, month VARCHAR(8)
, total VARCHAR(8)
,PRIMARY KEY(user_id,year,month));
CREATE TABLE user_info(
id SERIAL
, user_id VARCHAR(64) PRIMARY KEY
, password VARCHAR(128)
, role VARCHAR(32)
, enabled INT
);
$ exit
psql は、【¥q】 で終了します。
16. 16
5.5. DB 認証の有効化設定
5.6. その他
zip ファイルを展開し、必要なファイルを取り出します
$ sudo vi /var/lib/pgsql/data/pg_hba.conf
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
...
$ sudo systemctl restart postgresql
$ cd ~
$ mkdir apps
$ unzip -q 20181004.zip
$ cd 20181004/history
$ mv * ~/apps/
$ cd ~
17. 17
5.7. Rablock サーバ接続の設定
$ cd apps
$ vi ip-history.properties
blockchain_ip.value=<Rablock サーバ 1 台目のプライベート IP>
…
login_user.value=<管理者のユーザ名>
login_password.value=<管理者のパスワード>