サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
www.ki.rim.or.jp/~kuro
以前、antのjavaタスクを使ってjunit.textui.TestRunner を起動したときには、 エラー表示の際にantのスタックトレースまで加わってしまって、とても悲しい思いをした。 素敵なことに、antにはjunit用のオプショナルタスクがあるので早速使ってみる。 ●準備 Antはすでにあるので省略。必要ならAnt Homeから持ってくる。 JUnitタスクはオプショナルタスクなのでJUnitのjarファイル(junit.jar)をAntディレクトリのlibディレクトリに入れる。 JUnitReportタスクも使うのならxalan.jarもAntのlibディレクトリに入れる。 Xalanはここ。 ●とりあえずシンプルに実行 何はともあれ、「必須」パラメータのみでやってみよう。テスト対象は基本に立ち返ってjunit.samples.SimpleTest。 build.xml:
WebDAV のテスト(PROPFIND操作・フォルダ編) プロパティの取得操作をするPROPFINDMETHODをフォルダに対して使ってみる。 c:\inetpub\wwwroot\kuro\index.htmをindex2.htmにコピーしてから そのindex2.htmに対して実施してみた。 いきなり、allpropでプロパティを一括ゲットしてみる。 入力: PROPFIND /kuro/ HTTP/1.1 Host: localhost Depth: 0 Content-Type: text/xml; charset="utf-8" Content-Length: 103 <?xml version="1.0" encoding="utf-8" ?> <D:propfind xmlns:D="DAV:"> <D:allprop/> </D:propfind> 出力:
スクリプトからストアドプロシージャの結果を取得する。 MSDEでは(SQL Server 7.0も)ストアドファンクション、いわゆるユーザ定義関数はない。 SQL Server 2000 ではサポートされたらしいけど。 ストアドプロシージャから値を取得する方法は3通りある。 1つ目はストアドプロシージャの返り値を取得する方法。 ストアドプロシージャは整数型限定だが値を返すことができるのでこれを利用する。 2つ目はストアドプロシージャの結果セットを使う方法。 ストアドプロシージャ内でSELECT文を実行するとその結果を ストアドプロシージャの結果セットとして取得することができる。 3つ目はストアドプロシージャが実際のテーブルの値を変化させて、その結果をあとから取得する方法。 この3つめの方法は自明かつあたりまえなのでここでは試してみない。 まず、ストアドプロシージャの返り値
James 実験場(JavaのMail Server) ここは、Javaで記述されているMail(SMTP,POP等)Server である、Jamesの実験場。 Java Apache Mail Enterprise Serverの略でJamesになるらしい。 ●目次
Servlet 内では Context や Request からいろんな情報がもってこれる。 いつもわけわからなくなるので、一通りめぼしいのをやってみておこう package kuro; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * サーブレット系 getXXX いろいろテスト */ public class InfoTest extends HttpServlet { pr
Javaにはデジタル証明書を作成したり、その証明書を使ってjarファイルにデジタル署名をしたりすることができる セキュリティーツール群がついている。 ここではそれらを使ってみよう。 JDK 1.3には3つのセキュリティ・ツールが付属している。 keytool jarsigner policytool keytoolは証明書の作成などに使用するツール。まずはこれを使う。 jarsignerは、jarファイルにデジタル署名をするときに使うツール。 policytool は、Javaのセキュリティ・ポリシーファイルを作成するためのGUIツール。 当面こいつは使うつもりは無いのだ。 keytoolでは、証明書を格納する場所としてキーストアと呼ばれるファイルを使用する。 keytoolの主な機能は、 キーストアを作成する。 デジタル証明書をキーストア内に作成する。 キーストア内のデジタル証明
ここは、Java の JMX(Java Management Extensions )に関する実験場。 ちなみに、J2SE5.0 で実装されているJMXは、 JMX Specification バージョン 1.2 (Maintenance Release、2002 年 12 月) JMX Remote API Specification のバージョン 1.0 (Final Release、2003 年 10 月) だそうだ。 目次
java.sql.CallableStatement を使ってストアドプロシージャを実行してみよう。 PreparedStatementと違って今度は出力パラメータを指定することができる。 また、ストアドプロシージャによってはレコードセットを返すこともあるのでこれも試してみよう。 一応出力パラメータが何もないとさびしいので、返り値を持つタイプからやってみる。 ここでは単に、入力値(Int)の2倍を返すストアドプロシージャを作る。 CREATE PROCEDURE GetDouble (@InputValue INTEGER ) AS DECLARE @OutputValue INTEGER SET @OutputValue = @InputValue*2 RETURN @OutputValue GO 上記のプロシージャを呼び出す。 package jdbctest; public cla
KUROのページへようこそ ここはInternet関連でKuroがいろいろやってみたことを紹介しています。 動作確認は基本的にInternet Explorer (IE) 5.01 でしかしていません。 それ以外のブラウザでは動作しないことがあります。 ActiveX関係のページ ActiveX についていろいろ試したところです。 ActiveX Control や VBScriptなどがあります。 最低でもIE4.0 が必要です。 DynamicHTML のページ Dynamic HTML 及び JavaScript でいろいろやってみたところです。 IE4.0以降が必要です。IE5.0以降でないと動かないかもしれません。 Netscapeでは多分動かないところがあります。 XML関係のページ XML関連のページです。 サンプルの表示にはIE5.0以降が必要です
パラメータなし、変数なし、返り値なし、一コマンド実行するだけ、という 超シンプル版で動作確認してみよう。 1> CREATE PROCEDURE PriceDown AS 2> Update BookTable SET Price = Price/2 3> GO ストアドプロシージャができた。はたして動くのか? 1> EXEC PriceDown 2> GO (4 件処理されました) 1> SELECT * from BookTable 2> GO BookID Title AuthID Price ----------- -------------------- ----------- ----------- 1 本その1 102 250 2 本その2 101 15 3 本その3 103 500 4 Book No.Four 101 5000 動いた。各本の価格も半額になっている。
Javaを使ってLDAPクライアントを作成してみよう。 Java用のライブラリは何種類かあるらしいが、 主なものとしてはNetscape の Directory SDK(だったかな)と、 SunのJDK1.3SEに含まれるJNDI(Java Naming DIrectory Interfaceか?)がある。 うわさでは、Netscape のやつのほうは、CのライブラリのJava版みたいな感じだそうだ。 せっかくJBuilder4を入れたらJDK1.3も入ったので、今回はJNDIを使ってみよう。 こんな感じだ。 package test1; import java.util.Hashtable; public class test1 { public static void main(String[] args) { Hashtable env = new Hashtable(); e
とりあえずこんなJavaコードにする。 1,2,3と順にint値を渡して対応する文字列をもらう。 public class HelloNumber { public native String convertToString(int nNumber); static { System.loadLibrary("HelloNumber"); } public static void main( String[] args ) { HelloNumber hello = new HelloNumber(); for ( int i=1; i<=3; i++ ) { String strNumber = hello.convertToString(i); System.out.println( strNumber ); } } } javacでコンパイルし、javahでヘッダファイルを作成する。
デジタル証明書の作成 普通はデジタル証明書の作成は、証明書発行機関に依頼するか、自分で証明書サーバを設置して発行する。 Windows 2003 Server やWindows 2000 Serverには証明書発行サービスが含まれているのでこれを使うと簡単に発行できる。 ここでは、MicrosoftのAuthenticode Tools(IE 5)によって証明書を作成する。 Authenticode Tool Authenticode Toolsには、デジタル証明書の作成やキャビネットへのデジタル署名を行うツールが含まれている。 含まれているツールは以下のとおり MakeCert, which creates a test X.509 certificate. Cert2SPC, which creates a test Software Publisher Certificate
<FORM action="servlet/kuro.HttpEcho" method="POST" enctype="multipart/form-data"> タイトル:<INPUT type=text name=TITLE><BR> ファイル: <INPUT type=file name=FILE1><BR> <INPUT type=submit value=OK><BR> </FORM> 上のようなFORMからファイルを送信すると、 .... content-type: multipart/form-data; boundary=---------------------------7d42e2171a0316 .... -----------------------------7d42e2171a0316 Content-Disposition: form-data; name=
JNI(Java Native Interface)では、Javaコードからプラットフォーム固有コードを呼び出したり、 逆にプラットフォーム固有コードからJavaコードを呼び出すことができる。 ここでは、プラットフォーム固有コードとは常にWin32コードを指すものとする。 まずは、Sunのチュートリアルを見ながら一発やってみるのだ。 チュートリアルに基づいて、単に"Hello World."を画面に出力するWin32コードを呼ぶサンプルを作る。 Javaのコードはこんな感じ。(HelloWorld.java) public class HelloWorld { public native void displayHelloWorld(); static { System.loadLibrary("hello"); } public static void main( String[]
ブラウザの画面を自動的に更新させるには、通常は <META HTTP-EQUIV="REFRESH" CONTENT="10;URL=newURL"> というような META タグを HTML に入れておいて、ブラウザ側が自動的にとりに行くようにする、 いわゆるプル型というやつを使う。 が、恐ろしいことに接続しっぱなしにしておいて、サーバー側から定期的に、だらだらと 新しいHTMLを流し込んで画面を更新する、という大技があるらしい。 ContentType に、multipart/x-mixed-replace という見るからに怪しそうなモノを指定するらしい。 multipartなのでboundaryも指定して、複数のコンテンツを指定する。 すると、各コンテンツを自動的にブラウザが表示する。 接続しっぱなしなので、定期的に各パートを流し込むことで、ブラウザ画面の更新ができる。 切り
Java Security API群の一部を使って、メッセージダイジェスト(ハッシュ)を計算してみた。
Boot.iniファイルは、Windows2000(NT)が起動するときに表示される起動メニューを設定するファイルだ。 通常は、起動ディスクのルート(たとえば、C:\)にある。 ただし、ReadOnly属性やシステムファイル属性や隠しファイル属性などが付いているので、 デフォルトのExplorerの設定では見えないし、ReadOnly属性をはずさないと編集もできないので注意。 このboot.ini ファイルの中身は以下のようになっている。 [boot loader] timeout=5 default=multi(0)disk(0)rdisk(0)partition(1)\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Professional" [op
JDK の sun.misc パッケージにはちょっと便利ないろんなクラスがある。 これらは文書化されていないので、いつ変わる(orなくなる)かわからないが、 とりあえず使えそうなのをメモっておこう。 本題に入る前に準備を一つ。 CharacterEncoder は、 byte列を文字列に変換するエンコーダの抽象クラス。 encode( byte[] in ) String encode( byte[] in, OutputStream out ) void throws IOException encode( InputStream in, OutputStream out ) void throws IOException encodeBuffer( byte[] in ) String encodeBuffer( byte[] in, OutputStream out ) voi
NativeコードからJavaコードを呼び出す方法はわかった。 今度は、NativeアプリからJavaコードを実行してみる。 先ほどまではすでにJavaVMが有ったのだが、今回は、Javaコードを実行する前に JavaVMをロードする必要がある。 とりあえず呼び出されるJavaコードを作成しておこう。 public class HelloVM { static void hello() { System.out.println("HelloVM(Java) executed.\n"); } } プログラムの起動はNativeコード側なので、Javaにはmain関数は必要ない。 また、JavaからNativeコードを呼び出すこともないのでnative関数も必要ない。 したがって、もちろん、javahでNativeコード用ヘッダファイルを吐く必要もない。 Sunのサイトの JNIチュート
MBRを破損した場合や、ディスク上のNTローダの破損等、「Win2000(NT)本体はあるが、起動できない」という状況回避用のディスクを作る。 ここでは、Win2000用といっているが、実際にはNT用のやり方。 ここらへんはWin2000でもNTでも同じなので別段区別する必要はないようだ。 Win2000上でフロッピーをフォーマットする。 フロッピーにWin2000の起動ハードディスク上にあるはずの、 boot.ini bootfont.bin NTDETECT.COM ntldr の各ファイルをコピーする。 Windows 95/98とのデュアルブートにしている場合には、 bootsect.dosファイルが必要だが、デュアルブートになどしていないのでいらない。 また、SCSIブートをしている場合には、Ntbootdd.sys もハードディスク中に あるはずなのでこれもコピーして
Cabinetファイルとデジタル署名 自分でActiveXコントロールを作成したら、配布用にパッケージ化する必要がある。 また、パッケージ化したら配布元と改変されていないことを証明するためのデジタル署名が必要となる。 ここはパッケージ化としてCaninetファイル(Cabファイル)を作成する方法と、 デジタル証明書の作成、及びデジタル署名の方法についての覚書である。 通常は、正式なデジタル証明書は何らかの証明機関に発行してもらうか、独自の認証局を立てて発行する。 ここではMicrosoftの証明書作成・署名用のツールを使ってデジタル証明書を作成する方法を示す。
MKCOL,COPY, MOVE, DELETE メソッドを使った基本的なコレクション(フォルダ)操作実験。
C++などのNativeコードからJavaコードを呼び出す。 VMのロードなどの余計な作業を省くため、Javaから呼び出されたNativeコードが、 Java側のメソッドを呼び出すといったコールバック的なケースでやってみよう。
CABファイルの作り方。 ActiveXコントロールを自分で作成したら配布用のCabファイルを作成する。 cabarcについて Cabファイル作成には、cabarc.exeを使用する。 詳しい情報は、 MSDN Libraryの、 Win32 and COM Development > Component Development > ActiveX Controls > SDK Documentation > ActiveX Controls Overviews and Tutorials > Packaging ActiveX Controls を参照。 ここには、Cabファイルに同梱するINFファイルの情報もある。 cabarc.exeは、Microsoft Cabinet SDK に含まれている。 MSDN Libraryの、 Web Development > In
ここは、テスティングフレームワーク、JUnitの実験場。 XP(eXtreme Programming)というソフトウェア開発プロセスの中で、 重要視されている要素として「テスト」項目がある。 JUnitはそのテストを支援するための、いわばテストツールのようなものらしい。 で、その中の考え方の一つに「test first」、 要は「先にテストコードを書き、それが動作するように本体コードを書く」というのがある。 是非はともかく、考え方としては面白い。 さらに、最近の開発ツール(JBuilderやEclipseなども)ではこれらテスティングフレームワーク対応のものも多い。 というわけで、JUnitで何ができるのか、とりあえず使ってみる。 ●目次
C++などのNativeコードからJavaコードを呼び出す。 VMのロードなどの余計な作業を省くため、Javaから呼び出されたNativeコードが、 Java側のメソッドを呼び出すといったコールバック的なケースでやってみよう。 C++などのNativeコードからJavaVMを起動して、Javaコードを呼び出す。 すでにJavaVMがロードされている環境でC++からJavaコードを呼び出す方法はわかった。 次は、C++アプリを起動し、そこからVMをロードしてJavaVMを起動しよう。
次のページ
このページを最初にブックマークしてみませんか?
『www.ki.rim.or.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く