カテゴリ: java

 今度のペットネームは「Photon」だそうで。火星だのネオンだの酸素だの光子だの脈絡無いなーと思ったら、アルファベット順に何かカッコよい物体の名前を付けていたそうで成る程。
 インストーラから会社のパソコンに入れたらしばらくして起動しなくなった。これ、前にも起きたな。
 確か、会社パソコンのセキュリティソフトがディスクを巡回して「何かテキストっぽいファイル」があると見境なく暗号化してしまうので起こる。
 なので暗号化対象外のディレクトリにインストールしないといけないのだが、どうもEclipseインストーラを使うと、指定したディレクトリの他のC:\Users\ユーザ名のディレクトリ配下のどこかに何か設定ファイルを作っちゃうんだよな。以前は、インストーラではなくzipを展開する形でインストールしたら解決したんだが、まだ試していない。
 余りに素早く再起不能になったので、4.7とどこが変わったかも良く判らない。既存のPJのビルドを通しただけ。Java 9,10の文法への対応が目玉と聞くが、Java は8の次は11が本番、9,10はスルーが賢明というもの。まぁ自宅では、レンタルVMのメモリが1GBなので当分の間、最後の32bitなJVMたる8だがな。どこかの誰かある程度信用ある団体が、Windows 32bit版の配布をしないものだろうか…。32bitの方が省メモリなので、64bitOS上でも需要はある(ソースは私)。

このエントリーをはてなブックマークに追加 mixiチェック

★本当は、e(fx)clipse を入れるのがベスト
プロジェクトかワークスペースJava CompilerのError/Warningのタブを開き、Forbidden reference(access rule)の設定が「Error」になっているので「Ignore」に変更する。しばしば忘れるのでここに記す。

それにしてもなぜ、JavaFXのクラスはforbiddenなんだろうな。jarを配置しているディレクトリがまずいのか。

このエントリーをはてなブックマークに追加 mixiチェック

 先日、VMのメモリが枯渇してどうにもならので、ActiveMQサーバプロセスを別VM上に切り出してクライアントとの間の通信はREST経由としたんだが、どうもたまに電文が欠落しているような気がして、まぁTwitterへの投稿なので別に良いけど、一応ログを見た。
 やっぱり欠落していた。クライアント側でPOSTが3発目毎に固まっているように見える。HTTPSサーバ側では2発しか受けていない。おそらく、何かFlashとかCommitとか何か終末的処理が抜けているのだろうと思って調べたら
HttpClient - HttpClient Tutorial

method.releaseConnection();

が行われていなかった。

This is a crucial step to keep things flowing. We must tell HttpClient that we are done with the connection and that it can now be reused. Without doing this HttpClient will wait indefinitely for a connection to free up so that it can be reused.

http://hc.apache.org/httpclient-legacy/tutorial.html

とのこと。
こんなものがあったとは。迂闊。毎回1発しか試してなかったから見つからなかったんだな。しかし1発目成功、2発目から固まるなら分かるが、なんで3発目から固まっていたのだろう…。

RESTful Webサービス
RESTful Webサービス
posted with amazlet at 17.10.20
Leonard Richardson Sam Ruby
オライリー・ジャパン
売り上げランキング: 46,783

このエントリーをはてなブックマークに追加 mixiチェック

WebLogicでは可能らしい。やったことないけど。いつも外からHTTPで受けてJMSキューに自分で書いてたからなー。
同一サーバ上ならJMSバインディングでも良い気もする。HTTPって「ポートに穴が空いてることが多い」だけが取り得だし。
9.2のドキュメント
http://otndnld.oracle.co.jp/document/products/wls/docs92/webserv/advanced2.html
11gのドキュメント
http://docs.oracle.com/cd/E21043_01/web.1111/b61634/jmstransport.htm#i225309
Webサービススタートガイド http://docs.oracle.com/cd/E21043_01/web.1111/b61647/toc.htm
んー。BEAの文書もあんまり判りやすくは無かったが、Oracleよりはマシだった…。サンプルも日本語だったし。今より量もあったような。
つかWebLogicは8.1の頃が何かと一番良かったなー。
SOAPって今はドキュメント指向・リテラルなんだっけか?JAX-WSはそれがデフォだったよな、たしか。
久々に

マスタリングJavaEE5 (CD-ROM付) (Programmer’s SELECTION)

マスタリングJavaEE5 (CD-ROM付) (Programmer’s SELECTION)

に頼る時が来たようだ。分厚いんだよなー。JPAJSF要らないから薄くならないかしら。でもこの本は何かと頼りになるので皆さんお勧め。

このエントリーをはてなブックマークに追加 mixiチェック

こういう次第でちょっと検討。
ロリポップでのWebDAVの設定方法はこちら http://lolipop.jp/manual/user/webdav/
JavaWebDAVクライアント記事は以下
http://syo.cocolog-nifty.com/freely/2010/10/javawebdav-8cd5.html
http://syo.cocolog-nifty.com/freely/2010/10/jackrabbitssl-1.html
http://syo.cocolog-nifty.com/freely/2010/10/jackrabbitwebda.html
Javaの良い所は、やろうと思った事は大概誰かが先行してやっていて、あまつさえライブラリ化されサンプルも一杯あること。
…Jack Rabbitでけえー。jarが30MB.
http://www.apache.org/dyn/closer.cgi/jackrabbit/2.2.8/jackrabbit-standalone-2.2.8.jar
でももしや、エクスプローラ側でうまいこと設定すると、自作プログラム側からはファイルコピーな感じでうまく行ったりしないだろうか?FileのAPIだとダメでも、copy コマンド発行ならできそうな気がしないでもない。
→とりあえず上記のソースのコピペでそのまんまファイル名一覧取得はできた。あとは更新時刻取得と、PUTができれば。
http://wiki.apache.org/jackrabbit/WebDAV
この辺に何かあるだろう。

このエントリーをはてなブックマークに追加 mixiチェック

こういう次第でで脱Pythonを推進中。次はXML処理。
JavaでDOM使うとNodeの山になって、目が、目が…。で、「Javaで書くとこんなに長い処理がこのスクリプト言語で書くとこんなに簡潔に」のネタにされる訳だけど、このJDOMを使えばコレクションフレームワークに対応してるのもあって実に簡潔になる訳。これからはワンライナーJavaか。

		Document doc = new SAXBuilder().build(new File(inputFileName));
		Element root = doc.getRootElement();
		Namespace ns = root.getNamespace();
		List<Element> janls = (List<Element>)root.getChildren("janl",ns);
		for(Element janl:janls){
			String janlId = janl.getAttributeValue("id");
			System.out.println("Janl"+janlId);

			List<Element> items = (List<Element>)janl.getChildren("item",ns);
			for(Element item:items){
				String text=item.getAttributeValue("text");
				String type = item.getAttributeValue("type");
				System.out.println(" Item text="+text+" type="+type);

dom4jというものもあるそうだけど、先に出会ったこっちを使った。
まぁこれでPython製ツールは大体移植できそう。ついでだからマルチスレッド化するか。ExecutorServiceが登場してからというもの私でも簡単にマルチスレッドが扱えるようになった。

このエントリーをはてなブックマークに追加 mixiチェック

という訳でPythonが終わったのでPythonでやってた処理をJavaに移植。まぁApache Commons様があればちょろいものよ…子プロセスの標準出力を受けてファイルに出すスレッドを一々準備するのがちょっと面倒だけど。
ただ、既存のXMLの構造を探りながら徐々に作っていく時はやっぱPythonの方が便利なんだよね。
しかしJavaだと随分早いな。子プロセス(シェルコマンド)を起動しては終わりを待ち、起動しては終わりを待ち、を繰り返す代物だからコマンドを起動する側の言語自体のスピードはあんまり影響しないかと思ってたが目に見えて違う。意外。

このエントリーをはてなブックマークに追加 mixiチェック

を早速使いたい場面に遭遇したが、Eclipseが未対応なので使えず。ぬぅ。

このエントリーをはてなブックマークに追加 mixiチェック

が出たので早速入れてみた。Eclipseが対応してないから新文法は使えないがとりあえず絵コンテエディタをそのままリビルドしてみた。(当たり前だけど)特にエラー無し。7でコンパイルしたものは何故か以前よりも4KB程jarが小さくなった。jarは取り合えず1.6なJRockitでも普通に起動。多分Sun JVMの1.6でも起動するだろう。→1.6.0_26で起動した。

このエントリーをはてなブックマークに追加 mixiチェック

いや時間的に。何故だ。
Java 7のProject COINとかNIO2とか段々Java自体がJakarta Apache Commons殺しっぽくなってきたっぽい。まぁ良いことだけど。Eclipseが対応したら徐々に使ってみよう。http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html
それにしてもJavaからマシンのCPU数が取れるのね。知らなかったRuntime.availableProcessors
あと何だな、社会人たるもの、見せブログならぬ、見せTwitter IDは必要かもな。アイコンは何かこう、ネクタイ締めた決め顔か、犬猫写真な感じで。←こんなのだからTwitter API ポケットリファレンス (POCKET REFERENCE)が貰える抽選に応募できなかった
JDeveloperの本を頂いたが、講師の方二人がNetBeans派、とIntelliJ派で両者とも使ってない…。ちなみに私はEclipse派。
あと今後はSunJVMとJRockitが統合されるそうな。JRockitjrcmdはjstatより便利なので使えるようになるといいな。ただ、何か管理ツールは今後有償化とのこと。別にフライトレコーダとかMemory Leak Detectorが有償とかはまぁいいけど、統合ということでVisual VMやjconsoleがMissionControlに統合されて消えて、使いたかったらライセンス購入、とかになったら嫌だなー。Sun MicrosystemsじゃなくてOracleだからなー。遣りかねないんだよなー。
しかし夜こういうのに参加すると何となく気分が金曜日。だが現実は木曜、明日も出勤だ。

このエントリーをはてなブックマークに追加 mixiチェック

↑このページのトップヘ