はじめに テスティングフレームワーク「xUnit」を利用した開発が普及しつつある昨今ですが、Webブラウザをユーザーインターフェイスとするシステムでは、当然の事ながら画面のテストも必要となります。 xUnitは、基本的にモジュール単位でのテストを行うものであり、ブラウザ上のHTMLを評価する事はできません。 そこで本稿では、「HttpUnit」というブラウザをエミュレートするツールを使用して、Webアプリケーション画面のテストを行う方法を紹介します。対象読者 Webアプリケーション画面開発者、画面テスト担当者。 なお、本稿のプログラムはJavaで記述するため、HTMLに関する知識の他に、JavaとJUnitの知識が必要です。しかし、プログラム自体はクライアント側にて単体で動作するため、サーバー側のシステムはJavaである必要はありません。 CodeZineでCactusについての有益な記事
“Stop the World”を防ぐコンカレントGCとは?:現場から学ぶWebアプリ開発のトラブルハック(2)(1/2 ページ) 本連載は、現場でのエンジニアの経験から得られた、APサーバをベースとしたWebアプリ開発における注意点やノウハウについて解説するハック集である。現在起きているトラブルの解決や、今後の開発の参考として大いに活用していただきたい。(編集部) Full GC問題の時代が再び到来! それまで順調に動いていたはずのWebアプリケーションが、ある時突然、応答を返さなくなる。そして、運用者があたふたしている間に、何事もなかったかのように再び動き出す。 Javaで構築したシステムにかかわる者ならば誰しもが体験するであろう事象、そうFull GC(ガベージ・コレクション)だ。Full GCが行われている間、すべてのアプリケーションスレッドは停止する。この事象は“Stop the
「Java SE 6完全攻略」の第2回でオンデマンドアタッチを紹介しました。起動時に何も指定しなくても,必要なときにjconsoleでJava VMにアタッチできるという機能です。 それにしても,オンデマンドアタッチって,どうやって実現させているか不思議ではないですか? 筆者は夜も眠れぬぐらい不思議に思っていたのです。そんなある日,あらためてJava SE 6のドキュメントをつらつら眺めていると,Attach APIという聞き慣れないAPIを見つけたのです。 そう,このAttach APIがオンデマンドアタッチを実現するためのAPIだったのです。 Attach APIの正体 Attach APIはcom.sun.tools.attachパッケージとcom.sun.tools.attach.spiパッケージで定義されている四つのクラスから構成されています。しかし,主に使うのはcomsun.t
弱参照キャッシュの罠 Javaの弱参照をキャッシュに使いましょう、という話がよくある。しかしこの手を考えなしに使うと、罠にはまる。私がはまった。 キャッシュ対象を生成する操作で、大量のメモリを確保・解放したら、なにが起こるか? あるときはなにも起こらない。あるときはガベージコレクションが起こる。起動後しばらくは前者であることが多い。起動からしばらくすると、後者がぼちぼちと起こるようになる。 ガベージコレクションは弱参照を消してしまう。 ということは、だ――キャッシュ対象Aを生成するときにB, C, D...が消されてしまい、その消されたBを生成するときにA, C, D...が消されてしまい…… という現象が起こる。しかもこの現象は、起動直後には起こらず、しばらく経ってから起こるようになる。 いったんこの現象が起こると、まるでスイッチが入ったように止まらなくなる。特に、複数スレッドでキャッシ
このページは、 書籍『Java言語で学ぶリファクタリング入門』 のサポートページです。 最新情報やサンプルプログラムなどを公開しています。 目次 アマゾンで買う『Java言語で学ぶリファクタリング入門』 はじめに 本書の想定読者 リファクタリングとは 本書の目次 サンプルプログラムのダウンロード 誤りと訂正 ぜひ、感想をお送りください 更新履歴 はじめに こんにちは、結城浩です。 このページは、 書籍『Java言語で学ぶリファクタリング入門』 のサポートページです。 リファクタリングは、デザインパターンやエクストリームプログラミングに並んで、ソフトウェア開発の重要な技法として注目されています。 きれいなソースは読むのが楽で、修正するのが楽で、デバッグするのが楽です。 これに対して、きたないソースはすべてが大変です。 ではどうすれば「きれいなソース」になるのでしょう。 きたないソースをどうす
「Java SE 6完全攻略」第3回でjconsoleの機能向上を取り上げたのを覚えているでしょうか。この回ではjconsoleの改良点としてGUIを取り上げましたが,拡張されたのはGUI部分だけではありません。jconsoleに独自のビューを追加することも可能になったのです。 そこで,今週はjconsoleをカスタマイズして新しいビューを追加する機能を紹介します。 jconsoleには「メモリ」「スレッド」などのタブがあり,それぞれグラフなどの形式で情報を表示します。表で数値を表示するより,グラフで表示する方が傾向を一目で見られるので便利です。 メモリーやスレッドにはそれぞれ対応するMXBeanがあり,jconsoleはMXBeanが保持する情報を専用のビューで見やすく表示します。 しかし,自作のMBeanやMXBeanなどを専用のビューで表示することはできません。もちろん,MBeanタ
アプリケーションのパフォーマンス・チューニングなどで使用するツールといえば,まず第一にあげられるのがプロファイラです。最近は,EclipseのTPTPや,NetBeans Profilerなどフリーで使えるプロファイラが増えてきたので,使ってみたことがある方も増えてきていると思います。 意外に知られていないのですが,Java SEにも標準でプロファイラが付属しています。それがhprofです。 Java 2 SE 5.0からは「-agentlib:hprof」という起動オプションでhprofを起動できます(J2SE 1.4.までは「-Xrunhprof」)。使い方はヘルプ・オプションで表示できます。 C:\temp>java -agentlib:hprof=help HPROF: Heap and CPU Profiling Agent (JVMTI Demonstration Code)
OutOfMemoryError のハンドリング はじめに Tiger ではじまった、ソフトウェアの管理の強化ですが、Java SE 6 ではさらに強力になっています。 強化点はいろいろあるのですが、まず第一にあげたいのが、OutOfMemroyError のハンドリングです。 第一題 OutOfMemoryError まずは、OutOfMemoryError です。 皆さんも痛い想い出がいろいろとあるのではないでしょうか。 Java SE 6 では OutOfMemoryError が出なくなる... ことはありません ^^;; Tiger までは OutOfMemoryError がどこで発生しているかいまいち分かりづらかったのではないでしょうか。 それが、Java SE 6 ではちゃんと OutOfMemoryError が発生するポイントを明示するようになりました。これはうれしい!
J2SE 1.4 からJava の新しい言語要素としてassert ステートメントが導入された。これはソフトウェアの正しさを確実にするための手法の一つ「アサーション」を記述するためのものである。 アサーション(assertion,「表明」と訳される)は,ソフトウェアが正しく動作することをより確実にするために使われる手法の一つである。アサーションは,データ処理のロジックの各地点でどのような条件が成立しているはずであるか,という検証用のコードをそれぞれの箇所に配置し違反を自動で検出するという形をとる。アサーションへの違反が検出されたら何らかの誤りがあることになり,プログラムには修正の必要があることが分かる。したがって,多くのアサーションを入れ十分な種類のテストデータを使ってソフトウェアの開発とテストを進めれば,その過程でプログラムの誤りの多くが訂正されると期待できるのである。
はじめに 少し前まではプログラム言語と言えばJavaかC++、VBという感じでしたが、Webの広まりと共にPerlが使われて、PHPが現れ、Rubyが注目されて、JavaScriptが熱をおび、いろいろな言語が活気付いてきました。そして最近は、手続き型以外の関数型言語や論理型言語などにも触手が伸びているようです。 こうなると、次はプログラム言語を実装したりオリジナルのプログラム言語を作ってみたい人も増えてくるかもしれません。そこで本稿では、JavaCCを使ってプログラム言語を実装する手順を解説します。対象読者 Javaの基本が分かっていてプログラム言語の作成に興味がある方。必要な環境 JavaCCは最新の4.0を利用します。ダウンロードしたファイルを任意のフォルダに展開しておいてください。 今回はJ2SE 5.0をベースにプログラムを記述します。JavaCC自体はJ2SE 5.0に依存する
GWT is open source, completely free, and used by thousands of enthusiastic developers around the world. GWT is the official open source project for GWT releases 2.5 and onwards. This site houses links to the documentation, source code repository, issues list and information related to GWT roadmap and release. It is intended for developers interested in contributing to GWT, and for keeping people i
Overview Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. It automates the process of checking Java code to spare humans of this boring (but important) task. This makes it ideal for projects that want to enforce a coding standard. Checkstyle is highly configurable and can be made to support almost any coding standard. An example configuration
GoogleのJoshua Bloch(Sun Microsystemsから転職したのは,このブログの読者は知ってるよね?)が,Google Research Blogで長い間眠っていた興味深いJavaのライブラリのバグについて報告している. http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html 問題があるのは二分探索のコード中の中間を知るために平均を求める部分なのだが,整数値を加算した時にオーバーフローすると負の値になってしまい,その結果ArrayIndexOutOfBoundsExceptionが投げられるというものだ.java.util.Arraysクラス以外にも,java.util.Collectionsクラスやjava.util.TreeMapクラスや,他の分割統治
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く