小ネタ千夜一夜

第49夜 DynamoDBの高レベルAPIを試す

DynamoDBはSimpleDBとほぼ同様の使い勝手の低レベルAPIのほかに高レベルAPIが最初から用意されているのがポイントだ。低レベルAPIについては前回紹介済みなのでそちらを参照。 http://d.hatena.ne.jp/shin/20120125/p1 高レベルAPIはEntityのマッピングがあ…

第48夜 AWSのDynamoDBを試す

ひさびさのJavaネタ。Amazon Web ServicesからオールSSDによる性能(キャパシティ)を自由に設定可能なデータベース、DynamoDBが発表されました。キャパシティを自由に設定可能ってことは、一時的にバッチを走らせたいというときにキャパを上げて短時間で終…

第47夜 JAX-RSをWebアプリのフロントエンドとして利用する その4

さて、JAX-RSで返すものはHTMLやTEXTだけではないはずだ。AJAXではJSONはよく使われる。これがシンプルに返せるのがいい。JAX-RSにはもちろんそれを生成する能力はある。JAX-RSの参照実装であるJerseyはオブジェクトをシリアライズする方法が2つある。 1つ…

第46夜 JAX-RSをWebアプリのフロントエンドとして利用する その3

第43夜、第45夜の続き。前回でJAX-RSからサーブレットAPIは消えた。しかしテンプレートがJSPではサーブレットAPIが残ったままだ。 43回でチラッとだけ書いた(「今回は」JSP)が、テンプレートを自由に設定できるのがJersey(JAX-RS参照実装)の強みだ。ためし…

第45夜 JAX-RSをWebアプリのフロントエンドとして利用する その2

好評だった第43夜の続き。あの時はパラメータとして渡すためにHttpServletRequestを使った。それを使わない方法がある。ソースを見れば一発でわかる。第43夜と比べてほしい。 @Path("calc") public class CalcResource { @Path("{a}/{b}") @GET public Viewa…

第44夜 JAX-RSの階層を意識したサブリソース

JAX-RSではリソースのクラスにすべてを記述するといったことは必要ない。階層に沿ってサブリソースを生成、分離が出来る。 サンプルコードを乗せたほうが早いと思うので書いてみる。昨日のエントリは足し算をするものだった。今度は引き算も追加してみよう。…

第43夜 JAX-RSをWebアプリのフロントエンドとして利用する

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

第42夜 個人でも使える国内クラウドを比較する

と書いたものの、調べてみると国内で高レスポンスを得られるクラウド検索してみたらAmazon Web Servicesをのぞくと2つだけだった。あわせても3つ。選択肢ないやん・・・。 日本は法人格もってるかそうでないかで明確にサービスを分けてるけど、海外はそこに…

第41夜 AWSのEC2とかスケールアップとか

世の中クラウドが結構数で回ってきてるけど、クラウドの最大手AWSはどうか。EC2以外もたくさんあるけど、EC2だけに絞ってみてみる。前回の40夜でスモールインスタンスについて金額だけ比較してみた。スケールアウト(複数のサーバーを用意してサービス全体の…

第40夜 AWS EC2の月額料金

EC2は外部の転送量などによっても価格が変わってくるため確定ということはないのだが、コンピューティングのリソースに関しては時間できっちりと決まっている。そしてこの部分がたいていの場合大部分を占める。その部分を概算で一ヶ月当たりの価格を一覧にし…

第39夜 AWS S3の超基礎

今回はS3。SimpleDBがデータベースなのに対して、S3はストレージを扱うサービス。ファイルをアップロードしたりダウンロードしたりできる。 S3やSimpleDBはEC2など他の技術に比べて非常に簡単かつ単独で手元のマシンから使えるのでお勧めだ。昨日のSimpleDB…

第38夜 AWS SimpleDBの超基礎

そんなのがほしいみたいなコメントがあったので。そういやSImpぇDBがどんなものかってコードかいてない気がした。SQLっぽいというだけで。 全体の流れ まず全体を見てもらったほうが早いだろうということで今回のサンプルコードのシナリオ。SimpleDBTestと…

第37夜 Glassfish 3.1の埋め込みAPIからのさくさくEJB

JavaEEの構成要素で一番テストしにくかったものはなんだろう。おそらくEJBだ。アノテーションによる注入をいち早く導入し、開発の容易さは大幅によくなったもののデプロイと実行が(環境によっては)手間だったかもしれない。JavaEEではロジックをすべてPOJO…

第36夜 Glassfish 3.1の埋め込みAPIを使う

埋め込みGlassfishは過去に何回か書いてるが、実は3.0の初期からあったやつから大幅に改良されてる。ただ、Glassfishのページからたどり着くのができないくさいけど。クラス名とか全部別物。改良というより一から作ったくさい。その代わり大幅にパワーアップ…

第35夜 Java SEのあたりをつける GUI編

JavaでGUIといったらSwing。Swingの使い方を軽く。利用するパッケージはjavax.swingパッケージ。さらにサブパッケージもある。 サンプルはクリックするたびにカウンタが増えるアプリ。 今回の登場人物 javax.swing.JFrame ウインドウ部分 javax.swing.JPanel…

第34夜 Java SEのあたりをつける 印刷編

Javaはもちろん全方位な言語なので印刷はできる。いろんな方法があるが、おそらく一番手っ取り早いヤツということで。 印刷の登場クラス 基本はココ、java.awt.printパッケージだ。ココで大体そろう。 java.awt.print.PageFormat ページ情報。A4とか用紙。 j…

第33夜 Java SEのあたりをつける 画像ファイル編

せっかく前回画像処理を行えるようになったのに画像ファイルが読み書きできないというのも片手落ちなので今回は補足編みたいな。 画像ファイルを出力する BufferedImageから画像ファイルを出力するのに使うのはjavax.imageioパッケージにあるImageIOクラスだ…

第32夜 Java SEのあたりをつける 画像編

昨日かいたとおり、JavaSEのあたりをつけるためのエントリを描いていく。細かい解説はしないので、詳しくはJavadocを見ながらいろいろといじってもらいたい。あくまでも索引のようなエントリということで。特別なぞるわけではないが、このへんを参考に。 「J…

第31夜 JavaFX 2.0 の組み込みブラウザで遊ぶ その2

スターとブックマークいただいたので続きでも。あいかわらずの小ねた。派手なものはないですが。 HTMLのタイトルを取得する これは簡単。 WebEngine we = new WebEngine(); 〜省略〜 System.out.println("タイトル:" + we.getTitle()); HTMLのロードが終わっ…

第30夜 JavaFX 2.0 の組み込みブラウザで遊ぶ

JavaFX 2.0ではWebEngineといういわゆる組み込みブラウザが登場した。コンポーネントとしてはWebViewという入れ物があって、この2つを組み合わせて扱う。実際のコードの大半はWebEngineを使うことになるだろう。 組み込みブラウザ利用の基礎 WebViewとWebEng…

第29夜 NetBeans脳の恐怖

NetBeansになれていて他のIDEにふれるとそれはIDEが自動でやってくれて当たり前じゃないのかーってのがかなり多い。そんなのを紹介していこう。 Javaのプロジェクトを作る=jarやwar、earを生成まで自動でやってくれると勘違いする。 NetBeansはビルドや実行…

第28夜 Javaの高機能非同期HTTPクライアント その2

http://d.hatena.ne.jp/shin/20101223/p1 の続き前回はFutureを利用した。個人的にはJavaの場合こちらのほうが自由度が高くて好きだが、お手軽にコールバックをさせたいという場合もあるだろう。というわけで、今回はコールバック版。RESTのリクエスト結果が…

第28夜 Javaの高機能非同期HTTPクライアント

最近Javaネタあんまり書いてなかったので久々に。 第24夜 Javaの高機能HTTPクライアント 第26夜 Javaの高機能HTTPクライアント その2 第27夜 Javaの高機能HTTPクライアント その3 の続き。今回は非同期APIを利用してみる。いままでやっていたのはすべて同…

第27夜 Javaの高機能HTTPクライアント その3

さて、HTTPクライアントとしてJerseyのクライアントが便利だというのは今までのエントリで解説してきた。 「でも、うちはHTTPクライアントはJakarta Commonsの使わないといけない決まりがあるしぃ〜」という場合もあるだろう。 大丈夫だ、問題ない。Commons…

第26夜 Javaの高機能HTTPクライアント その2

24夜Javaの高機能HTTPクライアントの続き。前回は引数も何もなしのgetだけやった。今回はパラメータを渡してみよう。 その前に受け取り側のサーバーのコードを書いておく。JAX-RSが楽なのでJAX-RSで。JavaSEのスタンドアロンサーバーで動かしたりJavaEE 6準…

第25夜 JAX-RSでファイルを返す

第22夜 JDK6のHTTPサーバをパワーアップさせるでJAX-RSがJava SEからmainから始まるコードで簡単に使えるようになった。そこで単純に静的ファイルを返したい場合がある。サーブレットコンテナに配備する場合はwarの中にファイルを置くだけで可能ではあるが…

24夜 Javaの高機能HTTPクライアント

JavaでHTTPクライアントを利用する場合何を利用しているだろうか。 直にソケット通信はやってる人はまずいないだろう。ヘッダとかなにもあったもんじゃないし。標準APIで一番利用されるのはHttpURLConnectionだろうか。でもこれも面倒だ。一番やり取りをする…

第23夜 JavaSE5対応したDBUtilsを試す

DBUtilsはDBアクセス用ライブラリ。 非常にシンプルでDataSourceやConnectionがあればさくっと使えるのが魅力。 最近はO/Rマッピングが主流で、Hibernate/JPAにあらずんばDBアクセスにあらずという状況。似たようなのにSpringJDBCもあるが、こちらもほとんど…

第22夜 JDK6のHTTPサーバをパワーアップさせる

前回はJDK付属のHTTPサーバについて書いた。 JDK付属のHTTPサーバはそのままでは非常に貧弱である。クライアントから送信されるデータをInputStreamで受け取り、出力はOutputStreamで書き出すだけ。出力はかまわないが、入力は何とかならないのか。リクエス…

第21夜 あなたはJDK6のHTTPサーバを使っているか?

JavaでのWebサーバーといえばJavaEEに含まれるServlet APIを利用することが多いと思う。しかし、そこまで大げさでなくとも・・・という用途は結構あるはずだ。JDKに簡易Webサーバーが付属しているのを知っているだろうか。 http://java.sun.com/javase/ja/6/doc…