#chiroito ’s blog

Java を中心とした趣味の技術について

Java

ファンクションの入出力を JSON 形式にする @ Fn Project

Fn Project で作成したファンクションの入出力を JSON 形式にしてみましょう。 以下のチュートリアルをベースにしています。 tutorials/JavaFDKIntroduction at master · fnproject/tutorials · GitHub

Java でファンクションを開発する @Fn Project

Fn Project + Java の組み合わせでファンクションを開発するチュートリアルを紹介します。 原文(英語)は以下にあります。 fn/examples/tutorial/hello/java at master · fnproject/fn · GitHub Fn サーバや Dashboard の作り方は以下をご覧下さい。 関数プ…

Eclipse 上で OpenJDK を開発/デバッグする

OpenJDK を開発したりソースを見ていると、関数やクラスの定義を追いたくなったり、実行しながら動作を確認したくなることがあります。 多くのエンジニア達は vi や grep 、gdb を使ってるそうです。私にとってCUIでの開発はハードルが高くてかなりつらいの…

Docker Store から Oracle 公式イメージを取得する

米国時間の2017年4月19日に dockercon17 で Oracle 製品の docker イメージが正式にサポートされたと発表されました。 Docker Store には、Oracle WebLogic Server、Oracle JDK、Oracle Databaseなどの Oracle 製品がインストールされたイメージがあります。…

OpenJDK を Linux でビルドする

OpenJDK の JDK 9 をビルドします。 ビルドするには以下の手順を行います。 必要なパッケージのインストール ソースコードをダウンロード コンフィグレーション ビルド 今回は Oracle Linux 7.3 上に環境を作っています。RHEL や CentOS でも手順は変わらな…

Oracle公式のMavenリポジトリを使う

Oracle が公開している Maven リポジトリを使うには以下 2 つのステップを実施します。 ライセンスを確認 Mavenの設定 この 2 つのステップが完了した後に、サンプルのプロジェクトを使用して設定が行なえていることを確認します。 参考:Oracle Mavenリポジ…

Spring Boot on Oracle Application Container Cloud Service

Oracle Application Container Cloud Service (ACCS) は Java、Node、PHP で書かれた任意のアプリケーションを実行できるクラウドサービスです。 Application Container Cloud | ACC | Oracle Cloud 作成したアプリケーションに加え、アプリケーションをどの…

mvnw で java.net.ConnectException

Spring Boot のアプリケーションをパッケージングしようとしたらapache-maven-3.3.9-bin.zipファイルを取得するところでjava.net.ConnectExceptionが出てしまいました。プロキシを通さないといけない環境なので、環境変数にはプロキシの設定をしていますが、…

JAX-WS アプリケーションの開発(スタブの自動作成、スタブの使用)

JAX-WS のクライアントから次のJAX-WSのクラスを使用するまでの流れを紹介します。 package chiroito.jaxws; import javax.jws.WebMethod; import javax.jws.WebService; @WebService public class JaxWsSample { @WebMethod public String hello() { return…

IntelliJ IDEA と WebLogic Server で Java EE 開発

IntelliJ IDEA と Oracle WebLogic Server を使用して Java EE の Web アプリケーションを開発するまでの手順です。最後に開発時間を短縮する Tips もあります。 前提条件 Oracle WebLogic Server 12.2.1.2.0 (以降 WebLogic Server)のインストールと構成ウ…

Oracle 公式の Docker レジストリからイメージを pull

Oracle 公式の Docker レジストリには、Oracle WebLogic Server、Oracle JDK、Oracle Database、MySQL などの Oracle 製品がインストールされたイメージがあります。これらの公式イメージは Oracle 社のシングルサインオンアカウントを登録するだけで使用で…

IntelliJ IDEA で CDI をデバッグする時の落とし穴

IntelliJ IDEA (以下 IntelliJ) を使用して CDI 実装の1つである Weld を使用したアプリケーションを開発している人は多いかと思います。 テストフェーズでは、テストが上手くいかず、原因を特定するためにデバッグ実行をして動きをステップ毎に確認すること…

Java がファイルを読んでいるか strace を使って確認する

Java アプリケーションの動きを分析をしていると、javaプロセスがファイルを開いたのかどうか確認したいことがあります。自分で作成したアプリケーションがファイルを読み書きしていればログを入れて確認できますが、アプリケーションの変更が簡単に行なえな…

OracleJDKのDocker イメージで任意のアプリケーションを実行する

Oracle JDK の Docker イメージ上で Java SE のアプリケーションを実行するには以下の手順が必要です。 アプリケーションの用意 OracleJDK 環境構築 アプリケーションの実行 アプリケーションの用意 現場で使う場合には CI ツールでビルドされた jar/war/ear…

Oracle公式Java実行環境のDockerイメージを構築

概要 Oracle 社の公式の Docker の設定ファイルが Github 上で公開されています。 github.com 設定ファイルには様々な製品の物が含まれていますが、今回はこれを使用して Oracle Java の実行環境を構築します。 作業 設定ファイルと Java のサーバランタイム…

nasne 監視システム -Oracle Stream Explorer-

この記事はnasne監視システムを作る記事の第3弾です。[nasne 監視システム概要]で紹介しましたが、nasne監視システムは4つの要素で構成されています。今回はその中で最もコアな部分である Complex Event Processing を紹介します。Complex Event Processing…

nasne 監視システム -収集プログラム-

この記事はnasne監視システムを作る記事の第2弾です。[nasne 監視システム概要]で紹介しましたが、nasne監視システムでは下図のように4つの要素で構成されています。今回はその中で収集プログラムを紹介します。収集プログラムは定期的に nasneから情報を収…

nasne 監視システム概要

背景我が家にはHDDレコーダとしてSONYのnasneが2台あり、2番組を同時録画できるようにしています。普段は録画したら数日中に見て消すので何も気にせず使っていますが、仕事が忙しくなるとどうしても見ることができなくなってしまいます。ある日、仕事に没頭…

JMS 2.0 ハンズオン @JavaOne San Francisco 2015

2015年10月25日(日)~29日(木)にサンフランシスコで開催された JavaOne San Francisco 2015 でJMS 2.0 を体験するハンズオンセッションを行いました。ハンズオンのタイトルは Down and Dirty with JMS 2 [HOL2575] です。ハンズオン資料はこちら(JMS 2 Hand…

Java で Hugepage を使用する

JPOUG Advent Calendar 2013 の 12月12日のエントリです。http://www.zusaar.com/event/1687004Java で Hugepage を使う方法を紹介します。Hugepage は、非常に大きなメモリ空間を使用するDatabaseでのみ使用されると思われがちですが、Database の専用技術…

実行環境に同じクラスが複数あるとどうなるのか

概要 Javaの実行環境で同一のクラスが他のJARファイルにあるとどの様な挙動をするのかを確認してみます。 環境Java SE Development Kit (JDK) 6 Update 29検証 まずは同じクラスファイルを含むjarファイルtest1.jarとtest2.jarを作成します。各jarに入るクラ…

空データか否かによるinsert実行時間の推移

概要 読取元のテーブルからデータを取得、データの加工し、書込み先のテーブルへ書き込む処理の中で、各カラムに保存されているデータがnullか否かにより実行時間にどれくらいの変化があるかカラム数を増加させることにより検証します。実装方法は「単発のin…

insertの投げ方による実行時間のカラム数増加による推移

概要 読取元のテーブルからデータを取得、データの加工し、書込み先のテーブルへ書き込む場合にカラム数を増加させることにより実行時間にどれくらいの変化があるかを検証します。実装方法は「単発のinsertをレコード数繰り返す」、「bulk insert」、「inser…

insertの投げ方による実行時間検証

概要 読取元のテーブルからデータを取得、データの加工し、書込み先のテーブルへ書き込む場合に実装方法にどの様に実行時間が変化するのかを「単発のinsertをレコード数繰り返す」、「bulk insert」、「insert-select」のケースで検証します。 環境 Database…

CoherenceにJARを追加

目的CoherenceでJARを使えるようにする。環境Coherence 3.6.1 Coherenceを解凍したフォルダC:\oracle\coherence-java-3.6.1.0b19636をcoherence_homeとします。概要 Coherenceで自作のJARなど標準的なライブラリに含まれていないJARを含めるためにはJARの配…

Eclipseでjarの作成

目的JavaプロジェクトからJARファイルを作成します。環境Eclipse Helios Service Release 1Javaプロジェクトが作成してある(今回のプロジェクト名はexport_test)作業プロジェクトを右クリックし、メニューからエクスポートを選択します。[Java]の[JARファ…

EntryProcessorを使ってみた

目的CoherenceのEntryProcessorによる並行処理の検証を行う。注:個人的な検証の結果です。検証環境Intel Core i7 S860(2.53GHz)DDR3 16GBWindows7 UltimateJava 6.0 update 18Oracle Coherence 3.6.1検証 CoherenceのEntryProcessorを使い、QuadCore+HyperT…

GAE+JRuby+Rails GAEユーザ情報の取得

目的GAE上で動くRailsのコントローラでGAEのユーザ情報を取得する。環境appengine-sdk 1.4.2Ruby on Rails 2.3.11Ruby 1.8.7Rack 1.2JRuby Runtime 1.6.0JRuby-Rack 1.0.5概要 GAEのユーザ情報はユーザサービスからユーザ情報を取得します。ユーザサービスと…

GAE+Ruby+Rails Servletのリクエストオブジェクトの取得

目的GAE上で動くRailsのコントローラでServletのHttpServletRequestオブジェクトを取得する環境appengine-sdk 1.4.2Ruby on Rails 2.3.11Ruby 1.8.7Rack 1.2JRuby Runtime 1.6.0JRuby-Rack 1.0.5概要 Google App Engine上で動くRuby on Railsの中でJava側のS…

PofSerializerとSerializerの比較-フィールド数増加版-

POF(Portable Object Format)を利用したシリアライザーとJavaのシリアライザーであるPofSerializerとSerializerではどれくらいのパフォーマンスの差があるのかを検証してみました。前回はこちら「PofSerializerとSerializerの比較 」前回はキャッシュに入れ…