タグ

ブックマーク / shinsan.hatenablog.jp (28)

  • 超高速に初めるJAX-RS + Guice - しんさんの出張所 はてなブログ編

    JAX-RSの起動は前回さくっと終わらせた。 http://d.hatena.ne.jp/shin/20161204/p1 あとはロジック回り。今回はGoogle Guiceを使う。CDIを使うならWeldSEは使わずpayara microなどEEコンテナをちゃんと立ち上げたほうが良い。 Guiceとのコネクタは用意されているのでそれを使おう。 依存ライブラリの追加 前回の状態からさらに依存関係に以下の1行を追加する compile "org.glassfish.hk2:guice-bridge:2.5+" おわり。JAX-RSの依存も前回の1行だけだったのであわせて2行だけ。 やること 前回作ったCalcというリソースクラスにFormatLogicという文字列を返すクラスのシングルトンのインスタンスを注入する。 そのクラスを使い、結果を返す。 プログラム 今回もソースコード一つ。 im

    超高速に初めるJAX-RS + Guice - しんさんの出張所 はてなブログ編
  • 超高速に初めるJAX-RS - しんさんの出張所 はてなブログ編

    ソースコードは一つだけ。設定ファイルは1行追加するだけ。それですぐにJAX-RSを動かせる。 JAX-RSはわからなくても大丈夫。JavaSEなのですぐ確認できる。 GradleまたはMaven環境さえあればよいのでNetBeansに限らないけど一応NetBeansで説明していく。 Gradleまたはmavenの環境を用意する NetBeansであればGradleはプラグインを入れる必要がある。今回はGradleでやってみる。 メニューの「ツール」−「プラグイン」から入れる。 プロジェクトの新規作成 メニューから「ファイル」−「新規プロジェクト」を選ぶ。 カテゴリで「Gradle」を選びプロジェクトは「Single Gradle Project」を選ぶ。 依存ライブラリの追加 プロジェクトツリーからBuilde Scripts/Project/build.gradleを開く。 以下の部分が

    超高速に初めるJAX-RS - しんさんの出張所 はてなブログ編
  • JavaEE 8/MVC 1.0 RI Ozark + Handlebarsを試す - しんさんの出張所 はてなブログ編

    久々にだれでも気軽に使えそうなJavaEEのパーツが出てきたようなので、自分で動かしてみる。 まずJAX-RSを動かす とりあえずMVC1.0のセットアップなどは以下を参照。 http://masatoshitada.hatenadiary.jp/entry/2015/03/31/220509 まずはベースとなるJAX-RS部分がちゃんと動くか動作確認する。 package com.shingames.mvc1.ozarchbs; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @Path("hellojaxrs") public class HelloJaxrs { //通常のJAX-RS @GET @Produ

    JavaEE 8/MVC 1.0 RI Ozark + Handlebarsを試す - しんさんの出張所 はてなブログ編
  • Spring と JAX-RSを組み合わせる - しんさんの出張所 はてなブログ編

    キクタローさんから「Javaエンジニア養成読」というをいただきました。ありがとうございます。 というわけで、JavaEEがらみ、キクタローさんのエントリに乗っかる形の記事を書いてみました。 実はJavaEE方面のエントリを書くのは今年初めて、去年の夏以来だったりします。かなり間が空きましたね。時間がほしいです。誰か仕事手伝ってください。バイトとかいないかねー。 この間にリリースされたものにSpringFramework 4があります。もうすぐでてから1年で、そろそろ使っても問題ないころ合いだと思います。 また、政治面の問題でSpringを使わなければならないというところもかなり多いと思います。JavaEEの技術を使ってみたいと思ってもフルの機能に乗っかるわけにはいかない状況もあるでしょう。 しかし、JavaEEを構成する要素の中でも、もっとも人気の高いJAX-RSならば組み合わせて利用

    Spring と JAX-RSを組み合わせる - しんさんの出張所 はてなブログ編
  • JavaEE 7 JPA 2.1の新機能ストアドプロシージャ - しんさんの出張所 はてなブログ編

    JPA 2.1ではついにストアドプロシージャも標準で使えるようになった。 今までは実装依存のコードで使ってはいたが。 今回もストアドを簡単にJavaのコードで作れるDerbyのストアドで。ストアドになるともう組み込みモードだと意味がないレベルだけど。 引数に文字列、戻り値に文字列を渡すストアドの設定をする。コード全部見たほうが早いと思うので一気にのせる。Derbyのoutなどは配列を使っているのが注意する点か。引数で渡して戻り値を複数返す方法ということで割り切り方としてはまぁいいのだろう。 public class DerbyEmbedded3 { //ストアドの実装 public static void hello(String in1, String[] out1) { out1[0] = "Hello " + in1; } //main実行 public static void ma

    JavaEE 7 JPA 2.1の新機能ストアドプロシージャ - しんさんの出張所 はてなブログ編
  • JavaEE 7 JPA 2.1の新機能 FUNCTION 句 - しんさんの出張所 はてなブログ編

    JPQLなどJPAの機能ではカバーできない、RDB固有の機能として関数がある。countやsumなど基的なものはあるが、それから離れるとダメだ。かといって無駄に関数を増やしたところでユーザー定義関数などもありとてもカバーしきれない。 というわけで、JPA2.1ではついにユーザー定義を含めて関数を自由に呼び出せるようになった。 Entity @Entity @Access(AccessType.FIELD) public class JoinEntity implements Serializable { @Id public int id; public String name; public JoinEntity() { } public JoinEntity(int id, String name) { this.id = id; this.name = name; } } idとn

    JavaEE 7 JPA 2.1の新機能 FUNCTION 句 - しんさんの出張所 はてなブログ編
  • RDBでXMLを扱う - しんさんの出張所 はてなブログ編

    http://kikutaro777.hatenablog.com/entry/2013/07/05/211817 RDBのXMLがいまいちわからないということなのでかるく書いてみる。 使うのはDerby。JDBCのリファレンスとして、JavaDBという名前で利用されているため。ちなみにJava6のJDBC4にいち早く対応はしたものの、Java6のSQLXMLは使えない。文字列を利用して転送する。 生JDBCでもいいけど、たるいのでDB接続情報はpersistence.xmlに記述。JPAでNativeQueryのみを使う。Entityは作らない。 まぁいわゆるJPAらしさはゼロ。Javaである必要性も低いレベル。 テーブルはint型のidとXML型のxml_valueという項目をもつ。 public static void main(String[] args) throws SQLEx

    RDBでXMLを扱う - しんさんの出張所 はてなブログ編
  • JavaEE 7 HTML5に対応したJSF 2.2 - しんさんの出張所 はてなブログ編

    JSF 2.2はHTML5に対応したのもポイントになっています。 というか、柔軟性はかなり意識してきていますね。 HTML5ではフォーカスの設定やプレースホルダ、カスタムデータ属性など属性による設定が柔軟に使える必要があります。 そして今後もおそらく属性はどんどん追加されていきますが、そのすべての設定をJSFがサポートするのは骨が折れます。というか、きりがありません。 というわけで、JSF2.2は属性を簡単に設定できるようになりました。 まず基 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:jsf="http://xmlns.jcp.org/jsf" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:p="http:

    JavaEE 7 HTML5に対応したJSF 2.2 - しんさんの出張所 はてなブログ編
  • JavaEE 7 Servlet 3.1の新機能 - しんさんの出張所 はてなブログ編

    Servlet 3.1は非同期などまぁとっつきが悪いのが目玉です。 しかし、お手軽かつシンプルによくなったものが追加されています。 それはPartです。 え?Part自体はすでにあるって? http://d.hatena.ne.jp/shin/20090723/p1 たしかに、ちょうど4年くらい前に紹介してますね。もう4年もたってるんですね。そりゃJavaEE 6はかれた旧世代の環境だわー。誰もが知っていて当たり前の技術だわー。 ですが、当時からパワーアップしているのですよ、こいつも! サーブレットかくのたるいので、UPLOADが対応したJSF 2.2を使います。すごいらくちんにかけますよ。 テンプレート 昨日のエントリをすこしいだけいじります。今回は先にテンプレートから。 <?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUB

    JavaEE 7 Servlet 3.1の新機能 - しんさんの出張所 はてなブログ編
  • JavaEE 7 JSF 2.2のすげーいいところ - しんさんの出張所 はてなブログ編

    まずはJSF2.2のすげーいいところを軽く書く。簡単で効果が大きいもの。 解説用ということで前提となる知識を減らすためにCDIもなにも使わない。AJAXもなにもつかわない。 マネージドビーン package jsf; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import javax.faces.bean.ViewScoped; @ManagedBean @ViewScoped public class Hoge { String text = "初期値"; public String action1(){ text = "action1"; return null; } public String action2(){ text = "action2"; return null;

    JavaEE 7 JSF 2.2のすげーいいところ - しんさんの出張所 はてなブログ編
  • JavaEE 7 超入門 8クリックでEE7Webアプリ?起動確認とか - しんさんの出張所 はてなブログ編

    なにが「超入門」かというとおいらにとって超入門。 まずはJavEE7なアプリを起動させることを今回の目標にする。 サンプルは過去の例を見ても大げさすぎて、でかすぎて把握しにくいので無視で。 適当にフィーリングで行き当たりばったりでいい。JavaEEとはそういう感じのゆるい誰でもお気楽極楽に触れるものですよ。肩ひじ張るようなものではない。 しかし、「NetBeansタグ」すげー久々だのう。 ダウンロード ダウンロードはここから。 https://netbeans.org/downloads/ JavaEEをえらぶ。このへん。 インストール ダブルクリックでインストーラ起動。適当に押していけばOK。Glassfish 4もついてくるのでチェックを外さないように。 別途ダウンロードする必要もないのでインストーラ版がおすすめ。ダウンロードもIDE上で完成するので別にいいけど。 とにかくすぐに確認が

    JavaEE 7 超入門 8クリックでEE7Webアプリ?起動確認とか - しんさんの出張所 はてなブログ編
  • JavaでさくさくWebアプリ開発 - しんさんの出張所 はてなブログ編

    かなり久々の技術エントリ。 運用はお堅い重いサーバーを使ったとしても開発は軽いほうがいい。当たり前ですね。 というわけでさくさく開発する方法を書いてみる。DIコンテナはCDIやGuice、Springなど好きなものでよいが、今回は省く。軽いこともあって開発中はGuiceを使うことをお勧めしたい。注入は@Injectを使うため、開発中と運用中でコードが変わるってのは少ないはずだ。 まずはJAX-RS まず、アクションベースのWebアプリはJAX-RSを使うこと。これが基。サーブレットAPIを使わずに開発することについては今までも書いてきた。サーブレットAPIを触らないことにより開発効率とテストのしやすさを両立できる。 こんな感じ。 @Path("/") public class Hoge { @GET @Path("add/{a}/{b}") public Response add(@Pa

    JavaでさくさくWebアプリ開発 - しんさんの出張所 はてなブログ編
  • スマホのGPUの基礎知識 - しんさんの出張所 はてなブログ編

    今度はGPU。 現在ARM搭載チップのGPUとして使われているのは主に以下の3つ。 PowerVR GeForce Mali Adreno PowerVR 古はPC用外付け3DアクセラレータでVoodooと争っていた。Voodooを作っていた会社3dfxはnVidiaに吸収。当時ゲームを重視したかったらVoodooシリーズを使うのは割と当たり前でPowerVRは結構後れを取っていた。それでもVoodooはDirectXやOpenGLといった標準APIがスタンダードになると消えていった。 PowerVRはドリームキャストなどに採用はされたが、基日陰ものだった。それが今ではスマホブームでかなりの影響をもつまでに。 iOSとKindlefireではこのGPUしか利用していない。そのため、チューニングが容易。 サムスンのExynosシリーズの一部、TI OMAPシリーズで使われている。Andro

    スマホのGPUの基礎知識 - しんさんの出張所 はてなブログ編
  • スマホのCPUの基礎知識 - しんさんの出張所 はてなブログ編

    スマホでつかわれているCPUのほとんどはARMというアーキテクチャ。 性能よりも消費電力を重視しているチップで、スマホ以外では3DO、ゲームボーイアドバンス、DS、3DS、PS VITAで採用されている。 現在スマホで見ることのできるコアアーキテクチャは主に以下のもの。 Cortex-A8 Cortex-A9 Cortex-A15 Scorpion Krait ScorpionとKraitはQualcommのSnapdragonに使われている専用コア。そのほかはほぼすべてCortex系と大きく2つに分かれる。 設計が違うので得意な計算とかは異なるため、特定のマイクロベンチマークでは片方がやけに数値が出たりするので注意。PCで言えばIntelとAMDCPUみたいなもの。ただし、あちらはほぼIntelが圧倒的に有利という感じだが。 Cortex-A8 シングルコアで今となっては完全に旧世代。

    スマホのCPUの基礎知識 - しんさんの出張所 はてなブログ編
  • 第48夜 AWSのDynamoDBを試す - しんさんの出張所 はてなブログ編

    ひさびさのJavaネタ。 Amazon Web ServicesからオールSSDによる性能(キャパシティ)を自由に設定可能なデータベース、DynamoDBが発表されました。 キャパシティを自由に設定可能ってことは、一時的にバッチを走らせたいというときにキャパを上げて短時間で終わらせるとか、空いている時間に少しずつ流していくとかいうテクニックが使えそうです。また、こちらが通常の使い方でしょうが、負荷の高い夜にはキャパを上げて、あまり人のいない早朝には下げることによって運用コストを大きく減らせる可能性があります。 これはつかうしかない!100MBまでの無料枠もありますので試すにはうってつけでしょう。 というわけで、試してみたのですが、すでにSimpleDBとか触ったことがある人にとっては何も難しいとか引っかかるところとかなかったですねぇ。SDKの使い方もいつもどおりだし、テーブルとかわかりやす

    第48夜 AWSのDynamoDBを試す - しんさんの出張所 はてなブログ編
  • Androidのブラウザでこまる - しんさんの出張所 はてなブログ編

    Canvasがまともに描画されない問題以外にもそれなりにこまることはあって。 Androidのブラウザは放置しておくと(バックグラウンドで別のページ開いても)ページ内容が破棄されてしまう。その復元のされ方も2種類あってまぁこまる。 破棄する前のURLにアクセスする キャッシュは残っていてそのキャッシュからロードされる Webアプリではなく、静的なページ等ならいいのだけれども、動的なコンテンツはこれは致命的。 まず1つ目はmixiアプリのようなiframeタイプは回避不可能。OAuthの認証期限切れて同じアドレスにアクセスされても困る。対処は不可能。「再読み込みしてください」と表示するのが限界。 2つ目は、クライアント側だけJSやDOMがリセットされてしまうので、クライアント側のデータとサーバー側のデータの同期が取れなくなってしまう問題あり。クライアント側ではJSどころかHTMLも生成せずす

    Androidのブラウザでこまる - しんさんの出張所 はてなブログ編
  • 第43夜 JAX-RSをWebアプリのフロントエンドとして利用する - しんさんの出張所 はてなブログ編

    久々のJavaネタ。 JAX-RSのRI実装であるJerseyでのWebアプリケーションの作り方。 いつものように足し算する。 テンプレート。今回はJSP。 <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <h1>${a} + ${b} = ${c}</h1> </body> </html> アクションクラス。 @Path("calc") public class CalcResource { @Path("{a}/{b}") @GET public Viewable add(@Context HttpSe

    第43夜 JAX-RSをWebアプリのフロントエンドとして利用する - しんさんの出張所 はてなブログ編
  • コレさえ知っていればJavaEE 6は大丈夫! - しんさんの出張所 はてなブログ編

    文字列を返すメソッドひとつのみの単純な書き方。 EJBの書き方 スコープとしてシングルトンが追加されてローカルインターフェースが省略可能に。 @Singleton public class EjbBean { public String message() { return "EJBだよ!"; } } JSFの書き方 リクエストスコープのManagedBean。 @ManagedBean(name="jsf") @RequestScoped public class JsfBean { public String message() { return "JSFだよ!" ; } } それを表示する方法。ELはゲッターセッターのみならずメソッドが使えるようになっている。 <?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC

  • JSF 2.0の新機能まとめ - しんさんの出張所 はてなブログ編

    ここ最近書いたJSF 2.0の新機能のまとめ。JSF 1.xからくらべるとどれだけ変わったかがよくわかる。 XMLを一切書かないですむことで有名なJSF 2.0を軽くさわる アノテーションだけでOK うぬはまだEL(式言語)の当の恐ろしさをしらぬ JSF固定の話じゃないけど、ELでついにメソッドが実行できるようになった。 JSF 2.0の新機能AJAXサポートを試す Javascriptを一切書かないAjaxはコンポーネントベースのほうが恩恵を受けやすい。 スクリプトでJSFの部分レンダリングを呼び出すことができるので自前のスクリプトとの連携も可能(たとえばjQuery使うとかもOK)。 NetBeans 6.8開発版で試すJSF 2.0 開発版でJava EE 6のサポートがどれくらい進んでるかを見てみた。 超簡単になったJSF 2.0をさらに試す jsfc属性を使えばテンプレートは見

    JSF 2.0の新機能まとめ - しんさんの出張所 はてなブログ編
  • GlassfishでJNDIデータソースの設定方法その1 - しんさんの出張所 はてなブログ編

    ちょうどJNDIの話がでていたのとおとなり日記でTomcat5の設定方法を目撃したので. いくつか方法があるけど,まずは管理ツールを使う方法.これが一般的だと思う. ログインしたら左にあるメニューからJDBCのところを探します.JDBC接続リソースとコネクションプールの2つに別れています.JDBC接続リソースは単にJNDIでの名前を設定するだけです.プールを先に設定しておいてどのプールを使うのかといったことを設定します.つまり接続先を帰る場合はこの変更画面でドロップダウンリストからかえるだけとなります. 先に接続プールを作成します.DB一覧から選ぶとドライバの名前など面倒な設定がいりません.もちろん,ここにないものでも使うことが出来ます. 追加プロパティにはあらかじめプロパティ名はすでに設定されているので右側のテキストフィールドのみを入力するわけです.いらなそうなのは削除して4つだけに絞り