hatenob

プログラムって分からないことだらけ

2015-01-01から1年間の記事一覧

Mavenで環境ごとの設定ファイルを作成する

一人Web開発シリーズも認証で行き詰ったので閑話休題的に。 はじめに 複数環境の設定ファイルを作るのに、1つのテンプレートをベースにして差分だけを変数化するというのはよくやることです。 ChefやAnsibleなんかを使える環境にいればよいのですが、そうで…

一人Web開発 Season.2~第5夜 認証・認可の検討

前回、HTTPサーバの検証をしたので、それに続いて認証・認可の仕組みを検討することにした。 が、正直全然分からん。。普通のJavaEEだとJAASとかあって、web.xmlに色々書いて認証・認可ができるようになるのは前にも調べたことがある。 ユーザID/パスワード…

一人Web開発 Season.2~第4夜 HTTPサーバ探し~

HTTPで会話できるAPIコンテナを模索しておりまして、やはり馴染み深いJBossプロジェクトに落ち着きつつあり、とは言え今だAlphaのwildfly-swarmは使えないしあまりフルスタックなのは求めていない、という流れで、ひとまずJAX-RSをスタンドアロンで実行でき…

一人Web開発 Season.2~第3夜 仕様検討~

仕様検討 作るアプリの仕様ではなく、作り方の仕様です。 ぼんやりなので何も固まっていないけれど、ひとまず備忘のために書き記しておきます。 アプリケーション仕様 アプリケーションを動かすために備わっていないといけなそうなことをあげてみます。 HTTP…

一人Web開発 Season.2~第2夜 見直しとVagrantとDocker~

見直し 前回のアップグレード版でやろうと思ったけれどもそれではちょっとつまらない気がしたので方針を少し変えることにしました。 折角なので、今の自分の知識(つまりフツーのJavaEE)の延長線上にあるものとは少し違うものにしたいなぁ、と。 絶賛バズっ…

一人Web開発 Season.2~第1夜 はじめに~

2014年1月に、「一人Web開発」として読者がいるわけでもないけど自分のログとして細々とWeb開発技術の習得に勤しんでおりました。 そろそろ2年が経とうとしているので、技術のアップデートも兼ねて第2シーズンに入りたいと思います。nobrooklyn.hateblo.jpや…

Maven pluginを書いてみる

Maven使ってビルドをしているときにふと自前のMavenプラグインが欲しくなることありますよね? まぁ今時、必要そうなプラグインは一通りあるのであえて作りたくなるという時くらいしかないのかもしれないけれども。 というわけで本当のさわりだけやったので…

JSライブラリの依存管理

WebアプリケーションをJavaEEで作る時でもフロントエンドでJSのライブラリを使うのは普通にあることなので、Mavenみたいに依存管理をしたい。 npmやbowerなんかが代表的なJSのパッケージ管理ツールなわけでこれを使えばいいじゃないのという話なんだけれども…

WildflyでMANIFEST.MFの内容を取る

別にWildfly固有の話ではないと思うけれど、試したのがWildflyだったもので。 エラーの時の情報の一つとして出力するために、jarやwarにMANIFEST.MFを入れて、そこに書かれているバージョンとかをアプリケーション側で参照できるようにしたいなぁと思って調…

CDIでアノテーション使わないBean取得方法

CDIで@Injectアノテーションを使わずに、名前(文字列)でBeanを取得するにはどうするんだろうかとちょっと気になったので調べてみた。 Bean @Injectの時だとスコープだけ書いてあげたらインジェクションされるけど、名前で引くときは@Named付けないとダメっ…

簡単なHTTPクライアント

今更作る必要ないものではあるけれど、ちょっとしたテストをしたかったので作りました。 簡単なRequestとResponse用のクラスを作った、という感じです。 public class HelloServletIT { private class HttpRequest { private String url; private String par…

Wildfly SwarmでMicroservices on JavaEE

前回、Wildfly Swarmを使った記事を書きました。 当時はなぜかうまく動かったのですが、Githubのリポジトリから最新のソースを入手してビルドしたら動くようになりました。JAX-RSとServletFilterを使ったプログラムは難なく動きました。 @Path("hello") publ…

Mavenで自前のリポジトリを用意する

Mavenを使って作成したライブラリを他のプログラムでも使いたいときはMavenリポジトリに登録すれば色々と楽です。 でもセントラルリポジトリに登録するは手続きがあって面倒だし、そもそも公開するほどでもなかったりできなかったりで、中でだけ共有できれば…

Wildfly Swarmを触りながらOSSを感じる

Wildflyを使ってMicroservicesなインフラを作ろう的なプロジェクトだと思われるSwarmというのがリリースされた模様。またAlpha1なので実用には及ばないとのことだけれど。WildFly Swarm Initial Release · WildFlyこの領域はSpring Bootが先行しているのだと…

Undertowでリバースプロキシ

WildflyのWebコンポーネントであるUndertowを使って簡単なリバースプロキシを書く。 と言っても、実はUndertowには最初からリバプロ用のHttpHandlerがあるのでそれを使うだけ。 ただリバプロだけじゃ面白くないので、リクエストヘッダに任意の文字列を付けて…

WildflyでJAX-WSの非同期コール

JAX-WSを使ってサービスコールをする際には、3つの呼出し方が選べる。 同期 非同期コールバック 非同期ポーリング あくまで、「コンシューマが選択できるもの」としてこの3つを試したみた。 もちろん、プロバイダ側を非同期型にする(この場合、コンシューマ…

Wildfly 8でJAAS

Wildfly8でJAASの動きを確認した時のメモ。 JAAS Java Authentication and Authorization ServiceはJavaの認証認可機構のこと。 ユーザとロールを紐づけ、そのロールでアクセスできるURLやらEJBやらを制御することができるもの。 認証方式はいくつか取れるが…

Wildflyで2つのデータソースでJPA使ったトランザクション

試したみたことのメモ。 試したこと Wildflyで、同一のDBを指す、名前以外は同じの2つのデータソースを定義する。 JPA用にそれぞれのpersistence-unitを定義。 1つのEJB処理の中で2つのpersistence-unitに対して操作を行うとどうなるか? 試した理由 物理的…

JPAでHibernateの更新時の楽観ロックエラーの実装を確認した

ちょっと調べものをしていたのでメモ。 調べたかったこと JPAのEntityで楽観ロック(@Version)を使った場合、更新時にjavax.persistence.OptimisticLockExceptionになる条件。 調べかった理由 VersionチェックのためにSQL投げたりしてないよね?というのを…

JPAでカーソル操作

JPAで複数件取得する時は、getResultListで取得するのが一般的なやり方です。 画面で数十件ずつページングをしながら表示をさせるようなケースではこれでよいのだと思いますが、数万件とかになるとそれが全部オブジェクトとしてヒープに乗ってきてしまうので…

JavaでFTP

月に1つは何か試して記事書きたいなぁと思いますが、なかなか時間と体力がありません。 JavaでFTP JavaからFTPサーバにつないでファイルをアップロードするようなプログラムを書いてみました。 ソースはこちら。chanko/chanko-ftp at master · nobrooklyn/ch…

AngularJSでWildfly上のリソースにアクセス

Wildfly上の~と言っておきながら、REST APIなので別にAPサーバ問わないわけですが、前回とかの続きなので一応付けておきました、という感じです。以前、こちらのエントリでAngularJS使ったコードを写経しました。AngularJSを触ってみた - hatenobこの時は完…