ラベル Java の投稿を表示しています。 すべての投稿を表示
ラベル Java の投稿を表示しています。 すべての投稿を表示

月曜日, 3月 09, 2009

jUnitでSystem.exit(int)を無効にしてみる

unitテストを作ろうと思い、作って実行してみると途中で止まる。。。

「なんで?」

結局のところ、unitテストで実行しようとしたクラスにSystem.exit(int)があったのが原因だった。

それならば、System.exit(int)が効かなくなるおまじないはないかな?
と調べてみたら一応あった。

・テストクラス
public class Target {

    public static void main(String[] args) {
      if (args != null) {
        System.exit(0);
      } else {
        System.exit(-1);
      }
    }
}
・テストケース
import java.security.Permission;

import junit.framework.TestCase;

public class TargetTest extends TestCase {

    final SecurityManager sm = System.getSecurityManager();

    protected void setUp() throws Exception {
      super.setUp();
      // JVMを終了させない
      SecurityManager securityManager = new SecurityManager() {
        public void checkPermission(Permission permission) {
          if ("exitVM".equals(permission.getName())) {
            System.out.println("System.exit[exitVM]が呼ばれた");
          }
        }

        public void checkExit(int status) {
          // super.checkExit(status);
          throw new ExitException(status);
        }
      };
      System.setSecurityManager(securityManager);
    }

    protected void tearDown() throws Exception {
      System.setSecurityManager(sm);
      super.tearDown();
    }

    protected class ExitException extends SecurityException {
      public int state = 0;

      public ExitException(int state) {
        this.state = state;
      }
    }

    public void test引数あり() {
      try {
        Target.main(new String[] {});
      } catch (ExitException e) {
        assertEquals(0, e.state);
      }
    }

    public void test引数なし() {
      try {
        Target.main(null);
      } catch (ExitException e) {
        assertEquals(-1, e.state);
      }
    }
}
とりあえず、これでSystem.exit(int)を呼び出した場合に返されるintのassertも可能。

しかし、ある意味間違ってはないと思うんですが、
そもそも、FileとかSWTとかのからみでのポリシー設定でも何とかなるのかもしれない。。。

しかしながら、djUnitならこんなに悩まなくてもよかったのかもしれないが、
さすがに僕が勝手にライブラリーを増やすわけにはいかないので、
このやり方で当面はやりくりしてみよう。

木曜日, 2月 12, 2009

javaDBでコードセットUTF8

DB2と違ってUSING CODESETなんて使えるわけではなく、

そうすりゃいいんだ?と思いながらApache Derbyのサイト内検索でderby.ui.codesetというのを発見した。

しかし、このオプションってij起動時に与える拡張パラメータ -Dhogehoge系のパラメータとして準備してやれば良いらしい。

でもって試してみた。

CLASSPATH周りは省略して
java -cp $CLASSPATH -Dderby.ui.territory=ja_JP -Dderby.ui.codeset=UTF8 -Dij.protocol=jdbc:derby: org.apache.derby.tools.ij
で呼び出せばいいみたい。。。

derby.ui.codesetでUTF8にしたらコンソールが文字化けするなんてのがネットに載っていたがそんなこともなくすんなり動いた。

ただし、これで本当にDBのコードセットがUTF8になっているかは動かしてみないことには何とも言えないなぁ~

一応、Derbyのサイト内での説明では-Dderby.ui.territoryは省略すればローカルのロケールになるとか書いてたと思うが、
如何せん、自分の知らないところで色々設定されると細かいところまでわかんなくなってしまうので、
ちょこちょこ細かいところも見ていこうとおもう。

後はjdbc-odbcを使ってA5:SQL経由で動かすことができるか実験だ!

javaDBのメモ

DerbyではなくJavaDBです。 CentOS上でXサーバ無しで色々しようとしていたので
あくまで自分用のメモレベル

リモート端末上でコマンドラインだけでijを動かしてcreateするまで
  1. DERBY_HOMEを設定する(場所は/opt/sun/javadb)
  2. ijを起動(場所は$DERBY_HOME/bin/ij)
  3. ij>connect 'jdbc:derby:~/test;create=true;';
  4. ij>select current date from sysibm.sysdummy1;(DBができてるか確認)
ij上でDBを作るときにダブルクォートではシングルクォートを使わないと実行できない。

これでDBコネクションでのexecute arround methodなパターンの実験ができそうだ。

木曜日, 1月 08, 2009

DocBookの使い方を覚えたい

内部資料とかでよく手順書と言われるものを用意することがある。

しかし、いつもエクセルで用意してこれ見てね的に作成しています。


特に複雑な手順書の場合にはリンク付きのPDFとかを用意したいんですが、
如何せんそんなPDFの作り方はわかんない!

でもね。前から興味を持っていたDocBookでPDFが作れたよなぁ~って思いだして、
とりあえず、簡単に調べてみると
やっぱり、使ってる人は使ってるんだなぁ~って言うのが率直な感想

多かったのはApache FOPってのを使っている紹介が多かったのですが、
色々見てみるとホントかどうか自分で試してないんで不明ですが、
PDF上で日本語検索ができないとか。。。

ダメじゃん!!

しかし、根気よく色々見ていると
platex経由でPDF変換すれば行けるという情報を手に入れた!

たしかDocBookってさまざまなフォーマットに変換できるというのが売りの一つのはず!

これだ―!!

って思ったんですが、
問題がひとつあって

そもそも、latexなんて触れたこともないんですよね。。。

前々から触ってみたいなぁ~とは思ってはいるんですが。。。


とりあえず、必要な知識は
  • DocBook(できればver5で)
  • latexの知識
  • platexの知識
  • こんなところかな?

    また、時間ができたときにでも調べてみよう。

    水曜日, 10月 22, 2008

    コンストラクタインジェクション-tyep指定とindex指定

    はたして使うのかどうか。。。 とにかく一度動かしてみようってなことで、 あれこれ、リファレンスを見ながらやってみた。 いろいろと種類があるもんだ。 その中でもindex指定ってのがあった。 要はコンストラクタのパラメータの順番に設定を定義していくというものである。 で、気になったのがコンストラクタの定義が
    /** 実験 */
    public class Hoge {
    private Foo foo;
    private Bar bar;
    /** コンストラクタ1つ目 */
    public Hoge(Foo foo, Bar bar) {
     this.foo = foo;
     this.bar = bar;
    }
    /** コンストラクタ2つ目 */
    public Hoge(int number, String string) {
     new HogeExt(number, string);
    }
    public Hoge() {
     // コンパイラを通すのにとりあえず定義
    }
    }
    class HogeExt extends Hoge {
    private int number;
    private String string;
    public HogeExt(int number, String string) {
     this.number = number;
     this.string = string;
    }
    }
    class Foo {
    // とりあえず未定義
    }
    class Bar extends Foo {
    // とりあえず未定義
    }
    コンストラクタのパラメータが2つの値を用意します。 index,valueな組み合わせを利用すると 単純なint,Stringの組み合わせが呼びだされる。 まぁ、当然と言えば当然なんだけど2つ目のコンストラクタが定義されていないときはExceptionが発生する。 どうしてもtypeではなくindexを使いたい場合はref属性で指定してやれば動いてくれることはわかった。 でも、コンストラクタインジェクションなんて使うかどうか。。。 僕的にはAspectJチック(と言っても範囲は広いけど)なことができれば十分だし。。。

    月曜日, 10月 20, 2008

    [Spring2.5]factory-beanって何かね??

    なんとなくではあるが、Springの使い方を改めて一から勉強してみる。 まぁ、正直今まででも真面目に見たことはなかったんですが。。。 いいかげんにこういったものの使い方を覚えておかないと この先生きていけるか不安で不安で。。。 ともかく、Spring 2.5.5のSpring ReferenceというPDFを読んでみた。 まだ、chapter3の途中までなんですが、 importとかの存在も知らなかった自分が恥ずかしいです。。。 何かあるんだろうなぁ~とは思いつつ過ごしてきただけにこうやって改めて見てみると 「やっぱり、きちんと書いてるんだなぁ~」と実感です。 あとは、よくドキュメントとかでBeanFactoryってのを呼んでたけど リファレンスではApplicationContextってのを呼んでる(もちろんBenaFactoryも載ってますけど) 階層構造を覗いてみて僕はまだまだ勉強不足ってことがよくわかった。 ApplicationContextの方がBeanFactoryより親なんだね。。。 僕はずっとBeanFactoryが親だと思ってたよ。。。 ともかく、こうやって一つ一つ見直していくといろいろあるもんだということが分かった。 その中でも一番よくわかんなかったのはfactory-beanっていう属性だ。
    <!-- the factory bean, which contains a method called createInstance() -->
    <bean id="serviceLocator" class="com.foo.DefaultServiceLocator">
    <!-- inject any dependencies required by this locator bean -->
    </bean>
    <!-- the bean to be created via the factory bean -->
    <bean id="exampleBean" bean="serviceLocator" method="createInstance">
    </bean>
    この中のfactory-beanの意義がようわからん。。。 やってることは理解してるつもりではいます。 com.foo.DefaultServiceLocator#createInstance()でタイプ未定義のexampleBeanを返すよん。 ってなところでしょう。 実際動かしてみたし、間違いはないはず。 結局、あえて別定義でBeanを用意するようなパターンってあるのかな?? もっと複雑になれば変わってくるのかもしれないけど。。。 そもそもファクトリーメソッドをいちいちSpringというコンテナ経由で取得する必要があんのかな?? だって、結局のところBeanとFactory間の関連が強くなっちゃうんじゃないの?? それならそのままコーディングした方が楽なような。。。 うーん、たぶん無知な僕は利点が見つかるまでは使わないと思う。。。

    水曜日, 10月 08, 2008

    JNLPException[category: システム設定 : Exception: null

    WidgetFXで自分用アプリを作ろうと思っていたんですが、 困ったことにJavaWebStartで 「JRE1.6+が必要です」 というメッセージが出続けます。。。 JavaコントロールパネルのJavaランタイム設定のシステム部分が未登録なのかが分かんなかったんです。 昨日も同じように悩んでいて、 Javaコントロールパネルとか読んでたんですが、 deployment.propertiesなんていうのに必要そうな気分だ。。。 でも、deployment.propertiesってどこにあんの?? ってなところまで調べてタイムアップだったんですが、 今日、改めて調べてみました。 真面目にExceptionを調べればよかった。。。 でも、システム設定ってワードでググっても何もでてこない。。。 ものは試しにJNLPException[category: Systemで検索してみると Sunのフォーラムにこんなのが載ってた。 Java Web Start & JNLP - WebStart 1.6 issues with intranet JRE installers これの一番最後の部分を見ていたら、 各ユーザーでdeployment.propertiesを所持していることが判明!! さらに細かく読むと一回削除してjavawsを起動させると 新しく作成されるそうだ。 ためしにやってみたらうまいこと行きました♪ 最初はFW設定とかのからみか?と思って四苦八苦していたなんて恥ずかしくて言えないw

    金曜日, 9月 26, 2008

    基本に戻る

    ちょっと気になることがあって Spring2.5のイントロダクションを読んでいる。 どっかに日本語訳ないかなぁ~ どうしても、Springポートフォリオってのがどんなものをイメージしているのか見えてこない。。。 僕の解釈ではSpringコアによって各ビジネスオブジェクトの分散が可能(EJBみたいな意味の分散ではなく)ってな具合に読み取っているんだけどあってるのかなぁ~??? 分散って言うよりかは依存性を少なくし各モジュールの独立性を高めたんで管理しやすいWindowsファミリならぬSpringファミリってな具合のことを言いたいのかな?? このあたりを理解しているしていないの違いがどのあたりに現われてくるのかもまだ分かっていない。 まぁ、じっくり読んでいくことにしようと思う。

    木曜日, 9月 18, 2008

    ひさびさにApache Derby

    かなり久々にさわってみた。 さすがにベースがIBMの組み込みDBなだけあって、 操作感は変わらなかった。(良い意味でも悪い意味でも) まぁ、ともかく「何でいまさらJavaDBと言わずにDerby?」ってのには深い理由はそれほどないです。 JDK6のJavaDBがなったからってだけなんです。。。 ついでにEclipseのプラグインを持ってくるついでにそっち(ver10.4)を使うことになりました。 で、大したことではないのですが、 Webで見てるとネットワークサーバを起動して云々って具合に載ってるのを見かけるんですが、 個人的に勉強でDBとの組み合わせとの実験・勉強をする際には 別に組み込みでもいいじゃんと思ってしまい、 どうやるのか?ってのを調べただけです。 で、結論としては ネットワークだと
    connect 'jdbc:derby://localhost:1527/myDB;create=true;user=me;password=mine;';
    組み込みだと
    connect 'jdbc:derby:myDB;create=true';
    これだけ、ますますトランザクション制御とかの勉強以外だとこっちでいいんでない??って思うようになった。 だって、シンプルだし。。。

    木曜日, 7月 10, 2008

    べ、別にサボッてたわkry

    何か今週は全く更新してないことに気がついた。 別に毎日書く義務があるわけ度もないし、人気ブログで人がたくさんやってくるってわけでもないので 大したことではないんですが、 (というか役立つ情報も載ってないのにね。。。) とりあえず、最近はEclipseLinkのドキュメントを読んでます。 やっぱり、英語なんでなかなか読み進めずにいるような状態です。 せっかく進めているんだし、 読んだ内容をGoogleDocsに書いたりしているのがさらに読む速度を落としている原因なんだということも分かっているんですが、困ったことにあとで「えーと、あれってなんだったけ??」ってなったときにもう一度訳すのが面倒だってところもあるんですよね。 別にshareしてるわけでもないので完全に自分用ドキュメントではあるんですが。。。 まだ、実装にも辿りつけてないような状態なんで、もう少しまとまったものができたらここでまとめてみようとは思ってます。 しかし、何でさわりがEJB2.1仕様に則って進められる部分があったりして、 僕にはEJBなんてほとんどわかんねーよ!ってところがあるのも進み具合が遅い一因のような気がしてきた。。。 まあ、ともかく実装にまで早くたどりつきたいです。。。

    水曜日, 7月 02, 2008

    Equinoxって何かね?

    今日は仕事の合間にEclipse3.4をDLして、
    今の開発環境と入れ替えを行おうとしていたんですが、
    その時にeclipse.iniのパラメータで、タイトルにも書いたEquinoxってのが指定されていることに気がついた。

    何これ?

    まず、第一印象はそんなもんだった。
    しかも、クラスパスもWindows用にチューンされてるっぽい。
    (win32とかって付いてるし。。。)

    で、気になって気になって仕事が手に付かない。。。

    まぁ、そんなこともあって軽く検索してみたら、
    OSGiが実装した、パッケージのライフサイクルを管理してくれるようなツールだってことはわかったんだけど。
    結局、Europaとかの関連性を維持したサイトではやっぱりしんどいのかな??
    一応、今回もガニメデ?だっけ??があったけど。。。
    ダウンロード元では、ああいったDiscoverySiteってので管理して
    ローカルではさらに繊細(EclipsePluginに特化した)な管理ができるってことなのか?

    で、調べたサイトを軽く見ていたら
    珍しくこういう系のことで、@ITの記事を見つけた。
    (英語じゃないぶん助かるよ~)
    何か対話式のCLIも用意されているらしい。
    それの機動の仕方を見てちょっと驚いた!
    eclipse -console
    って、そんなオプションまであったのか!Eclipseさん!!

    水曜日, 6月 18, 2008

    DB2のJDBC Type2にハマる

    今日、仕事場でよくわからない現象が発生した。 それは、次のような事象でした。 各端末で次の操作をおこなう。 Javaでmarge文を発行(PrepareStatement#executeUpdate()) 対象DBはWindows2000server DB2 v8.2で更新するのは同じDBインスタンスの同一レコード 他にそのレコードは更新しない状況下であることは当然 marge実行時の戻り値が変なんです。 JDBCのAPI仕様上、PrepareStatement#executeUpdate()はreturn intとなってます。
    1. 端末Aでは、mergeのreturn 1
    2. 端末Bでは、mergeのreturn 0
    3. 端末Cでは、mergeのreturn 1
    というような結果になった。 ちなみに端末A,B,Cの全てで対象レコード1件が更新(when matched then)されます。 ここで、結果を見直すと・・・ 「何で端末Bではreturn 0なんだ??」って状態になるんです。。。 最初はクラスローダが読み込んでいるJDBCドライバのverが違うのかな?と思っていたんですが、そういうわけでもないみたい。 (みんな、同じくDB2 v8のレガシードライバだということはすぐにわかったんですが。。。) ここからは、わかったことを
    1. 端末Aは確かにbuildlevelっていう値がB,Cとは違っていたが、BとC同じだった。
    2. 端末Bで使用しているドライバをClassLoader#getResource()で導き出し、端末Aで使用してもreturn 0になるわけではない。(return 1)
    3. java.sql.Connection#getMetaData()#getDriverVersion()を見てみると、同じドライバクラスを利用しているのに表示されるバージョンが違うということに気づく
    4. とりあえず、DB2Driverクラスを逆コンパイルしてソースを追いかける。
    5. getDriverVersionをどんどん追跡していくと。。。
    6. nativeメソッドにたどり着き、そこでふと気づく「そういや、Type2で接続してたんだよね。。。」
    7. Type2ってのはType4のようにダイレクトに接続するのではなく、一端クライアントのネイティブライブラリを通して接続する種類であることを思い出し、DB2Driverクラスが読み込んでいるdllを探し始める
    8. 端末ごとにdllのversionをチェックしてみると驚きの結果が。。。
    場所 :db2jdbc.dll :LegacyDriver(buildlevel) 端末A :8.1.7.447 :s040812(DB2Clientのdb2java.zip) 端末B :8.1.0.36 : s021023(Websphere付属?のdb2java.jar) 端末C :8.1.8.762 :s021023(Websphere付属?のdb2java.jar) みんな、バラバラやん!! そりゃないよ。。。 しかし、dllのversionが8.1.0だとmargeのreturnが0になるってどうなんだろ?? 最終的に端末Bのクライアントを再インストールしてとりあえず解決とした。 (FixPackを適用すれば回避できるかも。。。)

    水曜日, 5月 21, 2008

    JavaFXとWPFってそっくりじゃない?

    最近はヒマでしかたがなかったので、 JavaFXって結局何なんだ?ってことで調べてた、 一応はスクリプティングの形式はとっているが、 バインドとかの仕組みというか考え方って .NETのWPFと同じなんじゃないのかなぁ~?? まぁ、別にどっちが先かとか言ってるわけじゃないんだけど、 自分の勉強用の課題としてどっちに手をだそうかなぁ~と考え中 最初はSWTとか面倒だからやりたくねなぁ~とJavaを避けてたんだが、 別にJavaFXが使えるんだったら、Javaでもいいかw

    木曜日, 5月 01, 2008

    Maven2のソースデフォルトエンコーディングが・・・

    iso_8859-1になるかもしれないということらしい。。。 何でそんなことするんですか?エライ人? また聞きですが「iso_8859-1以外のエンコードなんて数%しか使ってないでしょ?だから問題ナッシング!」みたいなことを言われているらしい。 Thread.sleep(またーりまたーり)さんのところでソースデフォルトエンコーディング投票なるものが行われているみたいです。 とりあえず、僕も投票はしておきました。 まあ、マルチバイトじゃない人々が作ってくれた物なんだから、あんまり文句を言えたもんじゃないんですが。。。 考え方次第では「自分たちで作り出せないもしくは先を越されて作られちゃったもんだから、車輪の再発明みたいなことはしないよ。だから、こういうものが作れない人たちがブーたれている」ともとれちゃんじゃないかなぁ~と、一抹の不安はありますが。。。

    FedoraにEclipseを入れてみる(ついでにpleiadesで日本語化)

    追記 ごめんなさい。中途半端にまとめてました。 ちゃんとEclipse Wikiに載ってました。。。 同じような現象の事例がなかった(あるにはあったんだけど未解決のままだったり。。。何か中途半端に困ったのでメモメモ 今回の環境
    • Fedora 8
    • Eclipse 3.3.2
    • JDK 5 update14
    • pleiades 1.2.2p(日本語化プラグイン)
    • jstyle(この辺りは僕の好み)
    とりあえず、JDKなんかはサクッと落してきて入れようとしたら既に入ってた。。。 しかし、1.7って何だ??もう出てるの??? しっかり、確認しないと時間の無駄になっちゃいます。。。 次にEclipseを落としてくる ここでは大概の開発に対応できそうなClassic版を使ってます。 最初はmakeとかいるのかな?と思っていたらそのまま使えたので、/usr/local/配下にそのまま置きました。 とりあえず、ここでEclipseの実行権限がみんな使えるように chmod +x -R /usr/local/eclipse/ としておきました。 ついでに所有者もrootに変えちゃいました。 この段階でroot以外のユーザ(僕の場合はLDAPで仮想マシンのアカウントを管理しているので、LDAPに登録しているユーザ)でeclipseを起動してみます。 無事に起動 v(^^)v しかし、試練はここからでした。。。 次にpleiadeとjstyleをunzipで解答します。 実行権限やら所有者を変更します。 pleiadesを使ったことがある人はご存じだと思いますが、 eclipse.iniを変更します。 「後は-cleanオプションを付けて起動してみるか」 そして、起動しようとしたとき 「そのワークスペースは使用中です」 というメッセージが・・・ はて?何したんだろうか?? この問題はhomeディレクトリをnfsでマウントしている状態で、 ローカルマシンのrootユーザで起動させた為に起こった現象でした。。。 こんなのはすぐにわかったんですが、 その後です。わからなくなったのは。。。 デスクトップ上に作ったランチャから改めて通常ユーザで起動しようとするとうんともすんとも反応しません。 そこで端末側からコマンドで起動をかけてみると・・・
    Error opening zip file: plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar Error occurred during initialization of VM agent library failed to init: instrument
    なぁ~んてメッセージが。。。 どうやらVMの初期化時にプラグインを読みに行こうとしたけど失敗しました。。。って感じです。 数分間考えてたどり着いた答えはSELinuxさんでした。 そこで、とりあえずSELinuxを無効にして起動させてみました。 追記 2008・5・1 ごめんなさい。ウソでした。。。 再起動したら動かなくなちゃった。。。 変わんないじゃん。。。orz もしかして、再起動とかいるのかな?? という訳で再起動もしてみます。 やっぱ、変わんないじゃん。。。orz 何でだー?? まさかとは思うけど無効にしたSELinuxのラベルの効果が残ってるのか??という疑問が浮上してきたので、 さっそくchcon ラベル ディレクトリ -Rで一気に変えちゃいました。 まさか、これでうまくいくことは無いだろうと思っていたんですが、 その「まさか」が起っちゃいまして。。。 とは言ってもまだ起動してません。 エラーの内容が変わったんです!!
    pleiades.log.level=INFO java.lang.ExceptionInInitializerError Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:141) Caused by: java.lang.ExceptionInInitializerError at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:164) at jp.sourceforge.mergedoc.pleiades.log.Logger.getLogger(Logger.java:75) at jp.sourceforge.mergedoc.pleiades.aspect.Pleiades.premain(Pleiades.java:75) ... 5 more Caused by: java.lang.RuntimeException: プロパティに指定された pleiades.log.file.name=/usr/local/eclipse/configuration/jp.sourceforge.mergedoc.pleiades/pleiades.log が不正です。 at jp.sourceforge.mergedoc.pleiades.log.FileLogger.(FileLogger.java:44) ... 9 more Caused by: java.io.FileNotFoundException: /usr/local/eclipse/configuration/jp.sourceforge.mergedoc.pleiades/pleiades.log (許可がありません) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.(FileOutputStream.java:179) at java.io.FileOutputStream.(FileOutputStream.java:131) at jp.sourceforge.mergedoc.pleiades.log.FileLogger.(FileLogger.java:39) ... 9 more FATAL ERROR in native method: processing of -javaagent failed
    VMの初期化処理でプラグイン自体の読み込みには成功したようですが、ログファイルに権限が足りずに書き込めずにいるようです。。。 そこで、ログファイルのパーミッションを変更してみると無事に起動するところまで持って行けました。 でもね、起動はするんですが 起動時にまだエラーが出てるみたいで。。。
    pleiades.log.level=INFO /usr/share/themes/Nodoka/gtk-2.0/gtkrc:35: error: lexical error or unexpected token, expected valid token ロック・ファイルの作成に失敗しました。 java.io.IOException: 許可がありません
    う~ん、何だこりゃ?? 何となく起動してますよ~とアピールするためのロックファイルにアクセスする権限がないとかかな?と思いながら 「動くからいいやw」 とほったらかしにしちゃってます。 このエラーってどうやったら消せるんでしょうか? というか、起動したけどまだ何も作ってみたりしてないんで実際に使えるかは謎です。。。

    日曜日, 4月 27, 2008

    EclipselinkのGettingStartが。。。

    リハビリも兼ねて少し触ってみようかな?と思っていたら、 なんとまぁ、こんなことになっていた!!
    Wiki.eclipse.org is currently down for maintenance. We apologize for the inconvenience, but expect to have the site back online shortly.
    いやいや、そりゃないでしょ^^; まぁ、あんまり文句言っても仕方がないし、元はOracleのTopLinkらしいからあっちのAPIドキュメントみたら少しはわかるのかな? JPA2.0の参照実装ってことで使ってみようかと思ったけど、 まさかこんな形で躓くとは思ってもみなかったっす。。。
    まぁ、話は変わるんですが、自転車のホイルが明日届くそうな。。。 配達店に到着してるのに持出されてないので、おかしいと思って電話してみると休みということもあって、営業店どまりの荷物が多くて発見できてない様子。。。 しっかりしてくれS運輸!!

    月曜日, 4月 07, 2008

    OpenLDAPがWindowsで使えたら。。。

    いや、Sambaをかませばできるのは知っているんですが、 ほしいのはシングルサインオンの機能だけなんですよね。。。 とりあえず、Samba4が出てくるのを待っとくか。 その間に、Struts2の勉強でもしておこう。 (C#は?どこいった。。。)

    木曜日, 4月 03, 2008

    EclipseLink

    Javaのことなんざ、すっかり忘れていたんですが、ちょっと気になったのでチェックです。 まぁ、そもそもJPA自体使いこなせてないんで僕が使っても宝の持ち腐れになりそう。。。 でも、JSFなりStruts2で使えばJPAでマネージドベーンやアクションのPOJOとして操作することもできるんだと思う。 シームレスに繋がるんですよ!! ってところなのかな? やっぱり、DB操作はSQLのほうが、まだまだ良いと思う。 進歩しないねぇ~

    水曜日, 3月 05, 2008

    sftpって

    sshでファイルの送受信をするにはsftpってのがあるということだけは昔から知っていました。 でも、それはてっきりFTPをsshでポートフォワードするって意味なんだと思ってvsftpdをインストールしてみたりとあれこれチャレンジしていました。。。 しかし、ポートフォワードがうまく動かず。。。 う~ん 困った、ホストのOSからそこでダウンロードしてきたrpmをコピーするときにセキュアな通信をしようと思うとどうすりゃいいんだ?と しかし、sftpってのはそのまま機能で、vsftpdとは関係ないんですね。 そこで、WinSCPを使いました。 中で使う鍵ファイルがPuTTyなんですね。。。 普段はTeratermをばっちり使っているんで、PuTTyのキーファイルは特殊だということくらいは知っていたんですが、めんどくさいなと思っていたら思いのほか簡単に動きました。 今までの苦労はなんだったんだ。。。 (ポートフォワードのことを完全に忘れていることはもういいや) それで、ややこしいんですがVMwareWorkstation上にFedora8を入れてFedora8上にVMwareServer2.0Betaを入れてみました。(仮想環境で仮想環境を構築するという非常にややこしいことを。。。) Webコンソールを使ってみて思った感想としては、別に1.0.x系のように専用のコンソールでいんじゃね?というところですかね。 これに関してはコンソールのWeb化に?な感じもします。(特にクライアント側が遅いとか思わないんで。。。) そういや、Websphere4系のときはクライアントでコントロールしていたなぁ~とそしてver5になったらWebコンソールになって結構よろこんだんですけど(めっちゃ重たかったんです。。。) とりあえず、最小構成でLinuxベースのVMwareServer1.0.x系のインストール構成を作って、それをベースにいろいろやってみようかと思う。

    日曜日, 1月 13, 2008

    ActiveMQのdiscoveryUriに悩まされる

    ActiveMQで遊んでみた。 バイナリー版を落としてきて(svnでソースから作ろうとしたけど、この間構築したActiveDirectoryの関係なのか?まともにmaven2が動いてくれない。。。) 大人しくバイナリー版を動かしてみると、それでもエラーが起こる。 どうも《discovery》とかいう、他のメッセージブローカー(ローカル限定?)を探しに行くところで
    ERROR MulticastDiscoveryAgent - Failed to advertise our service: default.ActiveMQ-4.alive.%localhost%tcp://《マシン名》:61616
    ってのが発生する。。。 ActiveMQのThe Discovery Transportの項で確認してみると どうやらブローカー自身がマルチキャスト機能を持たないとダメなようだ。 しかし、デフォルトの設定ファイルではnetworkConnectorsタグにマルチキャストっぽいことが書かれてるんだけど。。。 なぜに動かん?? (なんとなくエラーメッセージを読む限りにはActiveMQ4とかも関係あるの??) 面倒になったので、discoveryUri="multicast://default"とnetworkConnectorsタグを削除してActiveMQを実行してみたところ、エラーをはかずに動くようになった。。。 とりあえず、JMSとしての機能(PTP、PubSub)を動かしてみようと思う。 あとはPersistence機能も使ってみようかな?と思っています。 (サンプルにはderbyでの設定も書かれていたので、それを使えば簡単なのかな?と思ってます。) しかし、長々と書いた割に動かしただけとは。。。 ダメじゃん!!

    failed to read qemu headerのときのメモ

    かなり久々。。。 忘れないようにここに書きこんでおく。 ちょっとした手違いで libvirtでイメージを起動しようとすると failed to read qemu header なんておっしゃられて起動しない。。。 vmwareserverを使って...