1 名前:デフォルトの名無しさん [04/09/12 10:56:03] クラスもかなり増えてきた Apache Jakarta Commons について語るスレッド Apache Jakarta Commons jakarta.apache.org/commons/ 中でも便利なものが Commons Lang jakarta.apache.org/commons/lang/ Commons Collections jakarta.apache.org/commons/collections/ Commons FileUpload jakarta.apache.org/commons/fileupload/ とくにLangには equals(), hashcode(), compareTo(), toString() メソッドを簡単にオーバライドできるメソッドが用意されており重宝する。 そのほか、NestableExceptionはC#のような言語に頼らなくても 投げられ続けた例外を上書きせずに保持する事ができるので便利。 Collectionsは java.utilのコレクションクラスに不満を持つ者にとっては 朗報だ。ListとHashを兼ねた便利なクラスも用意されており、その数は豊富である。
2 名前:デフォルトの名無しさん mailto:sage [04/09/12 11:32:06] ・・・つうかJakartaスレでいいじゃねぇか。 削除依頼だしとけ。
3 名前:デフォルトの名無しさん mailto:sage [04/09/12 11:43:15] Jakartaスレは落ちたんだよな。 個人的にはApache/Jakartaスレとかにした方がいいと思うんだけど。 Jakartaスレにすると「Antの質問はここでいい?」とか出るし、途中でJakartaからApacheプロジェクトになるものもあるし、 ここもCommonsに限定するとそれ以外の質問はどこで?ということになる。 どれもたいしてスレの流れが速いわけじゃないから統一していいと思うんだよな。
4 名前:デフォルトの名無しさん [04/09/12 11:46:44] まあ、Jakartaスレの続きってことでいいんじゃねーか? どうせスレタイにCommonsとか書いてあっても 「Antの質問はここでいい?」ってくるよ 同じことだ
5 名前:デフォルトの名無しさん mailto:sage [04/09/12 11:47:41] sageわすれたスマソ
6 名前:デフォルトの名無しさん mailto:sage [04/09/12 11:48:39] Commonsを字面のまま受け取るということで。 Apache Jakarta 共通スレッド。
7 名前:デフォルトの名無しさん mailto:sage [04/09/12 11:50:12] >>1 に書いてあることからそれは無理があるけどな・・・
8 名前:デフォルトの名無しさん mailto:sage [04/09/12 11:52:44] >>7 しかし、1が挙げたものは使い方も単純で、議論の余地もなく、だから何?というものだからなぁ。 DigesterとかValidatorとか、ちょりっとめんどいものならトモカク。
9 名前:デフォルトの名無しさん mailto:sage [04/09/12 11:58:44] AntやTomcatでさえ単独スレ無いのに・・・ >>1 は空気・ふいんき(←なぜか変換できない)を読めない奴に違いない
10 名前:デフォルトの名無しさん mailto:sage [04/09/12 11:59:19] Tomcatは昔単独スレなかったっけ
11 名前:デフォルトの名無しさん mailto:sage [04/09/12 12:03:38] Commons BeanUitls Commons Configuration Commons DBCP Commons DBUtils Commons Net Commons Math Commons Pool も使える
12 名前:デフォルトの名無しさん mailto:sage [04/09/12 12:06:02] さっそくですが質問があります。 Commons Digesterを使って作成するBeanのコンストラクタをpublicにしたくありません。 これは可能ですか?
13 名前:デフォルトの名無しさん mailto:sage [04/09/12 12:07:02] >>10 かなり昔?別板じゃないの?WebProg板とか。 Tomcat4.0のころは、スレが必要なほどだったけど、もうプロジェクト的にも利用者的にも落ち着いたからな。
14 名前:デフォルトの名無しさん mailto:sage [04/09/12 12:08:12] >>12 で、どうやって使うツモリ?
15 名前:デフォルトの名無しさん mailto:sage [04/09/12 12:16:21] Apache Jakara Project-2.0 【Java】 pc5.2ch.net/test/read.cgi/tech/1094958940/
16 名前:デフォルトの名無しさん mailto:sage [04/09/12 12:19:35] >>13 www.wikiroom.com/java/?2ch%20Java%B4%D8%CF%A2%A5%B9%A5%EC%A5%C3%A5%C9%B0%EC%CD%F7
17 名前:デフォルトの名無しさん mailto:sage [04/09/12 12:28:24] >>12 Digesterってどういう香具師?
18 名前:デフォルトの名無しさん mailto:sage [04/09/12 12:31:26] >>14 できればgetterメソッドだけpublicにして使わせたいのです。
19 名前:デフォルトの名無しさん mailto:sage [04/09/12 12:33:16] >>17 XMLからJavaのオブジェクトを生成する。 主にXMLで記述した設定ファイルからJavaのオブジェクトに変換するために使う。 DIコンテナの機能限定版だといえなくもない。
20 名前:デフォルトの名無しさん mailto:sage [04/09/12 12:33:46] >>18 で必要になるオブジェクトはどこで生成するつもり?
21 名前:デフォルトの名無しさん mailto:sage [04/09/12 12:34:17] 漏れの持っているログ jakarta TOMCAT 2 pc5.2ch.net/test/read.cgi/tech/1075516112/ 《The Jakarta Project》 pc5.2ch.net/test/read.cgi/tech/1019996589/
22 名前:デフォルトの名無しさん mailto:sage [04/09/12 12:36:36] このスレは、新しい質問・話題をうけつけてません、ってことでOK?
23 名前:デフォルトの名無しさん mailto:sage [04/09/12 12:39:10] >>20 それをなんとかDigesterでできないかなと、、、、
24 名前:デフォルトの名無しさん mailto:sage [04/09/12 12:41:16] >>19 なんというか、SOAPとか シリアライズに似ているな
25 名前:デフォルトの名無しさん mailto:sage [04/09/12 12:43:36] >>24 逆。 XMLにシリアライズされているものをオブジェクトに戻す。 タグごとに生成するオブジェクトを決めれる。
26 名前:デフォルトの名無しさん mailto:sage [04/09/12 12:44:03] >>23 コンストラクタじゃなくてファクトリを使わせるつもり?
27 名前:デフォルトの名無しさん mailto:sage [04/09/12 12:46:30] Antの質問はここでいい?
28 名前:デフォルトの名無しさん mailto:sage [04/09/12 12:49:17] >>26 それいいですね。staticめ祖度dの呼び出しとか可能ですかねぇ。
29 名前:デフォルトの名無しさん mailto:sage [04/09/12 13:21:48] >>28 お手軽にXMLからオブジェクトにするためのものだからなぁ。 Relaxerとか、ほかのモノ調べてみたら?
30 名前:デフォルトの名無しさん [04/09/12 16:25:51] >>25 つまり、DigesterがあればSOAPとかWSDLがいらなくなるってこと?
31 名前:デフォルトの名無しさん mailto:sage [04/09/12 16:27:44] >>30 外出してたんで返事遅れてスマソ ありがと、他の手段も検討してみます。 じゃ、このスレはこれで終わりね。 ########################################################## 移行先スレ 【Java】Apache Jakarta Commons pc5.2ch.net/test/read.cgi/tech/1094954163/
32 名前:デフォルトの名無しさん mailto:sage [04/09/12 16:46:29] ΩΩΩ<なんだってー?
33 名前:デフォルトの名無しさん mailto:sage [04/09/12 16:49:03] >>23 Javaのオブジェクト生成はコンストラクタかデシリアライズか クローンのいずれかを経なければならなので普通に考えると無理っぽい。 Digesterって簡単に言ってしまえば、XMLを読み込みつつ、 既成のBeansクラスを生成してsetXXXしていくだけのもんだか らなあ。 強いて言えば、Digesterからはファクトリ経由で生成するようにして、 ファクトリではそのオブジェクトをシングルトンとして扱う、くらいか な。
34 名前:デフォルトの名無しさん mailto:sage [04/09/12 16:55:46] >>30 シリアライズされないって。 機種非依存でもないし。
35 名前:デフォルトの名無しさん mailto:sage [04/09/12 21:12:21] >>30 出直してこい
36 名前:デフォルトの名無しさん mailto:sage [04/09/13 20:40:19] JJar っていうのが気になるんだけど何をするものかがわかんねぇッス
37 名前:デフォルトの名無しさん mailto:sage [04/09/13 21:04:21] >>36 Jakartaの最新リリースを自動的にとってくる仕組みらしい。 opt-getみたいなやつかな。 antから使えるみたいだね。
38 名前:デフォルトの名無しさん mailto:sage [04/09/13 23:31:34] よみかたは「ジャジャー」ですか?
39 名前:デフォルトの名無しさん mailto:sage [04/09/14 03:16:26] >>36 CPANのJava版だよ。 Apache MavenでもAPIの自動ダウンロードに使われている。
40 名前:デフォルトの名無しさん mailto:sage [04/09/14 03:17:19] >>36 CPANのほかに、 FreeBSDのPorts. Linuxのyumみたいなものだろうか。
41 名前:デフォルトの名無しさん mailto:sage [04/09/14 03:22:03] Jakartaスレの前スレでも同じ話が出てたな
42 名前:デフォルトの名無しさん mailto:sage [04/09/18 18:23:16] commonsいいね、ソース読んでぱくらずにはいられなくなった。上手だね使い方 俺用にcommons.jarっての全部まとめた奴で配布してください。
43 名前:デフォルトの名無しさん mailto:sage [04/09/19 03:23:39] すでにライブラリだから、パクるひつようもない・・・
44 名前:デフォルトの名無しさん mailto:sage [04/09/19 04:55:20] マジレスすれば、たぶんソースコードで使われている技術的な パターンというかやり方を、別のとこで流用するとか、そんな 話だとおもう
45 名前:デフォルトの名無しさん [04/09/20 03:59:04] DIgester で Commons Digester muimi.com/j/jakarta/commons/digester/ の例での addChild() のよーなメソッドを入れずに ルールの記述だけで 子要素を追加する方法ってあるだろーか?
46 名前:デフォルトの名無しさん mailto:sage [04/09/20 05:34:08] >>45 なんか質問の意味がいまいちつかめん。 DigesterだとSetNextRuleで親コンポーネントに自分を登録する、 てのは普通のことだと思うが、それをしたくないってこと? だとすると、具体的にどういうのが理想だといってるんだろ?
47 名前:デフォルトの名無しさん [04/09/20 13:05:05] >>42 Mavenで自動ダウンロードしちゃえばそんな 手間も掛けずに済むでえ
48 名前:デフォルトの名無しさん mailto:sage [04/09/20 13:15:07] >>34 やっとDigesterがどんなものかわかったよ。 ようするに、ぶっちゃけ JAXBみたいなもんだったんだね。
49 名前:デフォルトの名無しさん mailto:sage [04/09/20 15:21:28] >>48 つうか、SAX2をつかってXMLを読み込んで、対応するbeanを 簡単に作成する技術だと思いねえ。 SAX2もDOMも「読むだけ」でbeanは自前で作るんで、その辺を 解決しようと言うものだな。
50 名前:45 [04/09/20 20:39:50] >>46 getXXX()/setXXX()メソッドのみ記述していある普通のbeanを素で使いたいの だが、Digesterの場合はプログラム中で必要なくても 子要素追加には addXXX() が必要になるじゃんスか。
51 名前:デフォルトの名無しさん mailto:sage [04/09/21 03:59:31] >>50 ?????? SetNextRuleというのは、終了タグが来た時に親オブジェクトに対して 「引数の文字列で指定したメソッド」を実行するルールだぞ? たしかにDigesterのサンプルの大部分は下のような例になっている。 digester.addSetNext( "hoge/hage", "addHage"); でもこれは hoge/hageが見つかった時に親オブジェクトに対して addHage()メソッドを呼べ、という意味だろ。 じゃあ、上記の第2引数を「setHage」と書き換えたらあんたの希望 の動作になるんじゃないのか?
52 名前:50 [04/09/21 23:36:38] >>51 言葉足らずですまん。子要素ってのは単一項目じゃなくてList系のやつ。 希望の動作としては 子要素作成、子要素作成、子要素作成、子要素リストを一気に登録。 書き方がわかるやりかたは 子要素作成・追加、 子要素作成・追加、 子要素作成・追加、… って感じかなぁ。 しかし、strutsとかで使っているDigesterから生成する設定クラスもaddXXX()メソッド みたいなのばっかだから、これでいいか…。
53 名前:デフォルトの名無しさん [04/09/22 00:22:41] >>50 お前は何を一人でぶつぶつ言ってんだよ。
54 名前:デフォルトの名無しさん mailto:sage [04/09/22 00:24:48] 変な人は放置しよう
55 名前:デフォルトの名無しさん mailto:sage [04/09/22 01:10:42] >>52 Digesterの話をしてるんだからXMLとJavaで話せ。 こういうXML文書をこういうクラスにマップする、みたいに。
56 名前:デフォルトの名無しさん mailto:sage [04/09/22 01:33:28] >>33 リフレクション使えばprivateだろうが問題ない。
57 名前:デフォルトの名無しさん mailto:sage [04/09/22 01:43:53] >>56 マジデスカ?
58 名前:デフォルトの名無しさん mailto:sage [04/09/22 02:13:35] digester は、JavaとXMLだけではちと直感的にわからない。 Stackを頭に描きながらサンプルを追いかけるべし。
59 名前:33 mailto:sage [04/09/22 02:15:50] >>56 そっか。そりゃそうだな。 それでFactoryCreateRule使って、ファクトリ内で リフレクションを使ってオブジェクト生成してやるか。
60 名前:デフォルトの名無しさん mailto:sage [04/09/22 02:30:42] よく考えれば依存性注入ってそうやってやってるんだったな....
61 名前:デフォルトの名無しさん mailto:sage [04/09/22 02:31:31] >>56 呼び出したらエラーでない?
62 名前:デフォルトの名無しさん mailto:sage [04/09/22 02:51:17] 単純に Test.class.getDeclaredMethod("test", null).invoke(obj, null); とやってprivateなtestメソッド呼び出したらIllegalAccessException出るんだけど、DigesterからならOKなの?
63 名前:デフォルトの名無しさん mailto:sage [04/09/22 15:18:29] >>62 setAccessible(boolean) または AccessibleObject.setAccessible(AccessibleObject[],boolean) は実行した? これしないとフィールド取ってきてもアクセスできない。
64 名前:デフォルトの名無しさん mailto:sage [04/09/22 20:41:01] >>63 えー、そうなん。 知らんかった。 疑ってごめんよ。
65 名前:デフォルトの名無しさん mailto:sage [04/09/26 18:45:32] >>64 ここ見ろ。 ttp://muimi.com/j/reflection/
66 名前:デフォルトの名無しさん mailto:sage [04/09/27 02:10:13] ・・・なぜこの文脈で紹介されるのか、意図が不明だった。
67 名前:デフォルトの名無しさん mailto:sage [04/09/27 16:36:18] >>15 のスレがDAT落ちした・・・。
68 名前:デフォルトの名無しさん mailto:sage [04/09/28 01:11:45] あっちが本スレのはずだったのに・・・
69 名前:デフォルトの名無しさん mailto:sage [04/09/29 11:31:27] jakarta-commons/comboすげーぜ エラーで詰まるけどね
70 名前:デフォルトの名無しさん mailto:sage [04/09/29 14:30:41] >>69 combo?なにそれ?
71 名前:デフォルトの名無しさん [04/09/29 23:02:52] digesterよりbetwixtの方がもっと簡単にJava⇔XML変換できそうなんだけど 使ってみた奴いる?
72 名前:デフォルトの名無しさん mailto:sage [04/09/29 23:31:49] >>71 それはまあ事実なんだけど、betwixtのXML形式でいいや、というときだけだぞ。 digesterは任意のXMLファイルを読み込んでJavaBeansを生成する技術。betwixtは JavaBeansを所定の形式のXMLファイルへ変換(または逆)するものだな。 betwixt自体、内部でdigester使ってるし。
73 名前:デフォルトの名無しさん mailto:sage [04/09/30 00:53:48] >>71 digesterはXML→Javaでしょ。逆はないよ。
74 名前:デフォルトの名無しさん mailto:sage [04/09/30 01:26:07] >70 cvs.apache.org/viewcvs.cgi/jakarta-commons/combo/ ここなんだけど、かなり古い情報でこしらえる。これは利用するもんじゃないの? ちゃんとこしらえてくれるならいいと思うんだけど
75 名前:デフォルトの名無しさん mailto:sage [04/09/30 01:55:40] >>74 表にはでてないよね? なにするもの?
76 名前:デフォルトの名無しさん mailto:sage [04/09/30 11:13:59] comboはcommonsのライブラリ群を1つにまるめるだけです。 antタスクで1つずつ落としてビルドしてく原始的なもんです 自分は助かったんですが、ここの住人には無意味かも知れません
77 名前:デフォルトの名無しさん mailto:saga [04/09/30 14:11:53] ちと質問です。 betwixtを使って、XML⇔Beanを相互変換するわけですが、 そのとき、Beanが複数のクラスで構成されている場合、つまり 例) public class AbcForm extends ActionForm { private ArrayList xyzList = new ArrayList(); public void setXyzList(Xyz aRec) { xyzList.add(aRec) } public ArrayList getXyzList() { /*省略*/ } } public class Xyz{ private String x = new String(""); private String y = new String(""); private String z = new String(""); /*以下、setter getter*/ } こういうクラス構成の場合、Bean→XMLに変換するときはうまく変換してくれるのですが、 XMLからBeanに変換するとき、Xyzのフィールドに値が入ってくれません。(Xyzクラスのgetter setterが呼ばれない) やはり、Xyzクラスのsetter getterはAbcFormクラスの中に作成しないとダメなんでしょうか?
78 名前:デフォルトの名無しさん mailto:sage [04/09/30 14:24:32] >>76 mavenなら不要、とかそんな話かな。
79 名前:デフォルトの名無しさん mailto:sage [04/09/30 17:08:34] >78 ずばりそうです
80 名前:デフォルトの名無しさん [04/09/30 23:03:11] >>77 jakarta.terra-intl.com/commons/betwixt/overview.html public class SomeBean { public <CollectionType> getFoo*(); public void addFoo(<SingularType> foo); } できるっぽい。試して報告汁
81 名前:デフォルトの名無しさん [04/10/01 02:07:13] >>80 情報dクスです。 Adderメソッドですか・・・。 月曜にでも試して報告します。 ありがとうございました!
82 名前:77 mailto:sage [04/10/06 00:18:25] 遅れました。betwixtのリスト構造での動作確認しました。 addメソッド使えばリスト構造もイケます。 ArrayListとかも使えるので結構便利です。ですが、 リスト構造の場合、まだbetwixtファイルとの連携ができてません。 (できてる人いたら教えてください・・・) <addDefaults/>を使えば、それなりに自分の望んだ形にはなってくれるのですが・・・。 >>77 のようなクラスの場合、betwixtファイルを使うときははAbcFormクラス用とXyzクラス用の betwixtファイルを作成する必要があります。 そんな感じっす
83 名前:デフォルトの名無しさん mailto:sage [04/10/07 23:22:33] >82 どの部分が引っかかってるのか もう少し詳しく教えていただけないでしょうか?
84 名前:デフォルトの名無しさん [04/10/09 03:00:14] デフォルトだと <xyzList> <xyz> <xyz> </xyzList> みたいな構造のXMLが変換可能で<xyzList>タグが必要になる。 これを防ぐには.betwixtファイルが必要(最低6行程度のXML) .betwixtファイルなしではできなそうだが・・・何か方法あるのか?
85 名前:デフォルトの名無しさん mailto:sage [04/10/09 17:42:16] betwixtファイルなしだったら、_じゃね? そもそもbetwixtファイルなしじゃないといけないことってあるのかな?
86 名前:デフォルトの名無しさん mailto:sage [04/10/09 22:32:33] commonsのsandboxの位置付けは何ざましょ 見てかなり有用なもんだとは思ったのですが、利用されてますか?
87 名前:デフォルトの名無しさん mailto:sage [04/10/10 01:15:35] >>86 Sandboxにあるのはまだテスト中というか、commonsに組み込める品質に達してない、 試行錯誤段階にあるってこと。
88 名前:デフォルトの名無しさん mailto:sage [04/10/11 10:29:39] サンドボックスモデルのこと
89 名前:デフォルトの名無しさん mailto:sage [04/10/20 20:36:45] みんなjakartaぐらい綺麗なコード扱ってるかい!!??? 自慢じゃないが比較にならない程にごちゃごちゃで汚いコードです。 恐縮です。
90 名前:デフォルトの名無しさん mailto:sage [04/10/20 21:08:48] Jakartaもマイナーなところは結構コードがきたなかったりする。
91 名前:デフォルトの名無しさん mailto:sage [04/10/24 11:14:23] Jakartaは綺麗だよな。 GNU関係のは結構ひどい。
92 名前:デフォルトの名無しさん [04/11/11 22:50:01] xmrpcが日本語対応してないって↑記事があったので 変更してコンパイルしようとするとコンパイルが通らない antかと思ったらmavenみたいでantでコンパイルしてもコンパイルは 通るけどうごかず、mavenでコンパイルしようとすると 以下のようなエラーがでるんですけど、どうすればいいんでしょうか・・ --------------------------- Attempting to download jsse.jar. WARNING: Failed to download jsse.jar. Attempting to download jnet.jar. WARNING: Failed to download jnet.jar. Attempting to download jcert.jar. WARNING: Failed to download jcert.jar. The build cannot continue because of the following unsatisfied dependencies: jsse.jar (try downloading from java.sun.com/products/jsse/ ) jnet.jar (try downloading from java.sun.com/products/jsse/ ) jcert.jar (try downloading from java.sun.com/products/jsse/ )
93 名前:デフォルトの名無しさん [04/11/11 23:15:34] その3つのjarダウンロードしてきて ローカルリポジトリに手動で入れるしかないんじゃない? エラーメッセージもっとないとこれ以上はわからん
94 名前:デフォルトの名無しさん mailto:sage [04/11/11 23:28:36] >>93 レスありがとうございます エラーメッセージはあと ---- Total time: 6 seconds Finished at: Thu Nov 11 22:57:39 JST 2004 ---- だけです…。mavenのリポジトリフォルダってやたらたくさん フォルダがありますけど、どこに入れたらいいかわかります? ダウンロードできない理由もよくわからず・・・
95 名前:デフォルトの名無しさん [04/11/11 23:30:23] ・・・92でアドレス貼り忘れてた参照したページ XML-RPCのソースの以下の箇所を修正した。 blog.livedoor.jp/elis/archives/485398.html XML-RPCは日本語にデフォルトでは対応させていない backno.mag2.com/reader/BackBody?id=200406281000000000094752000
96 名前:デフォルトの名無しさん [04/11/11 23:38:11] maven --debug でやってみると何かわかるかも
97 名前:デフォルトの名無しさん mailto:sage [04/11/11 23:54:51] >>96 おーいっぱい情報でますねー。 ちょっとこれ調べてみます。基本的なこともしらずに申し訳ないです・・・。 レスありがとうございました〜。
98 名前:デフォルトの名無しさん [04/11/11 23:54:54] デフォルトのリモートリポジトリwww.ibiblio.org/maven にダウンロード しに行って404のようですね。
99 名前:デフォルトの名無しさん [04/11/12 00:19:23] >>98 レスありがとうございます。 どうやらそのようです。で、そこで表示されてたローカルリポジトリ(こんなとこだと 思ってませんでした)にダウンロードしてjarを入れてコンパイルしたら buildは通ったのですが、生成物が見あたりません・・・ maven.xmlで定義されてる${maven.build.dir}ってどこのことなんでしょうか・・・
100 名前:デフォルトの名無しさん [04/11/12 01:03:14] 解決してないけど今日は落ちますー 回答くださった方ありがとうございました
101 名前:デフォルトの名無しさん [04/11/12 01:04:48] maven jar で target/xmlrpc-1.2-b1.jar が出来上がったよ。