This post has been moved http://svanimpe.be/blog/reminders-web.html
フロントエンドの HTML やアプリケーションと WebAPI を別々に開発すると、ビューとロジックをほぼ完全に分離できます。それぞれの責務が絞られるので、もともと不具合が生じにくいというのもありますが、何より WebAPI は単体テストが書きやすいという点で優れていると思います。 とはいえ、単体テストを実行する環境を整えるのは意外と面倒かもしれません。以前のエントリでも書きましたが、アプリケーションをデプロイしたサーバを立ち上げてテストを走らせてサーバを落とす、という一連の流れはなるべく簡単に実行したいものです。 もし WebAPI を Jersey (JAX-RS) で開発するのであれば、そうしたニーズに答えるためテスト用のフレームワークが用意されています。 テストする対象を用意する まずはテストする対象を作らないと始まりません。今回準備したリソースは以下です。 package tes
org.mockito Class Mockito java.lang.Object org.mockito.Matchers org.mockito.Mockito Direct Known Subclasses: BDDMockito public class Mockitoextends Matchers Mockito library enables mocks creation, verification and stubbing. This javadoc content is also available on the http://mockito.org web page. All documentation is kept in javadocs because it guarantees consistency between what's on the web and
djUnitのVirtual Mock Objectsを使うと、かゆい所に手がとどくテストが出来る。ぜひ使おう。 と思ってJUnit4でテストコードを組んで、djUnitを使うためにextends DJUnitTestCaseを突っ込んで、と・・・。 あれ?@BeforeClassが呼ばれない? というかアノテーションが効いてないような? でよくよく見てみると、DJUnitTestCaseはJUnitのTestCaseを継承している為、コードがJUnit3扱いになるらしい。えーなんじゃそりゃ。 どうしよう・・・と思ったらDJUnitTestCaseの中身は実際はMockObjectManagerにあるらしい。 という訳でとりあえずこうしてみた。 ★テストケースの親クラス(DJUnitTestCaseモドキ) -----------------------------------------
条件変数(condition variable)同期プリミティブにまつわる "spurious wakeup" についてメモ。 安定した対訳語が存在しないようなので、本記事ではそのまま英語表記とする*1。spurious は “偽の; 疑似; 似非” といった意味の単語であり*2、wakeup は “条件変数で待機していたスレッドがブロック解除されて実行再開する”(=寝ていたスレッドが起きる)ことを意味する。 まとめ: spurious wakeup は、「条件変数での待機(wait)処理において、何もしていないのにブロック解除される現象」を指す。ライブラリ内部実装やハードウェア/OSの都合といった、同期プリミティブの利用者から関与できない原因によって生じる。その発生頻度は特に言及されないが、一般的には低確率でしか生じないはず。 spurious wakeup に対応するため、条件変数での
あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。
Webサービス系の会社の隆盛があって、人材流出が騒がれたのが1−3年ぐらい前だろうか。 SIの産業の人材動向が、今どうなってるかって? 大方の予想より凄惨ですよ。 それが分かる方法がある。JavaWeb技術者に技術力を問う8つの質問によってだ。 SI業界のエンジニアの平均レベルを知りたくって、いろんな会社さんのJavaWeb開発者(経験者)向けに以下のような8つの質問を継続的にしている。 対象者としては、Java経験3から10年ぐらいの現役バリバリのはずのJavaエンジニアだ。 その8つの質問というのはこんな問題だ。 JavaWeb技術者に技術力を問う8の質問 インターフェイスのメリットを一言で表して下さい。(筆記解答) HttpRequestオブジェクトからPostされたデータを取得するServletのメソッドは何ですか?(筆記解答) Sessionのスコープを端的に説明してください。(
SNMP4J Extensible SNMPv3 open source stack for Java SE 8 or later with MD5, SHA-1, SHA-2 and DES, 3DES, and AES security, as well as UDP, TCP, TLS, DTLS transport. SNMP-Agent Development Developing an SNMP agent is far more complex than implementing a SNMP manager. SNMP4J-Agent - the defacto standard for Java SNMP agent development - reduces that complexity to a minimum. Use AgenPro code generator
インターネットの普及に加えて、リッチクライアント/RIAの発展とともに、アプリケーションの形態は、C/S(クライアント/サーバ)システムから、Webアプリケーションシステムにシフトしています。一般の情報発信システムだけではなく、企業の基幹情報システムまで、盛んにWebアプリケーションで構築するようになりました。 この変化の主役であるといわれる、Java技術は、Webアプリケーションシステムの発展とともに、ネットワークの親和性や、プラットフォーム適用の多様性で、広く受け入れられて、Webアプリケーションシステム開発の基盤技術になっています。 これまでのC/Sシステムでは、サーバロジックはC/C++で実装されるケースが一般的でした。C/SシステムからWebアプリケーションシステムにシフトする際に、Java技術を導入することを決めた場合、Java技術で、すべて新規開発するのは1つの選択肢ですが、
あのWebサービスもJVMを利用している 「Javaは大規模なエンタープライズシステムにしか使われない」 それが常識だと思っていませんか? たしかに、これまでJava Virtual Machine(JVM)は、他の言語を実行すると遅く、Javaのプログラムを実行する環境にすぎないものでした。ところが、Java 7から実装されたInvokeDynamicにより、JVM上で、RubyやPHPなどさまざまなコンピュータ言語で記述されたプログラムをより高速に実行できるようになりました。 これにより、今までエンタープライズでJava言語で記述されたプログラムを実行するだけの環境であったJVMが、汎用的な実行環境になったと言えます。また、これまでJavaの実行環境として使用されていたノウハウが、他の言語で記述されたプログラムを実行する際にも利用できます。 最近では、TwitterがJVMをアプリケー
米Oracleは1月13日(現地時間)、1月10日に発覚した「Java 7 Update 10」の深刻な脆弱性に対処したアップデート「Java 7 Update 11」を公開した。JavaコントロールパネルあるいはOracleのWebサイトからダウンロードできる。 この脆弱性を利用した攻撃の発生がセキュリティ各社から報告され、脆弱性に関する詳しい情報もインターネットで出回っていることから、Oracleではできるだけ早くこのアップデートを適用するよう、強く推奨している。 リリースノートによると、2つの脆弱性に対処した他、Javaコントロールパネルでのセキュリティレベルの初期設定を「中(M)」から「高(H)」に変更した。これにより、ユーザーが無署名のJavaアプレットなどを起動しようとすると、必ず警告が表示されるようになる。
オラクルは、メンテナンスとサポートのオプション、関連するタイムラインを把握していただくために、このOracle Java SE Supportロードマップを公開しています。オラクルによる最新の無料JDKリリースをお探しの場合、oracle.com/javadownloadまたはオープンソース・ライセンス(jdk.java.net)を参照してください。オラクルでは、Oracle Java Verified Portfolioの機能に関する個別のサポート・ロードマップも提供しています。これは、オラクルのお客様に対して全面的にサポートされるライブラリ、フレームワーク、ツールを集約したポートフォリオです。 このロードマップにおいて、各用語を以下の意味で使用しています。 オラクルのお客様とは、(1) 有効なJava SE Subscription製品をご利用のお客様、(2) Oracle Java
Javaのアプリケーションによって出力されたログの時刻がずれている現象が発生。 かつて、HP-UXで「はまった」ことを思い出した。 当時は、HP-UX上のWebアプリケーションにて、log4jを用いてログを出力していた。log4jをふつうに用いていると、LoggingEventのインスタンスを生成する際にSystem#currentTimeMillisメソッドを用いて時刻を取得している。 しかし運用が開始し、定期メンテナンスを繰り返すうちに、ログの時刻がOSの時刻とずれていることに気がつく*1。System#currentTimeMillisメソッドでは、OSから時刻を取得していると思っていたので、Java側の問題ではないと思っていたのだが、、Webアプリケーションを再起動すると、時刻のずれがなくなるのだ。そこで、本腰を入れて調べてみたら、すぐに見つかった。 HotSpot JVMは、ge
JVM(Java™ Virtual Machine)を搭載したリコーの複合機はコピー、スキャン、プリント、さらにはEメール、インターネットとの連携なども可能なマシン。そんな複合機で、組み込みJava™プログラミングによる「ビジネスアプリケーション※ 」を自由に開発し、発想のユニークさや技術力を競う大会、それが「RICOH & Java™ Developer Challenge」です。複合機とJava™の潜在能力を引き出すのは、学生の皆様自身。新しいアイデアに期待しています。 ※ゲームやWebサイトのデザインなどを除く、オフィスで利用される「実用的な業務アプリケーション」のこと。 汎用性、移植性に優れ効率的で安全なJava™のテクノロジーは、ネットワークコンピューティングに適した技術です。オープンソース環境に支えられ、PC、携帯電話、ゲーム、カーナビ、HDDレコーダーなど、さまざまなデバイス
オブジェクト指向プログラミングの考え方については、今までこのブログでも何度か取り上げてきました。 [オブジェクト指向] - 達人プログラマーを目指して オブジェクト指向プログラミングはプログラミング技法のすべてではないとはいえ、Javaのようなオブジェクト指向言語で本格的なプログラムを作るには理解を避けて通ることができませんし、また、関数型言語など他のパラダイムの言語を利用するにしても、オブジェクト指向の考え方をまったく理解しないまま使いこなすということは困難でしょう。オブジェクト指向の考え方はデータ構造やアルゴリズムといったことと同様に、プロフェッショナルなプログラマーが理解しておくべき基本的な素養といってもよいと思います。実際、海外では募集要項でオブジェクト指向の理解を前提とすると書かれていることが普通ですし、プログラマーの面接試験で、アルゴリズムと並んでオブジェクト指向プログラミング
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く