Shammer's Philosophy

My private adversaria

Java

Java RMI 復習予定

現在、仕事でRMI通信の処理に絡んだ問い合わせを受けている。しかし、これがなかなかの曲者。自分がRMIを利用した開発をあまり経験していない、ということもあり、RMIの動作でもよくわかっていない部分が多い。これを機に、RMIをしっかり勉強してみようと思…

同一ソケットから HTTP リクエストを繰り返し実行するクライアント Ver 1.0

HTTP で何か動作確認するときには、Cookie を追加したくなったりもするので、同一ソケットから HTTP リクエストを繰り返し実行するクライアント(修正版) - Shammerismにさらに手を加えて Cookie も送付できるように変更。また、Sleep する時間も調整できるよ…

同一ソケットから HTTP リクエストを繰り返し実行するクライアント(修正版)

同一ソケットから HTTP リクエストを繰り返し実行するクライアント - Shammerismを実際に動作させてみたが、一部期待通りに動作しなかったので修正。ただ、マルチバイト文字を問題なくハンドルできるようにするのは難しそうだ。当然だが、サーバー側が Keep-…

同一ソケットから HTTP リクエストを繰り返し実行するクライアント

ちょっと書いてみたのでメモ。 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.Socket; public class RepeatClient { public static void main(Str…

クライアントのポートを固定するーJava版ー

Java でもCと同様の方法でできるようだ。Socket作成後、connect する前に bind しておけばいい。Socket Class に使用可能なメソッドも定義されているし、やり方はCよりイメージしやすい気がする。単にJavaの方に慣れているだけか? import java.io.*; import…

引数を変数に代入する理由

Cの場合はほぼ確実に、Javaでも以下のようなコードを見かけることがある。 void foo(int x, int y) { int a = x; int b = y; ... }コードだけの話だと、この関数内ではそのまま x や y といった変数名で目的の値を参照できるのに、あえてローカル変数に入れ…

ダブルチェックの代わりに・・・

JSR 133に、Javaのメモリモデルについての情報がある。 そして、この情報は和訳されている様子。 http://www.javareading.com/bof/cookbook-J20060917.html reorderとか、volatileの話など、かなりマニアックな情報だ。 さらに、FAQの話もある。先のダブルチ…

Macにglassfishをインストール

Mac OS X Leopard へGlassfish 2.1 をインストールしてみた。 方法は単純で、 https://glassfish.dev.java.net/public/downloadsindex.html からダウンロードすればよい。 ダウンロードして、インストールはjarを解凍するだけ。カレントディレクトリに glass…

ダブルチェックでも不十分・・・

JavaでSingletonなどを実装するときに、インスタンスフィールドが 複数スレッドからアクセスされないようにするためのテクニックとして、 ダブルチェックという手法がよく使われる。こんな感じ。 public final class SingletonService { private static fina…

OracleがSunを買収・・・

ほんの数ヶ月前、IBMがSunを買収しようとしているというニュースを見て、業界再編は終わっていないんだなぁと思った矢先、先にBEAを買ったOracleがSunを買収することになったという報道。 これにはかなり驚いた。WebLogicとJRockitなどのミドルウェアを入手…

Threadごとの負荷を確認するコマンド

LinuxでJavaアプリケーションを動かしていて、どのスレッドがどれだけのCPUリソースを食っているか、というのを調べたいときがある。そのときに使用できるコマンドをメモ。 topコマンドでスレッドまで表示させる topコマンド表示中の対話コマンドで"H"を入力…

AxisでWebサービス

最近、というかこれからWebサービスの利用がもっと身近になるだろうなぁ、という予測から、Axisをちょっと使ってみた。これは、Tomcatなどのコンテナと違って、独自のプロセスで動作するわけではなく、すでにコンテナとして動いているものに「Webサービスエ…

Socketからのデータ読み込み考察-InputStream編

Javaで、Socketからデータを読み込むときに、どこまでデータを読み込むか、それをどうやって制御するのかということを考えてみる。様々なサイトに情報があるが、java.io.InputStreamReaderを使うサイトが多いようだ。たしかにこれを使うといろいろ簡単なのか…

開発環境(Eclipse)上でコンパイルをするということは・・・

本当は使いたくなくても、仕事をしていると使わざるを得ないものってある。 自分にとっては、JavaのIDEってそれ。なんかほとんど使いこなせないくらい多くの機能があってそれで非常に重たい。 シンプルでいいから軽くしてくれ・・・って思ってしまう。 Antや…

Java Socket API Sample1(EchoClient)

昨日に続き、Socket API のサンプルの続き。自分が送ったメッセージをそのままサーバーから受け取り、 それを表示するクライアントのサンプル。ほとんど、http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-06520-0と 同じであることは昨日のサーバー側…

Java Socket API Sample1(EchoServer)

単純に、クライアントから受け取ったメッセージをそのままクライアントに返すだけのサンプルを作成。 と言っても、http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-06520-0の内容をほとんど真似たもの。 ソースコードも上記サイトより入手できるようだ…

JAXPでXercesを使用する

Xercesは、JAXP にも対応している。 これまでは、直接Xercesのクラスを直接生成する方法をとってきたが、 これだとXMLを扱うライブラリを変更した場合にはソースコードの書き換えが必要になる。 XMLを扱うライブラリに依存した形になっているので、これを改…

Invalid attribute value for 'name' in element 'attribute': Value 'org:sample' is not a valid NCName.

attribute name="org:sample" ... とか定義していると、 Invalid attribute value for 'name' in element 'attribute': Value 'org:sample' is not a valid NCName.となった。name属性には、「:(コロン)」を使えないようだ。 ここは使おうとして使ったの…

the content of an element information item must match (annotation?, (simpleType | complexType)?, (unique | key | keyref)*).

attribute要素をXML Schemaで定義するときには、complexType要素の中に含めなければならないらしい。 最初のSchema定義ではこれを間違えていて、complexTypeの外に定義していた。<element name="sampleElement"> <complexType> <〜複数のタグ〜> </complexType> <attribute name="sampleAttribute" type='string' use='required'/> </element>というように、定義されていたが、こうなっているとthe …

Schema error: Anonymous complexType: Invalid child 'element' in the complex type.

先日のXMLエラー解析の続き。complexType直下にがあると、Schema error: Anonymous complexType: Invalid child 'element' in the complex type.というエラーが出ることを確認。 complexType直下には、element要素をおけないらしい。 直接置かずに、や、など…

JavaEE 5 SDK の勉強とインストール

どうやらWLSの場合、EJB3.0に対応しているのはWLS10系以降のようだ。 が、そもそもの問題としてあまり詳細を把握できていない状態でWLS10をインストールして JavaEEを勉強しようとしてもどこまでがJavaEEの標準仕様でどこからがWLSの拡張仕様なのか、 その辺…

Schema in ***.xsd has a different target namespace from the one specified in the instance document

内容以前にカテゴリをJavaにしているけれど・・・XMLにすべきか。 う〜ん、まあJavaで解析しているからJavaでよしとしよう。XML Schema 宣言部で下記のようになっている場合、<org:sample xmlns:org="http://www.sample.com/myoriginal" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sample.com/myoriginal sample.xsd">接頭辞「org」は、名前空間”http://www.sam…</org:sample>

XML Schema 定義されたXMLを解析する

次のようなXML Schemaで定義されたXML文書を解析するサンプル。 XML Schemaにしてみたものの、先日のDTDと同じ構成のものにしたつもり。 でも、間違えているところがあるかも・・・ <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:org="sample" targetNamespace="http://www.sample.com/myoriginal"> <element name="sample"> <complexType> <sequence> </sequence></complextype></element></schema>

XML学習用のbuild.xmlを書く

EmacsでJavaのソースやXMLの書き換えをしたいので、作業簡易化のためにAntを使うことにしよう。 Antと言えば、build.xmlを書かなければならない。必要なのは、取り急ぎjavacとjavaのみ。この2つを含むものを書く。 <project default='all' basedir='.'> <property name='source' value='${basedir}/src'/> <property name='dist' value='${basedir}/classes'/> </property></property></project>

DTD定義されたXMLを解析する

先日のXML文書に合わせてDTDを作成し、そのDTD定義を追加したXMLを解析するサンプルを書いてみる。 まず、DTD定義は次のようになる。

整形式のXML文書を解析するJavaサンプル

XMLの解析には、大きく分けて 整形式(well-fromed)の解析 妥当性(valid)の解析 の2つがある。整形式とは、タグの終了順序が正しいとか、きちんとタグが閉じられているXMLのこと。 つまり、XMLの文法チェックのようなもの。終了タグがないとエラーとなる。一…

Java版簡易nslookup?

Javaでnslookupを書いてみる。とは言っても、実態はjava.net.InetAddressのサンプルといったところだが。 import java.net.*; public class NSLookUpJavaEdition { public static void main(String[]args) { if( args.length != 1 ){ System.out.println("Us…