スレッドで戻り値を取得する方法

ほしがき2017/10/15(日) - 11:36 に投稿

Javaでスレッドで処理する方法はいくつかあります。

Threadを継承、Runnableを実装などなど。

これらの方法は戻り値を取得できないため、実装する際は楽ではあるけども中々不便です。

その処理成功したの?失敗したの?わからんぞ!と。

やりっぱなしでOKなものであれば問題ないですけどね。

今回は戻り値を取得する方法をメモります。

ついでに立ち上げるスレッド数の指定も行います。

 

実行環境


  • Windows10 Pro
  • eclipse 4.7
  • java8

 

使用するクラス


使用するのは以下のクラスです。

Callableのcallメソッドを実装した処理クラスをExecutorsServiceで実行していきます。

タグ

eclipseで動的Webプロジェクト作成(Servlet)

ほしがき2017/10/06(金) - 14:28 に投稿

 

つい最近ネットに繋がらない環境でシミュレータっぽいものを作成する機会がありました。

ネットに繋がればSpring等のフレームワークを使いたいところでしたが、不幸にもつながりません。

断絶されています。

仕方がないので普通にノーマルに嫌々やりました。

滅多に素のServletでやらないので一応念のため今後使わないことを祈りつつメモします。

なお、今回は特にJSP等のページの作成は行いません。

単純にアクセスしてHTTPステータスを自由に変更できてとか何らかの文字列を返却するのみのシミュレータでしたので。

 

  • 実行環境


  1. Windows 10 Pro
  2. Eclipse 4.7
  3. Java8

 

  • プロジェクト作成


パッケージエクスプローラで右クリック→新規→その他→Web→動的Webプロジェクト

以下のように設定します。

タグ

Spring Rest(MVC)でファイルダウンロード

ほしがき2017/10/01(日) - 16:15 に投稿

Spring Restでファイルのダウンロードをします。

Restでもないか・・・。

  1. ファイル読み込み
  2. バイト配列に変換
  3. レスポンスのOutputStreamに設定

ContentLengthとかは設定しましょうね。

残り何%とかでないのでね。

タグ

SpringFramework 例外処理のハンドリングと共通化

ほしがき2017/09/23(土) - 10:19 に投稿

コントローラクラスの例外処理を共通化します。

例外のハンドルは@ExceptionHandlerを付与したメソッドで行います。

これを使用することでtry-catchも少しだけ減らすことができ、コントローラクラスに複数のAPIを用意した場合に

エラー処理を共通的に記述することができます。

 

まずは簡単なソースを。

 

//-->

 

タグ

Spring4でDB接続してSQL実行(JDBCTemplate)

ほしがき2017/09/17(日) - 11:32 に投稿

 

Spring Framework4でDB接続&SQL実行を行います。

Springって色々やり方あるし難しいです・・・。

自分なりのやり方を見つけてください。

今までの記事

上記の記事で作成したプロジェクトを使います。

コネクションプールはCommons DBCP2を使用します。

やることは

Spring Rest + HTMLでWebアプリケーション構築

ほしがき2017/09/10(日) - 10:19 に投稿

Spring RestとHTMLでWebページの作成を行う方法です。

HTML(+ JavaScript)とサーバの通信はJSONでやり取りします。

この構成で行うメリットはHTML(+JavaScript, CSS)とサーバ側で完全に分離して作業できることでしょうか。

サーバ側で用意するAPIさえ決まれば、デザイン側はデータを取得して解析、HTMLに反映となります。

サーバ側はリクエストに対するレスポンスデータの作成等の処理を書けばいいわけです。

ちなみには私は両方やらされました。

分けるメリットなし!!

では行きます。

 

元となるプロジェクトは「SpringでRestfulなプロジェクトの作り方」で作成したものです。

環境

Spring Framework 4.3.10.RELEASE

Java 8

jackson 2.9.0

tomcat 9.0

eclipse 4.7 Oxygen

タグ

SpringでRestfulなプロジェクトの作り方

ほしがき2017/09/09(土) - 15:28 に投稿

Spring Frameworkを使ってRestFulなプロジェクトを作ります。

@RestControllerの使い方とかはよく見かけるんだけどプロジェクトの作り方とか探すの大変だったので残します。

環境

Spring Framework 4.3.10.RELEASE

Java 8

jackson 2.9.0

tomcat 9.0

eclipse 4.7 Oxygen

 

  • eclipseにSTS(Spring Tool Suite)インストール

ヘルプ→Eclipseマーケットプレイス

「spring sts」で検索し、画像の1番上のやつインストールします。

指示に従ってインストールして、再起動を求められるので再起動します。

タグ

Spring RestでNestedServletExceptionが出るときの対処

ほしがき2017/09/09(土) - 14:41 に投稿

SpringでRestControllerを使ったプロジェクトを作成した時に最初にはまりそうなのでメモ

Spring: 4.3.10

Java: 1.8

tomcat: 9.0

以下のようなエラーが出た場合です。

StackOverflow:https://stackoverflow.com/questions/32905917/how-to-return-json-data-from-spring-controller-using-responsebody

 

タグ

Drupalの手動アップデート

ほしがき2017/09/03(日) - 15:08 に投稿

Drupalの手動アップデートの手順メモです。

Drupalのバージョンは8.3.2から8.3.7にしました。

参考:http://techmemo.biz/drupal/drupal7-upgrade-efficient/

 

とりあえずメンテナンスモードにします。

管理画面の[環境設定]→[メンテナンスモード]から「サイトをメンテナンスモードにする」にチェックを入れ、保存

 

Drupa公式から最新のcoreをダウンロード

ダウンロードしたファイルを解凍して以下のフォルダを削除

  • modules
  • profiles
  • sites
  • themes

削除したら再度圧縮してサーバにアップロード

Connection#isClosedでtrueを返すタイミング

ほしがき2017/09/03(日) - 10:30 に投稿

お試し環境

  • Java8
  • PostgreSQL9.6
  • Windows10 Pro

 

Connection#isClosedがtrueになるタイミングが気になった。

CommonsDBCP使ってコネクションプールし、DBサーバ再起動した場合に

プールしているコネクションはもう使えない。

この時、Connection#isClosedはtrue返すよね?っていうのを試した。

まず、Javadocでは以下のように記載されている。

Connection#isClosed

タグ