かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

Java

Hibernate4 + PostgreSQLでマルチテナントしてみよう

PostgreSQLのスキーマをうまいこと使うとマルチテナントのアプリが作れそうだという雰囲気でした。アプリでガリガリSQL書くのは嫌いな人なのでJavaならJPA2.0使いたい。SQL書かないと嫌な感じになるところはSQLでやるので仕方ないとして簡単なものは簡単に済…

JAX-RSのMessageBodyWriterを使って出力をカスタマイズ

JAX-RSって出力を柔軟に差し替えれるんですね。知りませんでした。これは捗る。やりかたは簡単。MessageBodyWriterインターフェースを実装して@Providerアノテーションをつけるだけ。 package okazuki.mavenproject7; import java.io.IOException; import ja…

ThymeleafのHello world

HTMLとかXHTMLとかHTML5とかのテンプレートエンジンのThymeleafいい感じっぽいのでHello worldしてみます。 NetBeansでMavenのJavaアプリケーションのプロジェクトを作成して依存性の追加でthymeleafで検索するとorg.thymeleafが出てくるので、それを追加し…

RichFaces 4.xのtreeコンポーネントで遅延読み込み

でっかいツリーを表示したいが、最初に全部データをクライアントに持っていくのは忍びない。というか普通にある程度の規模以上になると性能問題になりますよね。 そんなときのために、表示するのに必要最低限のデータだけをとっておいて、あとは必要に応じて…

GlassFishのeclipselink 2.4.0にアップグレードするときの手順

知らないとはまる。 http://computingat40s.wordpress.com/installing-glassfish-3-1-2-2/

JAXBでJSON出力したい

eclipselinkの2.4.0を入れる jsonに出力したいクラスのあるパッケージにjaxb.propertiesを置く javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory JAXBContextを生成するときにJAXBContextProperties.MEDIA_TYPEにapplicatio…

RichFaces 4.2.xのtreeコンポーネントの基本的な使い方

毎回調べるのもあれなので個人的なメモ。 pom.xmlにrichfacesを追加 <dependency> <groupId>org.richfaces.ui</groupId> <artifactId>richfaces-components-ui</artifactId> <version>${richfaces.version}</version> </dependency> <dependency> <groupId>org.richfaces.core</groupId> <artifactId>richfaces-core-impl</artifactId> <version>${…</version></dependency>

Java EE 6の単体テストでClassFormatErrorが出る

Java EEのクラスに依存してるクラスを単体テストしようとして以下のエラーに悩まされました。 java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file [Java EEの中のクラスの名前]ぐぐってみたら解決…

CDI関連情報まとめ

Java EE 6を使うならCDIを使わなきゃね!ということなんですが、Beginning Java EE 6にはCDIについて書かれてない!!せっかくNetBeansは手厚くCDIをサポートしてくれてるのにもったいない!ということでぐぐりました。まずは、Oracleにいた人が書いてくれて…

NetBeans 7.2.1で新規作成時に選べるJSFのコンポーネント

はじめに WPF連載の中に突如現れるJavaEE関連ネタ!! 本題 Webアプリケーションを作成するときにJSFのライブラリとして以下の3つがあることを確認…どれも、個人的に未使用なので癖や良し悪しはなんとも言えない。 ちょっと気になるDataTable系コントロール…

JavaでListからint[]に変換したいんだけど…

最近お仕事ではJava屋さんになってます。ちょっとしたデータをDBに突っ込むプログラムをJavaで書いたりしてる中で、Listからint[]に変換したいって思うことがありました。toArrayで楽勝楽勝と思ったら… List<Integer> l = Arrays.asList(10, 20, 30); int[] array = l</integer>…

IKVM.NETってのが面白そう

http://www.ikvm.net/なんというかJavaと.NETの垣根がなくなりそう…。 IKVM.NETのWikipediaから抜粋しますが、こんなものらしい。 IKVM.NETとは、オープンソースにより開発が行われているMono及び.NET Framework上で 実装された、Java仮想マシンを含むJavaの…

Beginning Java EE 6 GlassFish 3で始めるエンタープライズJavaが出てる!

Java EE6をはじめるならこれ!ってかんじなんでしょうか。今度出るJava EE7(PaaS関連の機能がつくとかなんとか)に備えて読んでおいていいかもしれない一冊ですね。買わなきゃ…。 Beginning Java EE 6 GlassFish 3で始めるエンタープライズJava

Java 7が出たみたいです!

ラムダが導入されないため、個人的ながっかり感が大きなJava 7ですが無事リリースされたみたいです。個人的には以下の機能が気に入ってます。 例外のマルチキャッチ catch (HogeException | MogeException ex) { ... } 例外の再送 (final Throwable t) { ...…

無駄なインスタンスの生成

プログラミング言語初心者にありがちな失敗として以下のようなコードがあると思います。 Hoge h = new Hoge(); h = GetHoge(); // Hogeのインスタンスを返すメソッド 上記のコードの最初のnew Hoge()で作成したインスタンスは、次の行でサヨウナラしてしまい…

Androidでタブを表示させる

Androidでタブを表示するのはちょっとめんどくさいことがわかりました。ということでやり方をメモしておきます。 Androidでタブを表示させるにはTabHost, TabWidget, FrameLayoutを使用します。どんな風に配置するかというと以下のような感じです。 TabHost(…

AndroidのLinearLayoutを組み合わせてSwingのBorderLayoutみたいな配置をする方法

Androidアプリのレイアウトの基本はLinearLayoutにあり!と勝手に信じているのですが、こいつちょっと癖があったのでメモしておきます。 基本的に、縦か横にアイテムを並べてくれるシンプルなレイアウトなのですが、weightを指定することで配置時の幅の重み…

Androidアプリケーションの開発を始めるのに参考にしたサイトのまとめ

Androidアプリケーションって作るの楽しい! でも、Windows Phone 7の開発に比べたら、やっぱり前時代的な感じがしてしまいます。 でも、現時点で日本で手に入ってマーケットに登録するのも手軽という点はメリットだと思うので、やっておいて損はないはず! …

Eclipse 3.6 (Herios) + AndroidプラグインでCTRL + SPACEで固まる現象について

すいません、この対処をしても固まります・・・嘘書いてました。とりあえずの簡単な対処法はEclipse 3.5を使うことです。 最近Androidのアプリで遊んでるけど、Eclipse 3.6のJavaEE開発用のパッケージにAndroidの開発用プラグイン入れて使ってたらコードアシ…

NetBeansでAndroid開発

開発環境はあるらしい。 以下のサイトを参考に、環境はさっくりと整えることができます。 http://www.yokada.net/blog/1326ただ、画面を定義するためのxmlはコード補間すらできないし、当然のようにGUIのデザイナは無い。 ここらへん、Eclipseでの開発のほう…

Debug Certificate expired on XXXXXのエラーが出る

Galaxy Sを予約したのでAndroidの開発環境を整えようとしてたが、プロジェクトを何度作ってもうまくいかなかった。 以下のようなエラーが出る。 [2010-10-16 18:21:20 - HelloAndroid] Error generating final archive: Debug Certificate expired on 10/05/…

NetBeans 6.9 RC2を今更ながら試してみた感想

Java SE 正直今までとの違いがわからなかった。 強いて言えばエディタがIMEの確定と同時にどっかに勝手にスクロールしてしまうバグが消えたくらい。でも、これはJava SEに限らず全般に言えること。 Java EE CDIのサポートが目玉機能だと思われる。 こんなSes…

Visitorを使わないで選択されたクラスの情報にアクセスする

昔書いた記事で、TreePathScannerを使ってVisitorパターンを使ってクラスの情報をとってきてました。 http://blogs.wankuma.com/kazuki/archive/2007/12/20/113814.aspxこれ以外にも、やり方があることがわかったのでメモしておきます。2年越しの関連記事に…

そういえば昔NetBeansのプラグイン開発について調べてた

すっかり忘れてました。 当時の関連記事をまとめた記事まで作ってた・・・。 http://blogs.wankuma.com/kazuki/archive/2009/04/16/171480.aspxもうすぐ、一年になるのか。本当にすっかり忘れてた・・・。

Lookupしてみよう その2「複数Lookup」

さて、前回単純な1つのインスタンスのLookupについて簡単に試してみました。今回は、複数のインスタンスがLookupの中にあったときはどうするんだろう?というのをやってみようと思います。 複数のインスタンスをlookupするには、lookupAllという、そのもの…

Lookupしてみよう その1「基本」

NetBeansのモジュール開発で、割と重要なポジションをしめるというLookupというものがあります。 こいつは何?ということで触ってみました。 Lookupってなんぞ? 触ってみた感じで受けた印象は、オブジェクトを入れておいて、必要に応じて取り出せるものです…

モジュールインストーラずっと誤解してた

NetBeansのモジュールのインストールを便利にしてくれるものかと、勝手に誤解してたけど、先日違うことに気づきました。 NetBeansの起動・停止のタイミングで処理を実行するためのものらしいです。具体的な実行タイミングとしては、NetBeansが起動するときに…

Tomcat3.3とTomcat5でのJSPから生成されるJavaコードの違い

元になるJSP <html> <body> <%= "Hello world " %> </body> </html> 出力されるJavaのコード Tomcat3.3だと、以下のような雰囲気で出力されます out.write("<html>\n<body>\n "); out.write("Hello world"); out.write("\n</body></html>\n"); Tomcat5.xだと以下のような雰囲気で出力されます out.write("<html>\n"); ou</html>…

JavaFX Composerって素敵そう

長いこと、CSSみたいな書き方をするので嫌ってたJavaFXですが、ついにGUIでぽとぺた出来る環境が出来始めてるみたいです。先日リリースされた、NetBeans 6.8ではアップデートセンターからJavaFX Composerのbeta版がダウンロードできるようになっています。 …

レイヤー構造

Presentation層画面表示や入力を受け持つ Service層ドメイン層への窓口 Domain層(Flow+Rule)中核 DataSource層(Data Access)DBや他システムとのやり取り なんとなくメモ。

Beans Bindingその2「ConverterとValidator」

さっきの続き。 ちょっとBindingクラスのメンバを眺めてみるとJSFみたいにConverterやValidatorを仕掛けることが出来るっぽい。 Converterはjavax.beans.binding.BindingConverteを継承して作る。 Validatorはjavax.beans.binding.BindingValidatorを継承し…

Beans Bindingしてみた

NetBeans6.0M10についてきてるライブラリにBeans Bindingっていうのがある。 気になったので触ってみた。きしださんのBlogから見れるデモの裏でもNetBeansがガシガシBeans Binding使いまくってる。NetBeans6.0M10のGUIのデザイナが吐き出すバインドのコード…

JMeterの関数

http://d.hatena.ne.jp/rubricks/20070405/1175769533明日使うかもしれないのでメモ

Eclipse3.3 RC4 + WTPの続き

前回の続き とはいってもServlet作って動かして終わりだったりする… 前に作ったJSPは、/HelloWebApp/HelloServletにPOSTするformがあったので受け取るServletを作る。 package okazuki; import java.io.IOException; import javax.servlet.ServletException;…

Eclipse3.3RC4 + WTPを試してみた

Eclipse3.3RC4が出てる!! ということでここからダウンロードしてきた。 更新サイトから、WTP関連のものをインストールして準備完了!!メニューのWindow -> PreferencesからServer -> Installed Runtimesから適当なアプリケーションサーバを登録。 とりあ…

へぇ〜!!thisってこんな風にかけたんだ!?

さっきNetBeansのモジュールで気になる部分のコードを読み漁ってたら見つけた。 知らないのは俺だけかな? 普段こんな書き方しないから、知らない人が多数であることを祈る!! public class Person { private int age; public void setAge(int age) { Perso…

ちょっと戻ってLookup

Lookupの結果に変化があったら処理をするってことが出来るみたいだ。 LookupListenerを使うといいぞと書いてある。早速お試し。 Lookupなので、普通のJavaアプリにorg-openide-util.jarを追加すればOK。 まずは、自分で任意のLookupを追加出来るMyLookupを作…

もうわけわからんくなってきた「C#でJavaVM」

http://journal.mycom.co.jp/news/2007/05/28/004/index.htmlJRubyやGroovyみたいなJavaVMで動くスクリプト言語 IronRubyやIronPythonみたいなCLR上に実装されたスクリプト言語今度はC#で実装されたJavaVMらしいですよ。 入れて実験してみようかなぁ。

MimeLookup

ということで次はMimeLookup。 どういうときに使うかというと、ぱっと読んだ雰囲気だと選んでるファイルの種類に応じて何かしら処理をさせたいときとかに使える。 選んでるファイルの種類はFileObjectのgetMIMETypeによって調べれるっぽい。 どんなファイル…

FileSystemAPI その4 .settings

ついに最後!! .settingsファイルです。本によるとシンプルらしいですとよ。layer.xmlには下のように書くとOK <folder name="okazuki"> <file name="okazuki-modules-menus-Person.instance"/> <file name="myPerson.instance"> <attr name="instanceClass" stringvalue="okazuki.modules.menus.Person"/> </attr></file></file></folder>

FileSystem APIその3 .shadow

FileSystemAPIその2 - かずきのBlog@Hatenaの続きです。 .shadowの拡張子のあるファイルのお話し。 本によるとシンボリックファイルと同じだよ!ってことみたい。 attrでoriginalFile属性を使ってオリジナルファイルが何かを示してあげるだけ。サンプル!!…

FileSystem APIその3

「FileSystemAPIその2 - かずきのBlog@Hatena」の続き。前回は、.instanceという拡張子のfileに直接どのクラスのインスタンスを生成するのかを名前で示してあげた。 こんな風に <file name="okazuki-modules-menus-Person.instance"/> これだとお手軽。だけど多分デフォルトのコンストラクタでしかインスタンスが</file>…

FileSystemAPIその2

ということで先日なんじゃこりゃ!?って言った.instanceという拡張子のものから。 結論からいうとインスタンス作れるらしいよ。とりあえず今日は時間がないから早速プログラムをば。 昨日作ったメニューの下に1つメニューを追加!! んで、okazuki.modules…

File System APIその1

Lookupの他にFileSystemもNetBeansのModuleを書く上では重要っぽい。 こいつはLookupみたいにjarを1つ追加するだけで使えるよ〜っていうような記述は見当たらなかったので、大人しくNetBeansのモジュールとして作って見た。 構成はこんな感じ okazuki.modul…

ProxyLookupって何?

ProxyLookupというものがある。 どうやら2つ以上のLookupをくっつけてくれるものみたいです。擬似的なコードだとこんな感じ。 Lookup foo = どうにかして取得1(); Lookup bar = どうにかして取得2(); Lookup proxy = new ProxyLookup(foo, bar); //合体! /…

lookupしてみる

英語がさっぱりできないのにRich Client Programming PLUGGING INTO THE NETBEANS PLATFORMを買ってしまった。とりあえず、NetBeansのモジュールのプログラムを覗いてると良く出てくるLookupについて。 Lookupの機能自体はすごく単純でjarを1つクラスパスに…

SQL ServerとJavaの連携の設定

CodeZineにSQL ServerにJDBC接続する際の設定の記事がありました SQL ServerとJ2EEアプリケーションサーバのJDBC接続設定集 (1/6):CodeZine

4バイト文字の長さ

Vistaで追加された4バイト文字「飛魚」(←これが一文字になる) XPで見てる人もいると思うので、とりあえず出しません。こいつらが結構厄介なんですよ。とりあえず↓のコードを見てください。 C# Java <追記> うは!JavaとC#で出力結果が微妙に違うわ。画像…

JavaFX

Eclipse用プラグインとNetBeans用プラグインがあるみたい。 https://openjfx.dev.java.net/ の中ほどから落とせます。Getting Start(NetBeans使用)はここ。 https://openjfx.dev.java.net/Getting_Started_With_JavaFX.html

Fizz-Buzz問題 どうしてプログラムが書けないの?

モトネタはここ!! どうしてプログラマに・・・プログラムが書けないのか?なんていうか、プログラム書けないのにプログラマ(SE)を名乗るな!って言いたくなってくる。 でも、現実を見てみると情報系の学科を出た人で、↑のサイトにある問題を解ける人はほ…