<< 2008/01/04 | Home | 2008/01/06 >>
PR: 転職    転職    合宿免許    漫画    シルバー    ブライダルエステ    墓地・霊園    葬式   

NetBeans6のGlassfishコンソール

どうも、無用に改行が入るみたいだ。

long start = System.currentTimeMillis();
...
System.err.printf
    ("Elapsed %d ms.%n",
     System.currentTimeMillis() - start);

とすると、

Elapsed 
1
 ms.

みたいになる。ためしに、

    System.err.print("Hello");
    System.err.print("World");

とすると、

Hello
World

あぁ、やっぱり改行が入りますな。

RMI

確か、最近はrmicいらなくなったんだよねってことで試すも、Stubが見つからないというエラーで悩む。と思ったら、こんなところに書いてあった。

The static method UnicastRemoteObject.exportObject(Remote) is declared to return java.rmi.server.RemoteStub and therefore cannot be used to export a remote object to use a dynamically generated stub class for its stub. An instance of a dynamically generated stub class is a java.lang.reflect.Proxy instance which is not assignable to RemoteStub.

Stubをダイナミックに作りたい時は、exportObject(Remote)じゃだめよってことらしい。で、正解はexportObject(Remote, 0)のようだ。そういうことは、ちゃんとAPI仕様書に書いておいて欲しいなぁ。

Hypertext Transfer Protocol^2

HTTPプロトコルって結構見つかるね。確かに、なんとなくゴロがいいから、つい口に出てしまいそうだ。ftpプロトコルも負けてない。

Servlet復習

う〜む、NetBeans 6でサーブレット作ると、雛形ではHttpResponse.getWriter()でとったHttpResponseを最後にclose()するんだけど、これってclose()するもんだっけ。

PrintWriter out = response.getWriter();
try {
    out.println("<html>");
    out.println("<head>");
    out.println("<title>Servlet HelloServlet</title>");  
    out.println("</head>");
    out.println("<body>");
    out.println("<h1>Servlet HelloServlet at " + request.getContextPath () + "</h1>");
    out.println("</body>");
    out.println("</html>");
} finally { 
    out.close();
}

というか、あれだ、API仕様書に、どうすべきか明確に書いてないのが悪いんだよな。「flush()するとコミットされますよ」としか書いてない。でも裏を読めばclose()はいらないともとれるか。なんとなくgetXXX()でとったものを、close()するのは抵抗あるんだけど。逆にopenXXX()でとったものはclose()が必要に感じる。

P.S. と思ったけど、java.sql.Connection()は、getConnection()したものをclose()するか。ストリーム系も、基本的にnewしたものをclose()だし、Javaだと、むしろopen() - close()ってパターンは少ないかも。

このサイトの掲載内容は私自身の見解であり、必ずしもIBMの立場、戦略、意見を代表するものではありません。
日本アイ・ビー・エム 花井 志生 Since 1997.6.8