トップページ⇒tech
987コメント324KB

【Java】Apache Jakarta Commons

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
クラスもかなり増えてきた
Apache Jakarta Commons について語るスレッド

Apache Jakarta Commons
http://jakarta.apache.org/commons/

中でも便利なものが
Commons Lang
http://jakarta.apache.org/commons/lang/
Commons Collections
http://jakarta.apache.org/commons/collections/
Commons FileUpload
http://jakarta.apache.org/commons/fileupload/

とくにLangには equals(), hashcode(), compareTo(), toString()
メソッドを簡単にオーバライドできるメソッドが用意されており重宝する。
そのほか、NestableExceptionはC#のような言語に頼らなくても
投げられ続けた例外を上書きせずに保持する事ができるので便利。

Collectionsは java.utilのコレクションクラスに不満を持つ者にとっては
朗報だ。ListとHashを兼ねた便利なクラスも用意されており、その数は豊富である。
0002デフォルトの名無しさんNGNG
・・・つうかJakartaスレでいいじゃねぇか。
削除依頼だしとけ。
0003デフォルトの名無しさんNGNG
Jakartaスレは落ちたんだよな。

個人的にはApache/Jakartaスレとかにした方がいいと思うんだけど。
Jakartaスレにすると「Antの質問はここでいい?」とか出るし、途中でJakartaからApacheプロジェクトになるものもあるし、
ここもCommonsに限定するとそれ以外の質問はどこで?ということになる。
どれもたいしてスレの流れが速いわけじゃないから統一していいと思うんだよな。
0004デフォルトの名無しさんNGNG
まあ、Jakartaスレの続きってことでいいんじゃねーか?
どうせスレタイにCommonsとか書いてあっても
「Antの質問はここでいい?」ってくるよ
同じことだ
0005デフォルトの名無しさんNGNG
sageわすれたスマソ
0006デフォルトの名無しさんNGNG
Commonsを字面のまま受け取るということで。
Apache Jakarta 共通スレッド。
0007デフォルトの名無しさんNGNG
>>1に書いてあることからそれは無理があるけどな・・・
0008デフォルトの名無しさんNGNG
>>7
しかし、1が挙げたものは使い方も単純で、議論の余地もなく、だから何?というものだからなぁ。
DigesterとかValidatorとか、ちょりっとめんどいものならトモカク。
0009デフォルトの名無しさんNGNG
AntやTomcatでさえ単独スレ無いのに・・・
>>1 は空気・ふいんき(←なぜか変換できない)を読めない奴に違いない
0010デフォルトの名無しさんNGNG
Tomcatは昔単独スレなかったっけ
0011デフォルトの名無しさんNGNG
Commons BeanUitls
Commons Configuration
Commons DBCP
Commons DBUtils
Commons Net
Commons Math
Commons Pool
も使える
 
0012デフォルトの名無しさんNGNG
さっそくですが質問があります。
Commons Digesterを使って作成するBeanのコンストラクタをpublicにしたくありません。
これは可能ですか?
0013デフォルトの名無しさんNGNG
>>10
かなり昔?別板じゃないの?WebProg板とか。
Tomcat4.0のころは、スレが必要なほどだったけど、もうプロジェクト的にも利用者的にも落ち着いたからな。
0014デフォルトの名無しさんNGNG
>>12
で、どうやって使うツモリ?
0015デフォルトの名無しさんNGNG
Apache Jakara Project-2.0 【Java】  
http://pc5.2ch.net/test/read.cgi/tech/1094958940/
0016デフォルトの名無しさんNGNG
>>13
http://www.wikiroom.com/java/?2ch%20Java%B4%D8%CF%A2%A5%B9%A5%EC%A5%C3%A5%C9%B0%EC%CD%F7
0017デフォルトの名無しさんNGNG
>>12
Digesterってどういう香具師?
0018デフォルトの名無しさんNGNG
>>14
できればgetterメソッドだけpublicにして使わせたいのです。
0019デフォルトの名無しさんNGNG
>>17
XMLからJavaのオブジェクトを生成する。
主にXMLで記述した設定ファイルからJavaのオブジェクトに変換するために使う。

DIコンテナの機能限定版だといえなくもない。
0020デフォルトの名無しさんNGNG
>>18
で必要になるオブジェクトはどこで生成するつもり?
0021デフォルトの名無しさんNGNG
漏れの持っているログ

jakarta TOMCAT 2
http://pc5.2ch.net/test/read.cgi/tech/1075516112/

《The Jakarta Project》
http://pc5.2ch.net/test/read.cgi/tech/1019996589/
0022デフォルトの名無しさんNGNG
このスレは、新しい質問・話題をうけつけてません、ってことでOK?
0023デフォルトの名無しさんNGNG
>>20
それをなんとかDigesterでできないかなと、、、、
0024デフォルトの名無しさんNGNG
>>19
なんというか、SOAPとか
シリアライズに似ているな
0025デフォルトの名無しさんNGNG
>>24
逆。
XMLにシリアライズされているものをオブジェクトに戻す。
タグごとに生成するオブジェクトを決めれる。
0026デフォルトの名無しさんNGNG
>>23
コンストラクタじゃなくてファクトリを使わせるつもり?
0027デフォルトの名無しさんNGNG
Antの質問はここでいい?
0028デフォルトの名無しさんNGNG
>>26
それいいですね。staticめ祖度dの呼び出しとか可能ですかねぇ。
0029デフォルトの名無しさんNGNG
>>28
お手軽にXMLからオブジェクトにするためのものだからなぁ。
Relaxerとか、ほかのモノ調べてみたら?
0030デフォルトの名無しさんNGNG
>>25
つまり、DigesterがあればSOAPとかWSDLがいらなくなるってこと?
0031デフォルトの名無しさんNGNG
>>30
外出してたんで返事遅れてスマソ
ありがと、他の手段も検討してみます。

じゃ、このスレはこれで終わりね。

##########################################################

移行先スレ
【Java】Apache Jakarta Commons
http://pc5.2ch.net/test/read.cgi/tech/1094954163/
0032デフォルトの名無しさんNGNG
ΩΩΩ<なんだってー?
0033デフォルトの名無しさんNGNG
>>23
Javaのオブジェクト生成はコンストラクタかデシリアライズか
クローンのいずれかを経なければならなので普通に考えると無理っぽい。

Digesterって簡単に言ってしまえば、XMLを読み込みつつ、
既成のBeansクラスを生成してsetXXXしていくだけのもんだか
らなあ。

強いて言えば、Digesterからはファクトリ経由で生成するようにして、
ファクトリではそのオブジェクトをシングルトンとして扱う、くらいか
な。

0034デフォルトの名無しさんNGNG
>>30
シリアライズされないって。
機種非依存でもないし。
0035デフォルトの名無しさんNGNG
>>30
出直してこい
0036デフォルトの名無しさんNGNG
JJar っていうのが気になるんだけど何をするものかがわかんねぇッス
0037デフォルトの名無しさんNGNG
>>36
Jakartaの最新リリースを自動的にとってくる仕組みらしい。
opt-getみたいなやつかな。
antから使えるみたいだね。
0038デフォルトの名無しさんNGNG
よみかたは「ジャジャー」ですか?
0039デフォルトの名無しさんNGNG
>>36
CPANのJava版だよ。
Apache MavenでもAPIの自動ダウンロードに使われている。
0040デフォルトの名無しさんNGNG
>>36
CPANのほかに、
FreeBSDのPorts. Linuxのyumみたいなものだろうか。
0041デフォルトの名無しさんNGNG
Jakartaスレの前スレでも同じ話が出てたな
0042デフォルトの名無しさんNGNG
commonsいいね、ソース読んでぱくらずにはいられなくなった。上手だね使い方
俺用にcommons.jarっての全部まとめた奴で配布してください。
0043デフォルトの名無しさんNGNG
すでにライブラリだから、パクるひつようもない・・・
0044デフォルトの名無しさんNGNG
マジレスすれば、たぶんソースコードで使われている技術的な
パターンというかやり方を、別のとこで流用するとか、そんな
話だとおもう
0045デフォルトの名無しさんNGNG
DIgester で
Commons Digester http://muimi.com/j/jakarta/commons/digester/
の例での addChild() のよーなメソッドを入れずに ルールの記述だけで
子要素を追加する方法ってあるだろーか?

0046デフォルトの名無しさんNGNG
>>45
なんか質問の意味がいまいちつかめん。
DigesterだとSetNextRuleで親コンポーネントに自分を登録する、
てのは普通のことだと思うが、それをしたくないってこと?
だとすると、具体的にどういうのが理想だといってるんだろ?
0047デフォルトの名無しさんNGNG
>>42
Mavenで自動ダウンロードしちゃえばそんな
手間も掛けずに済むでえ
0048デフォルトの名無しさんNGNG
>>34
やっとDigesterがどんなものかわかったよ。
ようするに、ぶっちゃけ
JAXBみたいなもんだったんだね。
0049デフォルトの名無しさんNGNG
>>48
つうか、SAX2をつかってXMLを読み込んで、対応するbeanを
簡単に作成する技術だと思いねえ。
SAX2もDOMも「読むだけ」でbeanは自前で作るんで、その辺を
解決しようと言うものだな。
005045NGNG
>>46
getXXX()/setXXX()メソッドのみ記述していある普通のbeanを素で使いたいの
だが、Digesterの場合はプログラム中で必要なくても 子要素追加には
addXXX() が必要になるじゃんスか。


0051デフォルトの名無しさんNGNG
>>50
??????
SetNextRuleというのは、終了タグが来た時に親オブジェクトに対して
「引数の文字列で指定したメソッド」を実行するルールだぞ?

たしかにDigesterのサンプルの大部分は下のような例になっている。

digester.addSetNext( "hoge/hage", "addHage");

 でもこれは hoge/hageが見つかった時に親オブジェクトに対して
addHage()メソッドを呼べ、という意味だろ。
 じゃあ、上記の第2引数を「setHage」と書き換えたらあんたの希望
の動作になるんじゃないのか?
005250NGNG
>>51
言葉足らずですまん。子要素ってのは単一項目じゃなくてList系のやつ。
希望の動作としては
子要素作成、子要素作成、子要素作成、子要素リストを一気に登録。
書き方がわかるやりかたは
子要素作成・追加、 子要素作成・追加、 子要素作成・追加、…
って感じかなぁ。
しかし、strutsとかで使っているDigesterから生成する設定クラスもaddXXX()メソッド
みたいなのばっかだから、これでいいか…。
0053デフォルトの名無しさんNGNG
>>50
お前は何を一人でぶつぶつ言ってんだよ。
0054デフォルトの名無しさんNGNG
変な人は放置しよう
0055デフォルトの名無しさんNGNG
>>52
Digesterの話をしてるんだからXMLとJavaで話せ。
こういうXML文書をこういうクラスにマップする、みたいに。
0056デフォルトの名無しさんNGNG
>>33
リフレクション使えばprivateだろうが問題ない。
0057デフォルトの名無しさんNGNG
>>56
マジデスカ?
0058デフォルトの名無しさんNGNG
digester は、JavaとXMLだけではちと直感的にわからない。
Stackを頭に描きながらサンプルを追いかけるべし。
005933NGNG
>>56
そっか。そりゃそうだな。
それでFactoryCreateRule使って、ファクトリ内で
リフレクションを使ってオブジェクト生成してやるか。
0060デフォルトの名無しさんNGNG
よく考えれば依存性注入ってそうやってやってるんだったな....
0061デフォルトの名無しさんNGNG
>>56
呼び出したらエラーでない?
0062デフォルトの名無しさんNGNG
単純に
 Test.class.getDeclaredMethod("test", null).invoke(obj, null);
とやってprivateなtestメソッド呼び出したらIllegalAccessException出るんだけど、DigesterからならOKなの?
0063デフォルトの名無しさんNGNG
>>62
setAccessible(boolean)
または
AccessibleObject.setAccessible(AccessibleObject[],boolean)
は実行した?
これしないとフィールド取ってきてもアクセスできない。
0064デフォルトの名無しさんNGNG
>>63
えー、そうなん。
知らんかった。
疑ってごめんよ。
0065デフォルトの名無しさんNGNG
>>64
ここ見ろ。
ttp://muimi.com/j/reflection/
0066デフォルトの名無しさんNGNG
・・・なぜこの文脈で紹介されるのか、意図が不明だった。
0067デフォルトの名無しさんNGNG
>>15のスレがDAT落ちした・・・。
0068デフォルトの名無しさんNGNG
あっちが本スレのはずだったのに・・・
0069デフォルトの名無しさんNGNG
jakarta-commons/comboすげーぜ
エラーで詰まるけどね
0070デフォルトの名無しさんNGNG
>>69
combo?なにそれ?
0071デフォルトの名無しさんNGNG
digesterよりbetwixtの方がもっと簡単にJava⇔XML変換できそうなんだけど
使ってみた奴いる?
0072デフォルトの名無しさんNGNG
>>71
それはまあ事実なんだけど、betwixtのXML形式でいいや、というときだけだぞ。
digesterは任意のXMLファイルを読み込んでJavaBeansを生成する技術。betwixtは
JavaBeansを所定の形式のXMLファイルへ変換(または逆)するものだな。
betwixt自体、内部でdigester使ってるし。
0073デフォルトの名無しさんNGNG
>>71
digesterはXML→Javaでしょ。逆はないよ。
0074デフォルトの名無しさんNGNG
>70
http://cvs.apache.org/viewcvs.cgi/jakarta-commons/combo/
ここなんだけど、かなり古い情報でこしらえる。これは利用するもんじゃないの?
ちゃんとこしらえてくれるならいいと思うんだけど
0075デフォルトの名無しさんNGNG
>>74
表にはでてないよね?
なにするもの?
0076デフォルトの名無しさんNGNG
comboはcommonsのライブラリ群を1つにまるめるだけです。
antタスクで1つずつ落としてビルドしてく原始的なもんです
自分は助かったんですが、ここの住人には無意味かも知れません
0077デフォルトの名無しさんNGNG
ちと質問です。
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クラスの中に作成しないとダメなんでしょうか?
0078デフォルトの名無しさんNGNG
>>76
mavenなら不要、とかそんな話かな。
0079デフォルトの名無しさんNGNG
>78
ずばりそうです
0080デフォルトの名無しさんNGNG
>>77
http://jakarta.terra-intl.com/commons/betwixt/overview.html
public class SomeBean {
public <CollectionType> getFoo*();
public void addFoo(<SingularType> foo);
}

できるっぽい。試して報告汁
0081デフォルトの名無しさんNGNG
>>80
情報�dクスです。
Adderメソッドですか・・・。
月曜にでも試して報告します。

ありがとうございました!
008277NGNG
遅れました。betwixtのリスト構造での動作確認しました。
addメソッド使えばリスト構造もイケます。
ArrayListとかも使えるので結構便利です。ですが、
リスト構造の場合、まだbetwixtファイルとの連携ができてません。
(できてる人いたら教えてください・・・)

<addDefaults/>を使えば、それなりに自分の望んだ形にはなってくれるのですが・・・。

>>77のようなクラスの場合、betwixtファイルを使うときははAbcFormクラス用とXyzクラス用の
betwixtファイルを作成する必要があります。

そんな感じっす
0083デフォルトの名無しさんNGNG
>82
どの部分が引っかかってるのか
もう少し詳しく教えていただけないでしょうか?
0084デフォルトの名無しさんNGNG
デフォルトだと
<xyzList>
 <xyz>
 <xyz>
</xyzList>
みたいな構造のXMLが変換可能で<xyzList>タグが必要になる。
これを防ぐには.betwixtファイルが必要(最低6行程度のXML)

.betwixtファイルなしではできなそうだが・・・何か方法あるのか?
0085デフォルトの名無しさんNGNG
betwixtファイルなしだったら、�_じゃね?
そもそもbetwixtファイルなしじゃないといけないことってあるのかな?
0086デフォルトの名無しさんNGNG
commonsのsandboxの位置付けは何ざましょ
見てかなり有用なもんだとは思ったのですが、利用されてますか?
0087デフォルトの名無しさんNGNG
>>86
Sandboxにあるのはまだテスト中というか、commonsに組み込める品質に達してない、
試行錯誤段階にあるってこと。
0088デフォルトの名無しさんNGNG
サンドボックスモデルのこと
0089デフォルトの名無しさんNGNG
みんなjakartaぐらい綺麗なコード扱ってるかい!!???
自慢じゃないが比較にならない程にごちゃごちゃで汚いコードです。
恐縮です。
0090デフォルトの名無しさんNGNG
Jakartaもマイナーなところは結構コードがきたなかったりする。
0091デフォルトの名無しさんNGNG
Jakartaは綺麗だよな。
GNU関係のは結構ひどい。
0092デフォルトの名無しさんNGNG
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 http://java.sun.com/products/jsse/)
jnet.jar (try downloading from http://java.sun.com/products/jsse/)
jcert.jar (try downloading from http://java.sun.com/products/jsse/)
0093デフォルトの名無しさんNGNG
その3つのjarダウンロードしてきて
ローカルリポジトリに手動で入れるしかないんじゃない?

エラーメッセージもっとないとこれ以上はわからん
0094デフォルトの名無しさんNGNG
>>93
レスありがとうございます

エラーメッセージはあと
----
Total time: 6 seconds
Finished at: Thu Nov 11 22:57:39 JST 2004
----
だけです…。mavenのリポジトリフォルダってやたらたくさん
フォルダがありますけど、どこに入れたらいいかわかります?
ダウンロードできない理由もよくわからず・・・
0095デフォルトの名無しさんNGNG
・・・92でアドレス貼り忘れてた参照したページ

XML-RPCのソースの以下の箇所を修正した。
http://blog.livedoor.jp/elis/archives/485398.html
XML-RPCは日本語にデフォルトでは対応させていない
http://backno.mag2.com/reader/BackBody?id=200406281000000000094752000
0096デフォルトの名無しさんNGNG
maven --debug でやってみると何かわかるかも
0097デフォルトの名無しさんNGNG
>>96
おーいっぱい情報でますねー。
ちょっとこれ調べてみます。基本的なこともしらずに申し訳ないです・・・。
レスありがとうございました〜。
0098デフォルトの名無しさんNGNG
デフォルトのリモートリポジトリwww.ibiblio.org/maven にダウンロード
しに行って404のようですね。
0099デフォルトの名無しさんNGNG
>>98
レスありがとうございます。
どうやらそのようです。で、そこで表示されてたローカルリポジトリ(こんなとこだと
思ってませんでした)にダウンロードしてjarを入れてコンパイルしたら
buildは通ったのですが、生成物が見あたりません・・・
maven.xmlで定義されてる${maven.build.dir}ってどこのことなんでしょうか・・・
0100デフォルトの名無しさんNGNG
解決してないけど今日は落ちますー
回答くださった方ありがとうございました
0101デフォルトの名無しさんNGNG
maven jar
で target/xmlrpc-1.2-b1.jar が出来上がったよ。
■ このスレッドは過去ログ倉庫に格納されています