【Java】Apache Jakarta Commons
1 :
デフォルトの名無しさん :
04/09/12 10:56:03
・・・つうかJakartaスレでいいじゃねぇか。 削除依頼だしとけ。
Jakartaスレは落ちたんだよな。 個人的にはApache/Jakartaスレとかにした方がいいと思うんだけど。 Jakartaスレにすると「Antの質問はここでいい?」とか出るし、途中でJakartaからApacheプロジェクトになるものもあるし、 ここもCommonsに限定するとそれ以外の質問はどこで?ということになる。 どれもたいしてスレの流れが速いわけじゃないから統一していいと思うんだよな。
4 :
デフォルトの名無しさん :04/09/12 11:46:44
まあ、Jakartaスレの続きってことでいいんじゃねーか? どうせスレタイにCommonsとか書いてあっても 「Antの質問はここでいい?」ってくるよ 同じことだ
sageわすれたスマソ
Commonsを字面のまま受け取るということで。 Apache Jakarta 共通スレッド。
>>1 に書いてあることからそれは無理があるけどな・・・
>>7 しかし、1が挙げたものは使い方も単純で、議論の余地もなく、だから何?というものだからなぁ。
DigesterとかValidatorとか、ちょりっとめんどいものならトモカク。
AntやTomcatでさえ単独スレ無いのに・・・
>>1 は空気・ふいんき(←なぜか変換できない)を読めない奴に違いない
Tomcatは昔単独スレなかったっけ
Commons BeanUitls Commons Configuration Commons DBCP Commons DBUtils Commons Net Commons Math Commons Pool も使える
さっそくですが質問があります。 Commons Digesterを使って作成するBeanのコンストラクタをpublicにしたくありません。 これは可能ですか?
>>10 かなり昔?別板じゃないの?WebProg板とか。
Tomcat4.0のころは、スレが必要なほどだったけど、もうプロジェクト的にも利用者的にも落ち着いたからな。
>>14 できればgetterメソッドだけpublicにして使わせたいのです。
>>17 XMLからJavaのオブジェクトを生成する。
主にXMLで記述した設定ファイルからJavaのオブジェクトに変換するために使う。
DIコンテナの機能限定版だといえなくもない。
>>18 で必要になるオブジェクトはどこで生成するつもり?
このスレは、新しい質問・話題をうけつけてません、ってことでOK?
>>20 それをなんとかDigesterでできないかなと、、、、
>>19 なんというか、SOAPとか
シリアライズに似ているな
>>24 逆。
XMLにシリアライズされているものをオブジェクトに戻す。
タグごとに生成するオブジェクトを決めれる。
>>23 コンストラクタじゃなくてファクトリを使わせるつもり?
Antの質問はここでいい?
>>26 それいいですね。staticめ祖度dの呼び出しとか可能ですかねぇ。
>>28 お手軽にXMLからオブジェクトにするためのものだからなぁ。
Relaxerとか、ほかのモノ調べてみたら?
30 :
デフォルトの名無しさん :04/09/12 16:25:51
>>25 つまり、DigesterがあればSOAPとかWSDLがいらなくなるってこと?
ΩΩΩ<なんだってー?
>>23 Javaのオブジェクト生成はコンストラクタかデシリアライズか
クローンのいずれかを経なければならなので普通に考えると無理っぽい。
Digesterって簡単に言ってしまえば、XMLを読み込みつつ、
既成のBeansクラスを生成してsetXXXしていくだけのもんだか
らなあ。
強いて言えば、Digesterからはファクトリ経由で生成するようにして、
ファクトリではそのオブジェクトをシングルトンとして扱う、くらいか
な。
>>30 シリアライズされないって。
機種非依存でもないし。
JJar っていうのが気になるんだけど何をするものかがわかんねぇッス
>>36 Jakartaの最新リリースを自動的にとってくる仕組みらしい。
opt-getみたいなやつかな。
antから使えるみたいだね。
よみかたは「ジャジャー」ですか?
>>36 CPANのJava版だよ。
Apache MavenでもAPIの自動ダウンロードに使われている。
>>36 CPANのほかに、
FreeBSDのPorts. Linuxのyumみたいなものだろうか。
Jakartaスレの前スレでも同じ話が出てたな
commonsいいね、ソース読んでぱくらずにはいられなくなった。上手だね使い方 俺用にcommons.jarっての全部まとめた奴で配布してください。
すでにライブラリだから、パクるひつようもない・・・
マジレスすれば、たぶんソースコードで使われている技術的な パターンというかやり方を、別のとこで流用するとか、そんな 話だとおもう
45 :
デフォルトの名無しさん :04/09/20 03:59:04
>>45 なんか質問の意味がいまいちつかめん。
DigesterだとSetNextRuleで親コンポーネントに自分を登録する、
てのは普通のことだと思うが、それをしたくないってこと?
だとすると、具体的にどういうのが理想だといってるんだろ?
47 :
デフォルトの名無しさん :04/09/20 13:05:05
>>42 Mavenで自動ダウンロードしちゃえばそんな
手間も掛けずに済むでえ
>>34 やっとDigesterがどんなものかわかったよ。
ようするに、ぶっちゃけ
JAXBみたいなもんだったんだね。
>>48 つうか、SAX2をつかってXMLを読み込んで、対応するbeanを
簡単に作成する技術だと思いねえ。
SAX2もDOMも「読むだけ」でbeanは自前で作るんで、その辺を
解決しようと言うものだな。
>>46 getXXX()/setXXX()メソッドのみ記述していある普通のbeanを素で使いたいの
だが、Digesterの場合はプログラム中で必要なくても 子要素追加には
addXXX() が必要になるじゃんスか。
>>50 ??????
SetNextRuleというのは、終了タグが来た時に親オブジェクトに対して
「引数の文字列で指定したメソッド」を実行するルールだぞ?
たしかにDigesterのサンプルの大部分は下のような例になっている。
digester.addSetNext( "hoge/hage", "addHage");
でもこれは hoge/hageが見つかった時に親オブジェクトに対して
addHage()メソッドを呼べ、という意味だろ。
じゃあ、上記の第2引数を「setHage」と書き換えたらあんたの希望
の動作になるんじゃないのか?
>>51 言葉足らずですまん。子要素ってのは単一項目じゃなくてList系のやつ。
希望の動作としては
子要素作成、子要素作成、子要素作成、子要素リストを一気に登録。
書き方がわかるやりかたは
子要素作成・追加、 子要素作成・追加、 子要素作成・追加、…
って感じかなぁ。
しかし、strutsとかで使っているDigesterから生成する設定クラスもaddXXX()メソッド
みたいなのばっかだから、これでいいか…。
53 :
デフォルトの名無しさん :04/09/22 00:22:41
変な人は放置しよう
>>52 Digesterの話をしてるんだからXMLとJavaで話せ。
こういうXML文書をこういうクラスにマップする、みたいに。
>>33 リフレクション使えばprivateだろうが問題ない。
digester は、JavaとXMLだけではちと直感的にわからない。 Stackを頭に描きながらサンプルを追いかけるべし。
>>56 そっか。そりゃそうだな。
それでFactoryCreateRule使って、ファクトリ内で
リフレクションを使ってオブジェクト生成してやるか。
よく考えれば依存性注入ってそうやってやってるんだったな....
単純に Test.class.getDeclaredMethod("test", null).invoke(obj, null); とやってprivateなtestメソッド呼び出したらIllegalAccessException出るんだけど、DigesterからならOKなの?
>>62 setAccessible(boolean)
または
AccessibleObject.setAccessible(AccessibleObject[],boolean)
は実行した?
これしないとフィールド取ってきてもアクセスできない。
>>63 えー、そうなん。
知らんかった。
疑ってごめんよ。
・・・なぜこの文脈で紹介されるのか、意図が不明だった。
あっちが本スレのはずだったのに・・・
jakarta-commons/comboすげーぜ エラーで詰まるけどね
71 :
デフォルトの名無しさん :04/09/29 23:02:52
digesterよりbetwixtの方がもっと簡単にJava⇔XML変換できそうなんだけど 使ってみた奴いる?
>>71 それはまあ事実なんだけど、betwixtのXML形式でいいや、というときだけだぞ。
digesterは任意のXMLファイルを読み込んでJavaBeansを生成する技術。betwixtは
JavaBeansを所定の形式のXMLファイルへ変換(または逆)するものだな。
betwixt自体、内部でdigester使ってるし。
>>71 digesterはXML→Javaでしょ。逆はないよ。
comboはcommonsのライブラリ群を1つにまるめるだけです。 antタスクで1つずつ落としてビルドしてく原始的なもんです 自分は助かったんですが、ここの住人には無意味かも知れません
ちと質問です。 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 ずばりそうです
80 :
デフォルトの名無しさん :04/09/30 23:03:11
81 :
デフォルトの名無しさん :04/10/01 02:07:13
>>80 情報dクスです。
Adderメソッドですか・・・。
月曜にでも試して報告します。
ありがとうございました!
遅れました。betwixtのリスト構造での動作確認しました。
addメソッド使えばリスト構造もイケます。
ArrayListとかも使えるので結構便利です。ですが、
リスト構造の場合、まだbetwixtファイルとの連携ができてません。
(できてる人いたら教えてください・・・)
<addDefaults/>を使えば、それなりに自分の望んだ形にはなってくれるのですが・・・。
>>77 のようなクラスの場合、betwixtファイルを使うときははAbcFormクラス用とXyzクラス用の
betwixtファイルを作成する必要があります。
そんな感じっす
>82 どの部分が引っかかってるのか もう少し詳しく教えていただけないでしょうか?
84 :
デフォルトの名無しさん :04/10/09 03:00:14
デフォルトだと <xyzList> <xyz> <xyz> </xyzList> みたいな構造のXMLが変換可能で<xyzList>タグが必要になる。 これを防ぐには.betwixtファイルが必要(最低6行程度のXML) .betwixtファイルなしではできなそうだが・・・何か方法あるのか?
betwixtファイルなしだったら、_じゃね? そもそもbetwixtファイルなしじゃないといけないことってあるのかな?
commonsのsandboxの位置付けは何ざましょ 見てかなり有用なもんだとは思ったのですが、利用されてますか?
>>86 Sandboxにあるのはまだテスト中というか、commonsに組み込める品質に達してない、
試行錯誤段階にあるってこと。
サンドボックスモデルのこと
みんなjakartaぐらい綺麗なコード扱ってるかい!!??? 自慢じゃないが比較にならない程にごちゃごちゃで汚いコードです。 恐縮です。
Jakartaもマイナーなところは結構コードがきたなかったりする。
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
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/ )
93 :
デフォルトの名無しさん :04/11/11 23:15:34
その3つのjarダウンロードしてきて ローカルリポジトリに手動で入れるしかないんじゃない? エラーメッセージもっとないとこれ以上はわからん
>>93 レスありがとうございます
エラーメッセージはあと
----
Total time: 6 seconds
Finished at: Thu Nov 11 22:57:39 JST 2004
----
だけです…。mavenのリポジトリフォルダってやたらたくさん
フォルダがありますけど、どこに入れたらいいかわかります?
ダウンロードできない理由もよくわからず・・・
95 :
デフォルトの名無しさん :04/11/11 23:30:23
96 :
デフォルトの名無しさん :04/11/11 23:38:11
maven --debug でやってみると何かわかるかも
>>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 が出来上がったよ。
102 :
デフォルトの名無しさん :04/11/12 01:12:35
mavenのスレ誰か作って。このスレと同じ過疎スレになるかもしれんが・・・ 慣れるまでが結構大変なんだけど、慣れるとめちゃめちゃ便利なツール。 リファレンスは少なめ。悲しい
>>101 おおおおおおおおおおgoal指定になるのかな?
antと同じ感覚で
$maven
としか入力してませんですた・・・ちゃんと書くべきでしたね。
一回目失敗して二回目で無事できました!
ホントにありがとうございました<m(_)m>
105 :
デフォルトの名無しさん :04/11/12 01:53:35
MavenでJakarta CommonなどJakartaに 存在するすべてのライブラリをダウンロードするには どうすればいいのかな? わざわざ長いXMLコードを書かないといけないのかな?
106 :
デフォルトの名無しさん :04/11/23 00:06:01
JRCS無くなったのか・・・CVSに残骸しかない・・・ APIリファレンスどっかに落ちてないかなぁ
107 :
デフォルトの名無しさん :04/11/23 04:28:04
108 :
デフォルトの名無しさん :04/12/05 21:46:10
>>108 マジレスしとくと、おれは良い本だと思ったよ。仕事で重宝している。
その本はかなりいい本だよ
総攬するにはかなり良い本。
112 :
デフォルトの名無しさん :04/12/24 15:56:37
ja-jakartadj?
Commons XMLIOての見かけたんだけど、何がうれしいんだろう・・?
115 :
デフォルトの名無しさん :04/12/26 17:57:33
WinXPSP2な環境なのですが、 Apache2のインストール時にサービス登録でエラーになってしまいます。 回避方法はありますでしょうか?
. k. m ktyr aeoe. oooo
かもーん。
>>115 exeやmsi形式ではなく
zip形式のApacheを導入してしまえ。
そもそもどんなエラーメッセージがでたのかわからなければ
答えようがない。
119 :
デフォルトの名無しさん :05/01/13 11:04:34
コマンドライン(正確にはemacs)から ant + junit でユニットテストをしています。 ソースツリーの中のすべてのテストクラスを動かすときは、 ・test とかいうターゲットを作る ・その中で <batchtest> タスクを使う(結果は <junit-report> タスクで html に吐いている) ・コマンドラインから、 c;\>ant test みたいな感じで実行 ってやってますが、全部のテストクラスを動かすと時間がかかるので、 テストクラスをひとつだけ動かしたいときがあります。 その場合、 <test name="jp.co.**.**.HogeTest" > みたいな感じで テストクラスを指定しますが、これだと毎回 build.xml に書き込まないと行けません。 ant test HogeTest みたいに コマンドラインの引数を渡して実行することは出来ないでしょうか? ant の場合、ant test HogeTest とすると、 test ターゲットを実行して、次に HogeTest ターゲットを実行しようとしますよね?
>>115 亀レスだけど、前IISが動作してるPCで、IIS止めるの忘れてインストールしたら同じような現象になったよ。
サービス止めてからインストールし直したら直った。
もしIIS入れてないなら、XPのSP2がなんか悪さしてるのかもね。
123 :
デフォルトの名無しさん :05/01/16 02:13:08
solaris8上でvelocity.logを自作シェルスクリプトでローテートさせたいのですが、 サーバを再起動せずにログをmvするという単純なフローを考えています。 このやりかたで大丈夫かどうか教えてください。
mvするってことは(同一ファイルシステム上なら)rename(2)する、つまり ディレクトリからファイルを指す名前を変えるだけですよね。 ログを開きっぱなしで追記していくなら、ネイティブコードレベルでは、 openしたときに確定したファイルディスクリプタ(ファイル名は既に無関 係)に対してwriteしていくだけなので、それだけではそのまま新しい名 前のファイルに書き続けることになるような気がします。 書く度にログをオープン/クローズするならmvするだけでよいハズ。
Apache Web Serverは再起動しなくちゃダメだよね。 他は大体大丈夫のはず。
>>120 そのやり方に味付けをするとすれば
ドメインパッケージ名があるとき、
パッケージ名の一部はコード内に書いたほうがよさげ。
うちはEclipse + Ant を使ってしまっているから
そんなことをする必要性が感じないのだ〜
127 :
デフォルトの名無しさん :05/01/23 01:48:03
いい解説ページってないですかね validator使いたい
128 :
デフォルトの名無しさん :05/01/23 02:09:25
イベント関係のAPIをまず勉強してみたいのですが、どの辺りがよろしいのですか? あと、これのライセンスは現状で確定ですか?使えるなら6ヵ月後のプロジェクト の試作品をこれで作ってみたい。
「攻略 Jakarta Commons」という本は、Commons解説本として良い本だと思う。
イベント関係じゃ何がなんだか これも何かわからんし こんなPMこわひ
>>128 イベント関係ですか。それならActionListenerが最強です。
ライセンスもSUNが握っていますが、あなたがActionListenerを使うだけにおいては何ら問題ないです。
最近イベントで流行ってるAPIといえばEJB3じゃねぇか? 次のカンファレンスでもEJB3の話あるし、どのイベントでもEJB3とりあげてる。
最近のイベントのライセンスはどうなんだろうね。
136 :
デフォルトの名無しさん :05/01/29 01:58:55
>129 解説本と言うよりは紹介本だと思う。 こんなことやあんなことが出来るといわれ 興味を持っていろいろ調べようという気にさせてくれる。 解説本としては紙幅が足りない感じ。 とはいえ良い本だと思う。 >128 Jakarta ではないけれど、Spring の ApplicationListener とか。
138 :
デフォルトの名無しさん :05/02/09 16:39:51
TomcatのセッションIDの桁数ってどう設定するのでしょうか?
>>138 え?そんなんできんの?俺も知りたいなー。
>>138 え?Tomcatってcommonsだったか?
RandomStringUtils萌え
javaのjsp/サーブレットの参考書を読んでいます。
Apacheの設定でNetwork DomainとServer Nameにlocal hostと入力し
Apacheの動作確認をしたところ、ブラウザを開き
http://localhost/ または、
http:// (コンピュータ名、ipアドレス)と入力するとあります。
すると、ドットゲートサービスと出てユーザ名とパスワードがでました。
設定した覚えがないので、進めることができません。
OS:xp Apache:1.3.24 メーカー:NECです。
わかるかたお願いします。
NECが入れてるapacheの設定に関することのようなので、 NECに聞いてください。
訳: メーカーは関係ないだろう、と
いや、apacheプリインストールで「ドットゲートサービス」 なるものを提供しているNECのパソコンがあるようなので(ぐぐった)、 それのことかな、と。
あーすまん勘違いでした。 >143 まあ適当に飛ばしてtomcat単体で動かせば良いと思う
148 :
143 :05/03/17 19:50:04
了解!飛ばしてやってみます
>>146 ネタかと思ったら、本当にあるのね。
Webアプリケーションの開発とかに使うのなら、一度削除してから
自分で再インスコするほうがよさそうだけど。
つか、初心者用の本で、わざわざ最初にApacheとの連携させる意味がわからんな。
151 :
デフォルトの名無しさん :2005/03/24(木) 11:02:01
152 :
デフォルトの名無しさん :2005/03/31(木) 23:31:18
antの質問いいですか?
153 :
デフォルトの名無しさん :2005/03/31(木) 23:31:41
antってなんですか?
154 :
デフォルトの名無しさん :2005/03/31(木) 23:32:03
山は死にますか?
155 :
デフォルトの名無しさん :2005/03/31(木) 23:32:24
川はどうですか?
156 :
デフォルトの名無しさん :2005/03/31(木) 23:33:14
豊はなんでしょうか?
158 :
デフォルトの名無しさん :int 2ch =5年,2005/04/02(土) 15:20:07
BigDecimalのUtilってないかな?
159 :
デフォルトの名無しさん :2005/04/20(水) 16:28:13
>>159 仕方がないとはいえ、Cで作ったライブラリを一部使うので、jarがあればどこでも使えるというわけには
いかない。狙い所はいいのに、なんとかならんものか。
SWTとかJDICみたいに、それぞれのOS用のバイナリがあればいいだけじゃない?
162 :
デフォルトの名無しさん :2005/04/21(木) 05:56:02
>>160 OSに深くかかわる部分だしある程度は仕方ないね
Windows だけのことを考えるなら JavaService の方が使い勝手は良さそう。
164 :
デフォルトの名無しさん :2005/05/18(水) 20:54:39
保守
165 :
デフォルトの名無しさん :2005/05/19(木) 07:27:22
torqueって使えそう? ほかのフレームワークとかもだけどDBを完全に正規化しておくとかVIEWを作ってあげないとだめぽなのかなぁ
Torqueはメイン開発者がお亡くなりになったので、開発がほとんど進んでない。 HibernateかS2DaoかEJB3待ちか、最近の選択肢は3つ。
170 :
デフォルトの名無しさん :2005/05/24(火) 12:33:03
O/R-Mappingならそれでもいいけど、 手軽にSQL-Mappingということなら、iBATISも選択肢に入ると思われ。
171 :
デフォルトの名無しさん :2005/05/28(土) 15:46:48
質問です。 Commons NetのSMTPClientでsendMessageData()メソッドを使ってメッセージ送信する際、 文字エンコーディングを指定するにはどうすればいいですか?? 何か参考になるサイトでもいいのでどなたかよろしくお願いします m(__)m
172 :
デフォルトの名無しさん :2005/05/28(土) 22:51:05
age
>>171 俺はJavaMailの方でやっているけど、いずれこっちに変えようかと思っていたので調べてみた。
Commons NetのSMTPは、シンプルにSMTPというプロトコルを実装しているだけなので、MIMEは全然ノータッチみたい。
エンコーディングを自分でした後、それをsendMessageData()するという感じだと思う。
メール送信するだけならCommons EMailというのがあるけど、今のところCVSからしか落とせないみたい。
JavaDoc見る限り EMail.setCharset()というのがある。EMailクラスを継承したMultiPartEmailクラスがあるからこれを使うみたいだけど、
試してないからホントにちゃんと使えるのかどうかは知らない。
Commons EMailがCommons Netを使っているのかどうかも不明。
もし試してみるなら、結果を報告してくれたらうれしい。
174 :
デフォルトの名無しさん :2005/05/29(日) 16:29:36
POIでExcelシートをワークブックの任意の位置に移動するメソッドはありますか?それっぽいのがみつかりません。
シートの順番の入れ替え?
>>173 横から報告してみる。
# いま、Jakartaにつながらない。
半年前使ったときには、SMTP はJavaMail を使ってました。
MultiPartには対応していていました。
そのときは、charsetがまともに指定できてなかったと思います。
177 :
JavaMailプロ :2005/05/30(月) 05:07:22
>>176 の件だが、
(1) javax.mail.MimePart#setText(String text, String charset)を使えば、
"text/plain"限定で文字セット指定ができる。
(2) javax.mail.Part#setContent(Object body, String mimeType)を使えば、
任意のMIMEタイプ/文字セット指定ができる。
エンコーディング指定には javax.mail.Part#setHeader("Content-Transfer-Type", "BASE64")等を指定。
ただし、(2)では実際のエンコーディング処理は内部的に
JAF(Java Activation Framework)のDataHandlerクラス (javax.activation.*)が呼び出している。
もし、デフォルトでインストールされているDataHandlerが、期待するエンコーディングをしない場合は、
新しいエンコーディング用にDataHandlerとDataSourceのサブクラスを作成して、
JAFのプロパティ・ファイルに登録してやる必要がある。
・・・JavaMailは、「Javaのメール・クライアントを作ってPCデスクトップを攻略」するためのAPIだったんで、
メール・クライアント以降の新しいニーズ(例えばSOAPやMQ)では使いにくいかもしれない。
以降、JavaMailプロの独り言
・・・その昔、JavaMailがまだβ版だった当時、
日本語メール慣習への適合度や、バグ含有度を調べる余裕がなくて、
JavaMail APIをフルスクラッチで書いて、
その上にメール・クライアントを構築した事を思い出した。
(本当はメッセージ・キューやらワークフロー・エンジンも作るって言われたから
基礎からカッチリ作ったんだけど・・・未実現。
つか、そのうちJMSやらSOAPが出てきた。俺の仕事ってつくづくProgress Software近辺と被ってるのな)
ちょっと時代の流れとずれてるために、努力が日の目をみない人ですか?
179 :
デフォルトの名無しさん :2005/05/30(月) 08:28:36
なんだよてめぇ、朝から喧嘩うってんか
× ただし、(2)では実際のエンコーディング処理は内部的にJAFのDataHandlerが呼び出している ○ ただし、(1)(2)の実際のエンコーディング処理は、MIMEタイプに応じてJAF APIのDataHandlerが処理してる
181 :
デフォルトの名無しさん :2005/06/03(金) 02:08:39
頑張れ!目的不明な単発質問くん!
質問のフリ荒らし:書くことはないがスレの流れが気になって仕方なく とりあえずスレ違いにはならないとおもわれる範囲で 質問・同意を得る形式でレスをすること。 答えがどうあろうとレス稼ぎが問題なので単発で終わることが多い。
Writerからどうやってエンコーディング指定できるOutputStreamWriterに変換すればいいですか?
185 :
デフォルトの名無しさん :2005/06/04(土) 12:18:02
187 :
デフォルトの名無しさん :2005/06/11(土) 13:14:35
Commonsじゃなくて申し訳ないけど、Luceneって何て読むの? すっげー気になったもんで。
ルセーヌだよ。
エルセーヌだよ。
銭型警部:「ヤツはとんでもないものを盗みました・・・それは貴女のデスクトップ検索情報です・・・」
「ところで、今、こんな顔(σ・д・)したやつこなかったか?」 「ばかもーん、そいつがルパンだ、追え〜」
1.コンビニでアンパンをひとつ買い、 「インターポールの銭形です。 ルパンを追っているので見かけたら連絡をお願いします。」 と言って立ち去る。 2.すぐにドタバタ戻ってきて店員に、 「今わしを見かけなかったか?」 と怒鳴りつける。 3.「今あなたアンパン買って・・・」 「ばかもーん!そいつがルパンだー!!」 と言って、またドタバタと出て行く。
で、アンパンマンはいつになったら出てくるんだ?
「ところで、今、こんな顔(σ・д・)したやつこなかったか?」 「ばかもーん、そいつがアンパンマンだ、追え〜」
VelocityToolsで tools.view.servlet.error.template( = Error.vm) tools.view.servlet.layout.directory( = layout/) tools.view.servlet.layout.default.template( = Default.vm) この設定を全て無効化することはできないのか? test.html?layout=./ このレイアウトのパラメータも無効化したい。
200 :
デフォルトの名無しさん :2005/07/26(火) 11:35:15
公式サイトdj?
201 :
デフォルトの名無しさん :2005/07/26(火) 11:38:34
apache.org 全滅?
202 :
200 :2005/07/26(火) 12:34:01
復帰したみたい。
203 :
171 :2005/08/02(火) 01:02:12
>>173 大分遅くなりましたが丁寧な解答ありがとうございます。
Commons EMailはまだ試していないのですが、SMTPClientで日本語を送信できるようになりました。
String encodedSubject = new String(Base64.encodeBase64(subject.getBytes("Shift_JIS")));
Writer writer = smtp.sendMessageData();
if (writer != null) {
writer.write("Subject:=?iso-2022-jp?B?" + encodedSubject + "=?=\n");
writer.write("From: " + from + "\n");
writer.write("To: " + to + "\n");
writer.write("MIME-Version: 1.0\n");
writer.write("Content-Type: Text/Plain; charset=\"iso-2022-jp\"\n");
writer.write("Content-Transfer-Encoding: base64\n");
writer.write(new String(Base64.encodeBase64(message.getBytes("Shift_JIS"))) + "\n");
writer.close();
smtp.completePendingCommand();
}
Base64のエンコーディングにはCommons Codecを使いました。
これで一応日本語が化けずに送れてます。
もっともE-Mailや文字コード周りの知識があまりないので、作法的にはあやしいかも知れませんが・・・^^;
204 :
デフォルトの名無しさん :2005/08/07(日) 00:45:50
DbUtilsは開発してんの?
BeanUtilsが便利すぎる 現場で使ってる奴がほとんどいないけど・・・
>>205 BeanUtilsは型やプロパティ名が実行時解決なので、
コンパイル時にチェックできないバグが増えるから気をつけてね。
それは困憊る
直接使ってなくても他のフレームワークが間接的に使ってること多いね。 何するライブラリなのか分かってないけど リフレクションでウハウハするための何か?
Strutsとかhibernateはばりばり使ってると思う ソースは見てないけど、xmlから読み込むなら やっぱりリフレクトでウハウハかなとは思う
つーかBeanUtilsってStrutsから派生したんじゃなかったけ? 確かにウハウハだが、なんでもかんでもMapに詰め込んでってのは エレガントではないな。 まあただの宗教論争だが。
他のフレームワークやライブラリが間接的に使ってる分にはいいんじゃない? 一応テスト・デバッグ済みってことになってるし。 リフレクションは重いけどね・・・ Hibernateはリフレクション使ってないよ。使ってたらもっと重いフレームワークになる。 Strutsはバリバリ。カスタムタグとか、リクエストパラメータをActionFormにセットするところとか、 DynaActionFormとか。BeanUtilsはもともとStrutsの一部だったモノだしね。
BeautilsはcopyPropertyメソッドが素敵だから使ってる ところでhibernateってなんて読むの? 未だに分からない
ハイバーネートと読んでみるテスト
「はいべるなーと」
>>211 リフレクション使ってないけど、バイトコード操作なんていうコンパイル時にチェックできないバグがもっと増える仕組み使ってるがね。
>>215 いいんじゃない?テスト・デバッグはHibernate開発者の責任だし。
自分でそういう仕組みを使うときは気をつけてね、ってことで。
リフレクションもね。 フレームワークとか作るんじゃなくて普通の業務ロジックのためにバイトコード操作してたらブッコロスね。
/;:;:;:;:;:;:;:;:;::!!''" !;:;:;:;:;ヽ |;:;:;:;:;:;:;:!'" ヽ;:;:;:;ヽ |;:;:;:;i''" i!;:;:;:;| |;:;:;:;| ヾ;:;:;:| |;:;:;:;| ,,,;;:iii;;;;; ,.-==--、. `!;:;|ヽ 〉;:;:| ,.-''" ̄ ̄ ̄`ヽ⌒| --。、-、 ヽ-`' | 綺麗な顔してるだろ i `u i -‐'"ヾ'" :: ::! : | ノ 落選するんだぜ、これ。 i | ノ ヾ、___ノ ::| | | ヽ、__,.-i i 、 : :| | | : : '" `〜ー〜'" ヽ : : ::| `i ヾ ' ____ ;: ;: :| \ -‐'''"~ ̄ ̄ ̄ ̄ ; ;: :/- ヾ: : . ` " " " ,./
219 :
デフォルトの名無しさん :2005/08/11(木) 22:23:53
Strutsとかhibernateはばりばり使ってると思う ソースは見てないけど、xmlから読み込むなら やっぱりリフレクトでウハウハかなとは思う
コピペしなくいいよ。明らかに釣りだろ。
リフレクトってどんぐらい重くなるんだ? まあ原理的には重そうなんだけど開発環境じゃそんな体感できないし。 どういう状況までなら使えるのか線引きが出来ない。 で、結局デバック用のBeanのフィールドのログはきぐらいにしか使ったことない。
>>221 テーブル5つ程度の簡単なアプリをローカルのPCで動かすだけで
体感できるほど重くなるよ。
Beanのsetter/getterを呼ぶ箇所を全部BeanUtilsを使うように書き換えてみるとわかる。
書き換えるクラス数も10数個程度。
リフレクションは、重いという弊害の他に、ダウンキャストの危険性も多い。
Mapオブジェクトと同じように、せっかくJava言語に用意されている
「型安全性」を無視してしまうから個人的に好みではない。
223 :
222 :2005/08/12(金) 00:12:51
> リフレクションは、重いという弊害の他に BeanUtilsは、に訂正してくれ。
BeanUtils,Betwixtは超便利 Lang,Collections,IOは常用 Codec,HttpClientはたまに
>ところでhibernateってなんて読むの? 普通にハイバネートで良いかと。一般動詞っすよ。 >リフレクトってどんぐらい重くなるんだ? 使い方次第としか。 何かのラッパークラスのソース自動生成とか、 コストのかかる処理(接続とかインスタンス生成とか)の一部で使う分には 全く問題にならんレベルだと思うし。 >224 io, logging は常用 dbcp,pool,collection,beanutilsは常用ライブラリ(Springとか)が間接的に使用 digester,betwixtは以前常用してたけどxmlbeansに移行してしまった今日この頃。 commons じゃない jakarta スレってないんでしょうか。 velocity くらいしか使ってないけど。。
>>225 このスレはとっとと終わらして、Jakarta スレたててくれ。
1年弱で 200 ちょっとしか消費してないから、使い切るのは
4年後か。
>>224 ,225
IOって便利なの?
あおってるわけじゃなくて普通に知りたい。
オススメ機能教えてよ。
そんな常用するほど使えそうなの見つからない。
まあ名前で使えそうなのさっと探しただけだけど。
closeQuietlyとかソースみたら何じゃそりゃって感じだし。
つか closeQuietly しか使わないけど。 あれ使わないとなると ・毎回try-catchのネストを記述する。 ・自作ライブラリに closeQuietely 相当のものを用意してそれを呼び出す。 のいずれかですよね。 前者は保守性・視認性・手間の全ての面からして 個人的にはありえないと思ってます。 後者は他人がコード読んだ時を想像するに、 俺様関数にぶち当たって関数のコード読む手間と 読み終わってから「結局commons-ioのアレじゃねえか。」 と溜息つかせる事を考えれば、あんま嬉しくない気がします。
closeQuietelyだけだったらさすがに環境構築のたびにクラスパス通して インポートしてってよりは自分とこの共通クラスにコード書くね。 だって誰が書いたってああなるでしょ。 実際ほとんど同じのcommons自体知る前に書いてたし。 結局commons-ioかよとか思わないと思うけどね。 別にたいした手間じゃないんだけどクラスパスが無駄に多いのは好きじゃない。 まあ好みの問題だと思うけど。
ライブラリ系を書いてると、いろいろ使うけどな。 だるいコードを書かなくてすむ。 IOUtils.toString(InputStream) CopyUtils.copy(InputStream, OutputStream) FileUtils.copyFile(File, File) Ant が中で使ってるクラスも組み合わせるとかなり楽。 org.apache.tools.ant.taskdef の Copy クラスとか Property クラスとか。 タスク名がクラス名になってて、excute メソッド呼ぶだけ。
>>229 環境構築のたびにクラスパスったって、今日ビ、IDEでプロジェクト作成したときに登録するだけだろ。
importなんか勝手に書いてくれるし。
> 実際ほとんど同じのcommons自体知る前に書いてたし。 こういう勘違い発言をする奴がいまだにいるのか。 フレームワーク・ライブラリ・デザインパターンがなぜ存在するのかを考えろよ
俺は228ですが。 >229 プロジェクト作るたびにそのプロジェクトの Utility クラスに closeQuietely 相当のコードを記述するんですか? 毎回同じ事を書くのに? 俺様.jar にまとめてしまった方が100倍マシだと思いますけど。 とても好みの問題だとは思えないです。 毎回同じクローズ処理 ↓ うぜえから関数化(今このあたり) ↓ 毎回同じ関数書いてるから俺様.jar作成 ↓ 気がつけば当たり前のようにみんな同じことやってる ↓ 車輪の再発明は時間の無駄だから commons-io にしてしもうぜ
下の三行はまったく必然性は無いだがなw closeQuietelyしか使わない前提で話を進めているようだから、 メソッド一つのために外から拾ってきたライブラリを入れのか普通? jarがいくつになれば気が済むんだと問いたい問い詰めたい。
毎回テスト・デバッグするより信頼性のあるライブラリを使う方が数百倍まし。 毎回他人の俺様コードを見るより「いつものライブラリ」を使う方が数百倍まし。
あっそう。拾ったライブラリはテストしなくても信頼できるんだ。ふーん。 目当てのメソッド以外のクラスやメソッドが使われた時のテストや管理のリスクは無視か。 趣味で触ってるやつならともかく、人のコード見ないで出来る仕事ってそうはないと思うがな。 >jarがいくつになれば気が済むんだと問いたい問い詰めたい。 これについでの回答は? おめぇの趣味で一々jar入れてたら100や200個になりかねないから、 採用に当たってのポリシーが必要なわけだが、 お前が使いたいメソッドが1個あるから入れろってか? 俺がリーダーなら帰れって言うな。
公開ライブラリについての見解は、場所(人)によって異なるから
>>236 のような視点では結論は出ないよ。(意見を否定しているわけではない。念のため。)
ただ、俺様.jarはいただけない。その点は
>>235 に同意。
ひどいPGだと、よそで使ったコードをそのまま持ち込もうとしたりとか。
そういう意味でもやばい。
> jarがいくつになれば気が済むんだと問いたい問い詰めたい。
必要とあらば仕方ないんじゃね? IDE使えば無問題だし。
たとえ一つでも誰もが使うメソッドがある。 ってのは採用に値しないのか? これはもう釣りかも分からんね。
> あっそう。拾ったライブラリはテストしなくても信頼できるんだ。ふーん。 バカか?テスト・デバッグはライブラリベンダの役割だ。 それとも、おまえのところは初めて使う製品はすべて自社でテストし直すのか? >人のコード見ないで出来る仕事ってそうはないと思うがな。 それは当たり前だが、少なければ少ないほどいいのがわからないのか? 毎回同じコードを書き直すほうがいいのか? > >jarがいくつになれば気が済むんだと問いたい問い詰めたい。 いくつになっても結構。 なぜ増えると困るのかね?もしかして全部手作業でデプロイしてるとか?w
240 :
237 :2005/08/19(金) 13:43:37
一つ言わせてくれ。
>>237 の目欄におかしなものがくっついてるが、ただの消し忘れだ。
ごめんなさい。orz
>バカか?テスト・デバッグはライブラリベンダの役割だ。 自社で使ってるライブラリ(そっちの言う俺様jar)とかならテスト済みだから、 毎回テストが必要って言うお前の主張がおかしいって話だ。 >いくつになっても結構。 ど素人ってのがよく分かったから、今度人のプロジェクトに参加する時に 「このメソッドが使いたいから、このほげほげjarをプロジェクトに入れてね」と頼んで見な。 お前が入れるのは別に反対はしないが、 そうしなければならないというお前の主張が常識と思うならそりゃ大間違いだな。 >たとえ一つでも誰もが使うメソッドがある(ry ないな。外部ライブラリーの使用のリスクについてまったく無知でなければそんなことはしない。 jarが本当に100個になっても、そのバグ情報やバージョン、ドキュメントなどを管理できる スーパープロジェクトリーダーならともかくな。
> 自社で使ってるライブラリ(そっちの言う俺様jar)とかならテスト済みだから、 はぁ? ↓Jarを入れないって話じゃなかったのか? > jarがいくつになれば気が済むんだと問いたい問い詰めたい。
>>241 で、おまいはApacheのプロダクトを使うときは毎回自社ですべてのコードをテストし直すのか?
> 「このメソッドが使いたいから、このほげほげjarをプロジェクトに入れてね」と頼んで見な。 俺はどっちかというとアーキテクトの立場だから 「このライブラリを使いましょう」という俺の意見はほぼ通ってるよ。
話がこじれてる理由がわかったよ。
>>227 =
>>229 =
>>234 =
>>236 =
>>241 はひとつのメソッドが使いたいだけなのに、
その他のメソッドがついてくる(はずせない)のは問題ないのかと言ってるのね。
他の香具師らが言ってるメリットと比べてこっちの問題のが大きいだろと。
その問題ってのが当たり前だの常識だのって言葉でくくられてるからかみ合わないわけね。
実際にリスク見積もって判断しろよって
>>227 (略)は言いたいんだよな?
それならわかるわ。
不謹慎だが、宮城の地震で屋根が落ちたプールの話と同じ構造だな。
業者に丸投げ(他所のライブラリをチェックせず使う)すると安く出来上がるが、
安全であるかどうかの確認がしにくくなる。
>>239 のいうライブラリのテストデバッグは〜ってのはまさにこの構図。
最終的な客に対する責任は利用するコードを書いた側に出てくるんだぜ?
断じて、ライブラリを提供した側ではない。
通常は、ライブラリを売ってるところが提供した範囲での責任を取ってくれる
(ライブラリ利用側が客に取る責任よりは小さいわな)、オープンソースだと誰が責任をとる?
もしかしたら、ライブラリのバグのせいで、もまいのシステムが人を殺すかもしれないよ?
話が大きくなり杉。 ライブラリ必要なら入れましょう。 その方が楽なの当たり前。 ただたった一個のメソッドのために入れるのは賛否別れる。 個人的には開発の規模にも因るけどたぶん入れない。 しかもcloseQuetlyじゃね。 結論は程度の問題でしょ。
>>234 =
>>236 =
>>241 です
きれいにまとめてくれてありがとう。
>244
jarを入れるのには>245のほかにドキュメントの提供・バージョン・他のライブラリとの相性があるから、
同じアーキテクトの立場ではあるが、リスクを考えるとやはり慎重になるな。
拾ってきたライブラリ云々に関しては、Commonsだけは別格じゃないの? 少なくとも定番化してるものに関しては拾ってきたとかいうレベルの信頼 性ではないと思う。 もしCommonsを信頼できないとするなら、俺は同僚が書いたコードの方 が遥かに信頼できないよ?w そして、同僚は俺の書いたコードを信頼できないと思うだろうorz バグがないとは言わないし、テストに漏れがないとも言わないが、それは 結局誰が書いても同じ事だし? それなら、より多くの人に触れられ検証される事になるCommonsの方が 信頼できる。
commons使って痒い所に手が届かなかったら自分たちでコードを作れば いいと思うけど・・・ オープンソースにとやかく文句いっても仕方ないでしょ いっても使ってるのは、loggingとBeanUtilsだけなんだけど ioも使えるのか・・・ちょっとやってみよう ところでDbUtilsとCollectionってどうなの?
なんかまた話がすりかわってるだろ。 いつの間にかcommonsのバグの話になってるし。 一個でも使えそうなメソッドがあれば オープンソースを使わなければならない。 そうしないやつはオープンソースをわかってないし 作ってるシステムもぐちゃぐちゃって感じだね。 commonsかなり気に入って使ってるけど さすがに一個のメソッドで入れたりしない。 なんかオープンソース好きっていうか宗教っぽいな。
バグの話じゃないとわかってても一応
>>248 みたいな奴には言っておきたい。
commons-langとかでも普通にありえないバグあるから。
バグじゃなくてもパッケージごと移動とかもあるし。
バージョン上がると非推奨になってるやつもいっぱいある。
例えばだがjspでimportしてる古臭い大規模システムだったらimport直して
動作確認するだけでちょっとした人件費に飛ぶな。大人数で開発してる環境ならなおさら。
でそういう時はライブラリを問題あるとわかっててもバージョンアップしないほうが良いのかね?
commonsもオープンソースも否定しないが
当たり前に使うときは動作確認もソースのチェックもするさ。
オープンソース信者の皆さんが言う俺様コードを経由してcommons呼び出したりもする。
なんか不具合あってもそこだけ変えればすむようにな。
まあcommonsマンセーの人たちはどういうシステム作ってきたんだか。
>>248 その「信頼」の根拠をどこにおくのかわかってるかいって話だよ。
同僚が書いたコードでも、必要なテストをパスしてるんなら今の状態でもOKなわけだし。
>>250 の言うように宗教めいてるところはあるね、確かに。
253 :
デフォルトの名無しさん :2005/08/20(土) 00:16:01
スレ流して読んでみたけど
>>232 ,233,235,243,248みたいな発言する奴は要注意だね。
ちょっと事情があって今回のシステムではライブラリとか追加できない
っていうと顔真っ赤にして怒り出す奴。
別にソース公開されてるんだから組み込めば良いじゃん。
オープンソースの考え方を持つのは勝手だが顧客に押し付けんな。
StringUtilsのreplaceとStringのreplaceAllの動作の違いもわかってなくて
すっぱいバグ出しちゃった奴。
ソースちょっと確認すればわかるだろ。
ちょっとしたcommonsとかにない文字列操作とかになると
そんなの出来ません!とか言い出す奴。
出来ませんじゃなくてオープンソースにありませんってだけだろ。
そんぐらい自分で作れ。
すぐに思い出したやつを書いて見た。
全部周りに実在した奴らだ。しかもオープンソース大好きってのばっか。
オープンソースを妄信的に信じてる奴が
一番オープンソースの使い方を知らないケースが多い。
あまりにも短絡的な決めつけをする
>>253 が一番の妄想野郎だな
あぼーん
オープンソースそのものの話は他所でやってくれ
>>253 > 別にソース公開されてるんだから組み込めば良いじゃん。
なにそれ。そうやってきたの?あんたには関係ないが
公開者からすりゃ、かなり気分悪いな。
で、バージョンアップしたら張りなおしか?
> オープンソースの考え方を持つのは勝手だが顧客に押し付けんな。
> StringUtilsのreplaceとStringのreplaceAllの動作の違いもわかってなくて
> すっぱいバグ出しちゃった奴。
オープンソース関係ねー。そんな奴はどうせ JDK も
ロクに分かってない。
> ソースちょっと確認すればわかるだろ。
> ちょっとしたcommonsとかにない文字列操作とかになると
> そんなの出来ません!とか言い出す奴。
> 出来ませんじゃなくてオープンソースにありませんってだけだろ。
> そんぐらい自分で作れ。
話の流れからして、おまえはリーダークラスの役割だろ?
おまえができることを、できない奴がいるのは当たり前。
誰でもひとつくらい得意なことはある。
できない奴の能力不足ではなく、ライブラリチームや担当を
編成・管理しないおまえの能力不足だ。
> ソースちょっと確認すればわかるだろ。 > ちょっとしたcommonsとかにない文字列操作とかになると > そんなの出来ません!とか言い出す奴。 こんな奴が本当に居るとしたら、そもそもプログラマとして成立してないじゃん。 commonsがあればコードを書く必要がないって言うんならともかく、実際は commonsで賄う部分よりそれ以外の部分の方が遥かに多いんだからさ。 まぁ、VBプログラマなら、コンポーネントがないからできませんって奴が居 ても不思議じゃないけどw
>>253 > オープンソースを妄信的に信じてる奴が
> 一番オープンソースの使い方を知らないケースが多い。
ここだけは禿同。
流れをぶったぎって書くが、 commons-ioといえば、commons-fileuploadの1.1devで使ってるね。
copyProperties を使うためだけに commons-beanutils を追加しました。 今まで素で reflect 使って書いてたコードがかなりあるんだけど やっぱ書き直した方が吉かなあ。
今までのやつがちゃんと動いてるんならいいんじゃね?
同意。動いてるコードを書き直すのは苦痛だ。 ただ、リファクタリングの一環として、リフレクション部分をプルアップしてみて BeanUtilsとの置き換えが可能そうなら、置き換えてみてもいいかもしれない。
>>187 ルーセンスと発音していたが違うかな。
ルシーンなのか。
>>206 へぇ。
Java5になってからGenericsで型チェックできるようにパラメタライズされてないのかな。
>>212 high burn eight
普通にハイバネートと発音したい気が。
>>236 > あっそう。拾ったライブラリはテストしなくても信頼できるんだ。ふーん。
> 目当てのメソッド以外のクラスやメソッドが使われた時のテストや管理のリスクは無視か。
> 趣味で触ってるやつならともかく、人のコード見ないで出来る仕事ってそうはないと思うがな。
> >jarがいくつになれば気が済むんだと問いたい問い詰めたい。
> これについでの回答は?
> おめぇの趣味で一々jar入れてたら100や200個になりかねないから、
率直にMaven使えよ。
mavenのクラスパスを一つ通すだけで自動でダウンロード、自動でインストールしてくれるぞ。
>>241 あと、mavenのほかにFatJarもつかってJarを一つにまとめろ
これらは双方ともEclipse用プラグインも用意されている
>>253 はなにか頭がバグってるな
Commonsは
Commons Sandbox以外ならかなり信用できる。
CommonsというのはJava標準APIに足りない機能を補う
ためにあるようなもんだ。
メールアドレスの書式チェックメソッドGenericValidator#isEmail()を 使いたいがためにCommons ValidatorのJarを入れた俺はDQNですか?
273 :
デフォルトの名無しさん :2005/09/03(土) 00:44:28
>>252 宗教といっても、何も確たる根拠も無しにオープンソースを否定して
これは使っちゃダメだあれは使っちゃダメだと
いきなり決めつけるのもかなり宗教っぽいけどね。
豚肉喰っちゃダメだ牛も喰っちゃダメだクリスマスなんかやっちゃだめだって
いってるイスラム教徒みたいな。食い過ぎれば不健康で心臓病になるけど
適度に運動しながら野菜などと一緒にバランス良く食べていれば無害どころか栄養たっぷり。
それを調べもせずにいきなりダメだって人に押しつけるのはプロジェクトの進行にかなり響く。
オープンソースを何も考えずに否定するのは暗黒時代の魔女狩りにも似ている。
何人もの大富豪の男を、男の姿に化けた女だと勝手に決めつけて殺してしまったっていう史実があるわけだ。
殺した後にそのお金が教会や国の資金源になるから陰湿にもわざとそういうことをしたってわけだ。
彼が外部のライブラリ使用を拒む理由は車輪の再発名をしてでも何もかも自分で作ってしまって
それがすべて自分でやったから周りから偉い奴だと思ってくれるだろう錯覚しているうのだろう。
あるいは、手柄を自分のものにして、自分にしかわからないようなコードをわざと書いて
そのプロジェクトをすべて自分の管理下に置いて自分の立場を維持したいという保守的な考えを持つ人間なんだろう。
>>272 いいえ。問題なし。じゃんじゃんつかっちゃいなさい。
オープンソースなんだし。
そんじょこらのクローズドソースなバイナリよりも信用できる。
275 :
デフォルトの名無しさん :2005/09/03(土) 11:43:33
>>267 それをやろうとするとJava5専用になる。
主要なツールはGenericsに対応したJava5対応版を出してほしい
現状だと、Java5で作っていてもツールからオブジェクトを取り出すときに結局はキャストが必要になってしまうし
>>273 >
>>252 > 宗教といっても、何も確たる根拠も無しにオープンソースを否定して
> これは使っちゃダメだあれは使っちゃダメだと
> いきなり決めつけるのもかなり宗教っぽいけどね。
周り読んでも全然誰もそんなこと言ってないんだけど。
その極端な話の飛躍の仕方が宗教っぽい。
ていうかなんで今になってそんな古いネタを掘り起こしてるのかがわからんな。 >273 キモイ
ところでオライリーのjakarta-commonsクックブックはどうでした? ザッと流し読みした感じだと可もなく不可もなくかなあ。
commons-httpclient.jar を gcj で使いたいのですが、 javax.net.SocketFactory javax.net.ssl.SSLSocketFactory などが gcj に対応していないためコンパイルが通りません。 しかしその部分のメソッドはプロジェクトで使用していないので どのように回避したら良いかわかる方がいらっしゃいましたらご教授お願いします。
単純に ・不要なのを取っ払ってコンパイル。 ・ばらして1つずつコンパイル、通ったものだけを集める。 が考えられます。知らないけどSocketFactoryはなくていいの? それよりも、なぜここでしたか
>>280 早速のレスありがとうございます。
それを参考にzipアーカイバで使わないclassファイルを削除しましたが、
それぞれが関連し合っていてなかなかうまくいかないようです。
commons-httpclient.jarはオープンソース化されていないのでしょうか?
283 :
デフォルトの名無しさん :2005/09/30(金) 17:34:23
CommonsじゃなくてOROなんですが Perl5Utilのsubstittutionで\\uってちゃんと動きますか? velocityのライブラリに入ってるバージョンで試したのですがうまくいきません。
284 :
デフォルトの名無しさん :2005/10/04(火) 00:07:11
commons betwixtなんですが、0.5以前のバージョンでsetWriteEmptyElements(false)と同等の処理は出来ないのでしょうか? 値を設定されていないプロパティはタグ自体が出力されないようにしたいのですが・・・。
>>278 俺的にはかなり勉強になりました。って一ヶ月も前のコメントですか・・・。
ファンクターなんてのがある事をこの本読んで初めて知ったよ。
考え方はデザパタで知ってたけど、標準的な方法があると使ってみようって気になるね。
ただ、条件式を切り出しただけのクラスとか作ってるとクラス数が爆発しそうな気も・・・。
Pridicateとかって実際に使ってる人います?
Lispのlambda(無名関数)と同じように Predicateとかは基本的に無名クラスで使うとよい。
>Predeicate 結構よく使う。 基本的には無名クラスが多い。 Transfomerは滅多に使わない。 Closureは存在を忘れている事が多い。 ComparatorChainは便利。 テーブルのソートなんかで多用してる。
formでDynaFormを使用した場合で java.lang.Doubleやjava.mathBigDecimalなどでform-propertyを宣言して 画面からhtml:textで未入力状態で送信すると例外を発生するのは回避不可? BeanUtilsのpopulateメソッドのエラーっぽいし、無理かな まあ、BeanUtilsを修正するかString型に回避すればいいけど
Commonsじゃないけど、Regexpってなんて読むの?
>>289 「レギュラーエクスプレッション」の省略形だけど、別の読み方があるのかな?
カスタムタグのTLDファイルの「rtexprvalue」も悩ましい。
「Runtime Expression Value」の省略形なんだけど。。。
俺はリジェックスピーって読んでるよ、心の中で。 もちろんLispのS式はセックスピー
僕は「れぐえくすぷ」って呼んでます。
僕は れぐいーえっくすぴー
>>293 ヽ( ・∀・)人( ・∀・)ノ ナカーマ
295 :
デフォルトの名無しさん :2005/10/14(金) 14:44:10
携帯からだと見れてしまいました。 アクセス制限かルーターの異常か? スレよごしすみませぬ。
DTD宣言を実際読みに行くのってエディタかなんか? だったらローカルに落としたほうが手っ取り早いと思われ。
>>297 DTD 宣言を含む XML を編集するときにエラー扱いにされてうざい、ってことじゃないの?
俺も解決法があったら聞きたい。
>>283 > CommonsじゃなくてOROなんですが
> Perl5Utilのsubstittutionで\\uってちゃんと動きますか?
それはJavaのString型環境にあわせて
さらにJava用にエスケープしなければならな。
つまり、Java文字列中では、
\\u -> \\\\u
としなければならない。
\\uは Javaでは\uにみえ、
\\\\uにしたときはじめてJavaは\\uと解釈してくれる。
Perl用にエスケープしてさらにJava用にエスケープしないと
動かない。
二重エスケープってところですな。
>>289 regexp
レゲックス
レゲックス婦
れじぇっくす
レジェックスプ
利げっくす(プ
りじぇくす(プ
自然大数の底exp()関数よりもじってレグネスクポーネント
レグネクスポネンジャル
レグネクスポ
レグネクスプ
レグスプ
レジェクス
リジェクス
レジェバイプ
レジェザップ
リジェザップ
レジェズープス これではRege XOOPS?
レジェ・タイムズ・ペッ!
レジェタイプ
レジェペケポン
リジップス
リジェップス
レジェンプス
>>289 rtexprvalue
アーテフプリヴァリュー
ラリパリュー
ライプリュー
レフプライヴァリュー
レプリャリュー
レッズファリュー
>>267 つうか、カワイイとかかわいくないとか
どっちにしてもこんな掲示板で書いたら
月曜日その子に会わせる顔が無いよ
かわいくないと書いた時はまずいのわかっているし
カワイイと書いたなら意識されるだろうし・・・
掲示板でそんな事聞くなよ
>>302 いや、多分このスレに書く分には大丈夫だと思うぞw
304 :
デフォルトの名無しさん :2005/10/15(土) 19:51:08
誤爆?
スマンソ ようするに、SEXの締めをクンニ逝きっていうのが 「いみあるのか?」っていうことか
わたしの彼氏も風俗にいったときはすごいショックだったけど なんか、向こうも仕事だからすごい事務的らしいよ。 わたしは絶対行ってほしくないとまではいわないけど、 行くならわたしにはいわないでほしい・・・
>>307 Commons つまり共通の悩みってことか。
言わなかったら浮気だと勘違いするだろ。
スレ違いだよ。
誤爆適用スレってしってるか? 今日は当たり日なんだろうか・・・
>>307 アホか、風俗はめっちゃフレンドリーやっちゃうねん。
ソース読めとかググれとか氏ねとか言わないからな。
これで有料じゃなきゃ最高なんだけどな。
事務的フレンドリー
事務的なフレンドリーと心からのおざなり、どっちがいいかっちゅうねん。
313 :
デフォルトの名無しさん :2005/10/18(火) 13:23:21
>>299 ご回答ありがとうございます。
ご指摘の点は理解しているつもりですが
実際にやってみると以下のように
そのまま\\uが印字されてしまいます。
new Perl5Util().substitute("s/(?:^|_)(\\w)/\\\\u$1/g", "t_mst_user");
(java.lang.String) \\ut\\umst\\uuser
なにかしょうもない勘違いをしているのでしょうか…
jdk-1.4.2 && jakarta-oro-2.0.8 で実行させたところ new Perl5Util().substitute("s/(?:^|_)(\\w)/\\u$1/g", "t_mst_user") => TMstUser でした。問題なさそう。('\u' が欲しいようなので '\\u' で十分の模様。) Perl5 の正規表現に不慣れなので、もしかしたら間違ってるやも。 velocity-dep-1.4.jar ではなく velocity-1.4.jar と jakarta-oro-2.0.8.jar の組み合わせで 試してみるとどうなります?
>>314 ありがとうございます!
jakarta-oro-2.0.8.jarだと無事いけました。
velocityに入っていたやつには未実装だったのですね...
log4jのLogクラスで行番号が出せるけど、行番号なんてどうやって出しているのだろうか Cのプリプロセッサだけの芸当かと思ってた
>>316 せっかくソースも配布されているので見てみればよいのでは。
見たらかなり力技だった。Throwable#printStackTraceの出力を解析してた。
(org.apache.log4j.spi.LocationInfo)
マルチさんのおかげて勉強になった 火のないところでthrowしてるってこと? ロギングにそゆー力技いれるってjakartaはやっぱすげーな世界が違う 俺だったら尻込みする
>>319 jakarta っつーより、作ったのは IBM だろ。
すげーなっていうのは今だにバカっぽい実装してる嫌み?
行番号なんか簡単に取れるだろ。
new Exception().getStackTrace()[0].getLineNumber()
メソッド名やどこから呼ばれたかも取れる。
ただ、正常系でこんなもん使ってる奴がいたらうんこだけどな。
>320 いやいや違う、ロギングってオプション的な機能だから 変わった事やって主処理に影響でるなんてまずいんで コードの質に自信がないとできないなよなと思って 言ってる事伝わらなそうだ、とにかくjakartaに嫌味なんて滅相もない、 白状するとcommonsのソース読んでからかなりパクってます。 自分で何言ってるかわかんね、まとまんね、もういい送信!今目をつけてるのbcel!
>>320 これってjavaのコンパイルオプション関係なしに取得可能?
>>323 当然
> javac -g:none Hoge.java
とかすると取得不可。
>>324 ということは、企業の運用されているマシーンで、-g:noneなしにコンパイルしたクラスなら
取得可能ですね。
これいただき。
>>325 書いたら喜んで使い出すが奴がいそうだから、わざわざ
うんこって書いたんだが。使うんなら、ちゃんと例外コストを
考えて無効にできる機構を用意しろよ。
それを持ってるのが log4j だけどなw
>>321 jakarta のコード書いてる奴もただの人だろ。
見てるうちに、あほなコードがわんさかあることに気づく。
BCEL 見るなら、CGILIB、Javassist、JBoss4 のコード見てみ。
CGILIB のコードは美しい。JBoss はやってることがすごい。
>>320 Thread.getStackTrace() した方が。1.5 以降だけど。
log4jってなんでクラス毎でlog4j用のfieldを用意しなければ行けないの。 ログなんだから、普通スタティックメソッドオンリーだろ。 なんだよその仕様
| J
│ O G 4 J
↑あんた最高
>>329 じゃ、Log4j だけじゃなく、commons logging も JDK のロガーも
全部だめなんだな。
とりあえず、おまいがオブジェクト指向の利点が、さっぱり
分かってないのは理解できた。それが分かるまで
おまいは static メソッドの作成は禁止だw
オブジェクト指向の利点がサパーリわからんので、staticメソッドオンリーでいきまつ
>>333 わかってないやつが書きそうなもんだな。
具体的に書いてみろ。Cプログラミング屋さん
>>335 ・プロバイダーフレームワーク
・インスタンス数の管理が可能
・実装クラスが作成時点で存在している必要がない。
・もちろん多態
・設定により実装クラスが変わる
不特定多数のシステムに提供するなら、上記のような拡張性・柔軟性は必須だ。
閉じたシステムしか書いたことない奴には分からんかもしれんな。
昔は static メソッドで書かれた俺様ロガーがたくさんあったかも
しれんが、それをオープンで公開すれば、なぜ static がだめか
なぜ要求に耐えられないかが分かるだろ。
で、分かってるお前の意見を教えてくれ。
分かってないだろw
XMLの読み込みに特化したい場合、 Digester使うのと、XmlBeans使うのと、どちらが効率的ですか? Digesterの解説はあちこちあるんですが、後者は自分には解説がわかりにくい。。。 XMLファイルを渡してやると、自動的にBean作ってくれたりするとありがたいんですが。
ASF の産物じゃないですけど Relaxer 使ってみるのも手ですよ。 XML Beans が生成するクラスはちと複雑ですけど、 Relaxer が生成するクラスはより POJO ライクです。 個人的には読み込みだけなら Digester が一番だと思ってます。 ルールを XML に書けるのが便利なんで。 ルールがある程度以上複雑になる場合 (格納クラスを手で書く手間 > スキーマを書く手間)は スキーマ切って Relaxer 使ってます。 より複雑な検証が必要な場合は XML Beans です。
適当なオブジェクトをbetwixtで書き出してみて それがしっくりくるならdigesterで足りる じゃなきゃ俺もRelaxerをすすめる Relaxerは頭に入れやすいよ
digesterはgetしたものそのままsetしたい時に発狂する XML Beansはさくさくいくのは困難、最初は普通に発狂する
digesterは設定読み込みが目的だから、setにはbetwixtが向いてるんでは
>>336 重症・・。
ちがうんだよ。その機能はstaticメソッドでも可能。俺はそうしている。
statcktrace使えば、さかのぼって呼び出し元が完璧にわかるから、
すべて実現できるのstaticで。
だったら普通staticで提供だろ、util関係は基本全部static実装だし、
そうするように設計すべし。
static メソッドになった場合、今までと同様の情報を出力するには 確実に今までよりパラメータが一つ増えるんだが、 それをわずらわしく感じないなら、それでいいんじゃないかな。 俺は勘弁してほしいが。 if(logger.isTraceEnabled(){ logger.trace("なんやら", t); } ↓ if(Log.isTraceEnabled(this)){ logger.trace(this, "なんやら", t); }
346 :
338 :2005/10/28(金) 11:12:59
>>339-343 アドバイスありがとうございました。
とりあえずDigesterで基本的な動きは確認してみました。
XML読み込んで、それをマップしたObjectからのgetだけが目的なので、
事足りそうではありますが、
Relaxerの評判も良いようなので(確か国産ですよね?)、こちらも勉強したうえで、
どっちが自分の目的に合うのかを判断してみることにします。
>343 親をgetしてカレントのsetへってやりたくなんなかった?俺だけ? もしできるの?できそうでできないのがすっごい発狂したんだけど >338 digesterは既存のものにあわせるとしんどかった digester前程で作ればすごい楽だと思う >345 勘弁同意 Logger.instance(this).log("えらー")っての見たことあるこれは辛かった
>Logger.instance(this).log("えらー") うわ嫌すぎる... staticにすることで手間が増えるんなら、オブジェクトでいいじゃんよ。 しかも元からあるんだから、いちいち書く手間いらないし。
Logoer の話題が出たついでに便乗質問。 private static Log log = LogFactory.getLog(Hoge.class); private Log log2 = LogFactory.getLog(this.getClass()); この二つのメリットとデメリットって何ですか? 前者を使えと言われて理由も聞いたような気がするんですが忘れてしまいました。on_
>>349 おまいも
>>344 と同じくらい分かってないな。
Hoge.class を渡すのと getClass() の違いはなんだ?
例えば、後者はそのロガーの getter があったとしたら、
Hoge のサブクラスはそれを自分のクラスのロガーとして利用できる。
どっちもログインスタンスはキャッシュされるが
上記のような理由がない限り前者だろうな。
>>349 後者はstaticメソッドから呼び出せないなり
>>348 だからてめーらほんととわかってないな。ソースみろ!
thisなんかしなくても、結局スタックつかって呼び出し元特定してるの。
いいか、thisはまったく考えなくていいんだよ。ほんと疲れるは。
もうレスしないから、あきらめないでちゃんと考えろ。
あきらめた時点で一般人と同じだよ。結局使う側の人間さ
>>352 使う側の人間っておまえもだろw
俺様フレームワーク作って喜んでたらもっとバカだけどw
っつかスタックトレースいちいち解析してんの?
全ログaspectで後付けだってできるんだし、方法なんて探せばいくらでもでるでしょ 主観だけどlog4jだと助かる。commons-loggingだと更に楽 間違いの起き難い作りだと思うよ。
>>354 どうせ、log4j 使うんだろ?
何のために commons かます?
パフォーマンスがわずかに落ちるし、シンプルでなくなるし、
機能的に log4j から他のロガーに変えるなんてありえん。
あー、ちなみに俺はいくつかのシステムで
commons logging + log4j を採用してきた。
今は log4j だけにしとけば良かったと思ってるし、
今後は log4j だけでいく。
log4jってファイルの保存先が未定義の場合とかって
コンソールに表示されたっけ?
log4jでConsoleAppender使えばいいかもしれないけど
別にcommon-loggingでもlog4jでもどっちでもいいんじゃない?
>>355 の言うとおり最終的にはlog4jになる場合多いし
java.util.loggingってどうなの?
>355 前に、呼びだしてる奴等のデータ欲しくて 1回こっきりのLogFactory作って片っ端からbetwixt.BeanWriterで吐かせた 便利だと思った。commonsは力技に屈してくれる あと移動が楽、考えて見るとこれといった理由は無い。 確かに運用ではlog4jしか使わないんだけどね
SAPの吐くログと一緒に管理したいという要望があって Commons Logging用のSAPのLoggerを作ったことがある。
>>357 >>358 なるほど。でも、log4j のアペンダでもいいよな。
っつーか、俺は log4j の MDC の便利さにはまった。
リクエストヘッダやリクエスト、セッションの内容を全部 MDC に
セットしとけば、log4j の出力設定でなんでも出力できる。
運用開始後に客がブラウザの種類とか、リモートIP、ログインIDを
ログに出せとか言われても、設定だけで可能。
360 :
デフォルトの名無しさん :2005/11/01(火) 00:02:01
>>352 スタックフレームの取得ってかなりコスト高いんだが。
頻繁に呼び出すログ出力処理でそんな事やるのは愚行ではないかと。
ログって、見てはいるけど、見るだけじゃ勿体無いよな。 何が勿体無いって? 入力と出力、分かっちゃいるけど、忘れちゃう基本的な試験にもでてくる基本中の基本。 入力がてんでばらばらの出力を見てたって、整理つかない、見えるもんも見えない。 意図的に入力を加えて、その出力LOGを見るのがトラブルシュートの基本中の基本。 入力と出力、バカにしちゃうけど、バカにできない、 これで少しはトラシューも、楽リマクリスティー♪
log4jでgetLogger("aaa.bbb.ccc")ってやって aaa.bbb.ccc.ddd.eeeのパッケージだけログを出したくないときってどうすればいいのでしょうか。
NullAppender
出したくないといいつつ、エラー時くらいは出したいのではと勝手に想像すると aaa.bbb.ccc.ddd.eeeを新規にカテゴリ定義してレベルをFATALにする。
Enumratar用のユーティリティーって何かありますか。
toString系使用していますか?いまいち期待道理に出ないです。 System.out.println(new ToStringBuilder(request.getAttributeNames(), ToStringStyle.MULTI_LINE_STYLE)); をしても何もでないです。
reflectionToString() だけ使いまくってる。 ユニットテストクラスで、値確認する時とか。 他のは結局手で書いた方が早くなったので 以来使わなくなりました。
>>367 Commonclipse のほうが早くないか?
>>369 Field selection is the main difference between Commonclipse
and Commons4E currently. (Commonclipse uses all fields)
371 :
369 :2005/11/05(土) 11:36:27
>>370 ありがとー。
アホなのでExcite使いますた。
>現在、フィールド選択はCommonclipseとCommons4Eの主な違いです。
>(Commonclipseはすべての分野を使用します)
全フィールド使う方がいいのかな?
>>371 toString ならいいんじゃないか?
で hashCode と equals には使ってないんだな。
使ってたら、なぜ選択する必要があるか分かると思う。
まー、手修正すんのと GUI で選ぶのもどっちもどっちだけど。
373 :
デフォルトの名無しさん :2005/11/10(木) 22:34:15
わかりにくいネタはやめてくれ。
>>222 > リフレクションは、重いという弊害の他に、ダウンキャストの危険性も多い。
そこでGenericsを。
BeanUtilが対応していればだが
>>229 > closeQuietelyだけだったらさすがに環境構築のたびにクラスパス通して
> インポートしてってよりは自分とこの共通クラスにコード書くね。
> だって誰が書いたってああなるでしょ。
> 実際ほとんど同じのcommons自体知る前に書いてたし。
> 結局commons-ioかよとか思わないと思うけどね。
> 別にたいした手間じゃないんだけどクラスパスが無駄に多いのは好きじゃない。
Apache Mavenを使えばクラスパスの設定もいらんぞ。
やってみいよ
>>276 実際このCommonsのこれ使っちゃ駄目
これ使っちゃ駄目とか言いだすDQNいるんだな〜これが。
それだけでなくある程度プログラムができあがってくると
多少問題があってもソースコードを弄ることを拒否しようとする。
リファクタリング拒絶というトンデモ君が。
一度こうなってしまったら前へすすむしかない、みたいな。
その様は何人もの犠牲者を出してしまった軍隊のようだ。
犠牲者を出してしまったんだからもう目的地に行かなくては
犠牲者に申し訳が立たないといってデスマーチに陥る。
実際徹夜ばっかになったプロジェクトでしたが。
>>370 なーるほど、
ただしCommonclipseプラグインは
未だにEclpse3.1に対応していないというバグが
直っていないのでパス
381 :
デフォルトの名無しさん :2005/11/15(火) 15:09:22
>>309 > 誤爆適用スレってしってるか?
> 今日は当たり日なんだろうか・・・
それってどうやって
誤爆を受けているのか確認できる?
382 :
デフォルトの名無しさん :2005/11/15(火) 15:18:42
Commons FileUploadはServletにしか対応していないのか・・・・ 普通にデスクトップJavaや コマンドラインJavaアプリケーションで シェルのようにFTPサーバにftp, sftpまたはSCP経由で ファイルのアップロードするということをやってみたかったんだが。
よくみたらFTP接続できるのは Commons Netか! orz
384 :
デフォルトの名無しさん :2005/11/15(火) 19:07:46
Commons NetのFTP接続ってファイアウォール越しに 接続する機能は無いのか? scpかsftpでポート22経由で接続したいのだが・・・。 対応してるプロトコルをみるとsshが見あたらない。 ということは無理か?
SOCKSが使えるんでない? もちろんsshのDynamicForwardが前提。
Velocityを覚えたからAnakiaに手を出そうとしたらAntをまだ覚えていなかった。盲点。 ライブラリじゃなくてアプリのOSSで俺は貢献してやるぜ!
Antは簡単だからいいよ。 Velocityより簡単かと。
389 :
デフォルトの名無しさん :2005/11/22(火) 14:12:55
ValidatorとかConfigurationsって使えるんだね。 ConfigurationはResourceBundleの代わりとして使えそう
水を挿すようで悪いがたいていResourceBundleで事足りる
気がついたらlibディレクトリがゴチャゴチャになってしまったので 整理したいのですが、Commonsとかそれぞれのjarの依存関係って どうやって調べればよいのでしょうか… とりあえずどこからも呼び出されてないjarだけでも外したいのですが…
ドキュメントに書いてあるので嫁。 つーか大した量じゃないんだし、commonsぐらい全部入れちゃっても (ry
>>391 Apache Mavenを使った方が楽だと思うんだけどなあ。
EclipseのMaven Repo Searchプラグインを使って
必要だとわかったJARの<depedency>タグをクリック一発で作って
それをpom.xml(Maven1.xではproject.xml)の<dependencies>タグの
内側に貼り付けて、
mvn install
を実行し
Eclipseを使っているなら
mvn eclipse:eclipse
を実行してEclipseプロジェクトにJARのパスを自動的に追加して
またエラーが出ることを確認してしらみ潰しに、一個一個見てゆき
再びMaven Repo Searchを使って同じ事を繰り返すってやりかたで。
依存関係を調べる方法の一つとして
Eclipse3.xのcal Hierarchy(呼び出し階層)を調べる機能で
このクラスはどのクラスに必要とされているか、
あるいは逆にこのクラスはどのクラスを使っているかを調べることができる。
ただしJarについては(ry
リストアップされるエラーメッセージをみながらこのJARが
必要だあのJARが必要だと調べながらあれこれやることができる。
>>390 Configurationはそんなに使えなかった?
それとも面倒だからやらなかっただけ?
気がつくとCommons Mathとかの リポジトリがCVSからSubversionに入れ替わってるね。 ApacheもとうとうSubversionを導入し始めたか。 他のプロジェクトもすべてSubversionに以降しきっているのかな?
397 :
390 :2005/11/24(木) 21:50:13
>>394 使えないというより、ResourceBundleで十分だった。
それなら誰もが知ってる方がいいよね。
Tomcatレベルの複雑な設定が可能なアプリケーションには向いてるんじゃない?
そもそもResourceBundleって、メッセージとかラベルの文字列外部化だから Configurationほど色々できる必要が殆ど無いと思われ。 キーを階層構造にしてオブジェクトに格納できたところで、大して意味無いし。 小面倒な設定ファイルとか、シリアライズしたいとかならConfigurationの出番だろうけど。
Configurationで、i18nってできるの? ごめん、確認しないで聞いてる。。。
ResourceBundleで配列のメッセージリソース管理できたらなー
>小面倒な設定ファイルとか、シリアライズしたいとか スキーマ切ってXMLでやりとりした方が楽になる。
402 :
デフォルトの名無しさん :2005/11/26(土) 01:23:36
Commons-devのメーリングリストに参加して
メール読んでるんだけど、
Java Genericsに対応したCommons Collectionって
すでにあるんだね。いまのところSourceForge専用だけど。
そのうちCommons Collectionに対応させてゆくらしい。
Tim,
It's already been done (
http://collections15.sourceforge.net/ ). Hopefully
we'll finally figure out how we're going to bring this code (or some version
of it) into our codebase. For now, if you need generic support you can use
the sourceforge project.
James
-----Original Message-----
From: Tim Roberts [mailto:
[email protected] ]
Sent: Friday, November 25, 2005 6:05 AM
To: 'Jakarta Commons Developers List'
Subject: Making Commons Collections Generic Enabled
Are there any plans to make commons collections generics (as in JDK 1.5)
enabled? If not I would be happy to do this. Tim.
-- This message has been scanned for viruses and dangerous content by MailScanner,
and is believed to be clean. MailScanner thanks transtec Computers for their support.
---------------------------------------------------------------------
To unsubscribe, e-mail:
[email protected] For additional
commands, e-mail:
[email protected]
BeanWriterって便利ですね。 BeanUtils系で使用される、ネストで出力できるライブラリってないですか。 $form.property1.name="commons" のような感じで。 BeanWriterもいいけど、xmlより直感的でわかりやすいです。
Velocityって環境によってコメントの解釈が違ったりしないか? #* ## こめんと #hogeMacro($hogehoge) #if( $hage ) ほげはげ #end *# こんな感じのコメントつけてると、一番上の #* の部分が表示されたり、最悪 ## 以外のコメントが利かなかったり・・・
環境によるとは?
>>405 バグはあるかも知れんね
けどテンプレファイルにそんなにコメントつけることなんてある?
>>405 ブロックコメントの中にコメント入れないほうがいいよ
>>404 ほかは知らないけどそれはほしいね。
velocityもstrutsもibatisも xxx.yyy.zzz 表記だから、
ネスト形式のほうが直感的でわかりやすいかも。
VelocityでXMLを出力する場合に上手いやり方ってあります? firstChildとかやってくのは、ちょっと違う気がするです。
>>406 CVS使って開発してるから違うのはJVMとOSのバージョンくらいしか思いつかないんだが、
自分のPCで大丈夫だと思っていたものが他の環境では上手くいかないとか
>>407-408 仕事で使ってるとマクロ丸々コメントしたりして、その過程でマクロ内に入れてるコメントに引っかかったりするんだ。
つかVelocityは仕事で使うもんじゃないな。
じゃあなに使うの?
>>403 っていうかJakarta Commons Langって翻訳が全然すすんでないな。
最後に編集したのがこれかい
$Id: ArrayUtils.java,v 1.1.1.1 2004/02/13 10:02:05 hioki Exp $
hiokiって誰だ?
姓名がいおき?
>>405 そんなのは初めて聞いたぞ。
っていうかそもそも*なんて普通つかうか?
>>410 新規にXMLファイル作るなら
簡単だろ。
独自のオブジェクト作ってしまえば
かなり楽だろ。
独自のクラスで作られたオブジェクトを
newしてそれをListにぶちこんでから
Velocityのputにぶちこんで
あとはVelocityファイル側で
#foreachを使ってlistにぶち込まれた
オブジェクトを取り出すだけ。
やり方はマニュアルとかに書いてある。
ググって見ても簡単でいいサンプルもあった。
>>411 普通に仕事でVelocity使ったんだが。Velocityファイルにコメントなんて
一切書かないが。XMLを自動生成するならコメントは<!-- -->だな
XMLファイルを自動生成するためにVelocity
使ってコード書いて納品したよ。そのシステム、今でも動いている。
velocityよりfreemarkerの方がいい。
FreeMaker はタイプ量が増えるのでやだ。 < と > で囲うことに魅力が感じられない。
あっははは これだからJakarta信者は。
Velocityは人気が高いからな ELでいいじゃん
Velocityで質問。 配列のリストをVelocityContextにlistOfArrayとして入れたとするでしょ。 #foreach($array in $listOfArray)〜#endで中身の配列は取れるけど $arrayの各要素が#foreach($object in $array)〜#endで、 それどころか$array[0]でも取れないのはどうすればいいんかね。
velocityCountとかいう内部変数があるよ。 デフォルトは1からだが、0からに変更することも可能。
422 :
420 :2005/12/11(日) 02:50:00
>>421 質問内容が伝わってないようだから改めて書く。
下のような例の場合 1 と 4 が出力されてほしいがそうならない。foreachで受けた
変数が配列の場合、どういう表記をすればその配列の中身を取り出せるのかね。
Java側
List listOfArray = new ArrayList(); listOfArray.add(new int[] { 1, 2, 3, }); listOfArray.add(new int[] { 4, 5, 6, });
VelocityContext context = new VelocityContext(); context.put("listOfArray", listOfArray);
Velocity側
#foreach ($array in $listOfArray) ## $listOfArrayの各要素は取り出せる。
$array[0] ## $array の各要素は取り出せない。
#foreach ($object in $array) ## foreach でもダメ。
$object
#end
#end
423 :
420 :2005/12/11(日) 02:52:36
> 下のような例の場合 1 と 4 が出力されてほしいがそうならない。 下のような例の場合 $array[0] に対応した箇所で 1 と 4 が出力されてほしいがそうならない。
プリミティブ配列だからでは? Integerで出来ない?
Integerでも無理
#foreach( $ref in arg ) statement #end 使い方: * $ref - 最初の変数リファレンスは、リストの項目です。 * arg - リストのリファレンス(つまりオブジェクト配列/コレクション/マップ)、 配列リスト、範囲演算子のいずれかです。 * statement - 上記で arg と示されたリスト内にある、 有効なアイテムの分だけ出力する内容です。 この出力は有効なVTLなら何でもよく、ループの繰り返し毎に処理されます。 ドキュメントを見ると出来るはずなのにな。 #{array[0]}は試した?
#{array[0]} もダメ。 でも配列のリストでなく、リストのリストならうまくいくことは確認している。
画面ばっかり作っていて #foreach( $arrays in $beans.samplearray ) #foreach( $array in $arrays ) #foreach( $sample in $array ) $sample #end #end #end みたいな事やってたから出来ると思うが・・・リストのリストだったのかな $array[n] はできないよ。 #set( $sample = [] ) みたいにカラのArrayListオブジェクトを作ることは出来るけど・・・ 配列の中身取りたかったら、#foreachでまわすか、リストにして $array.get(n) のかたちで取らないといけないんじゃなかったか。 #foreach でまわせないのは・・・ new int[] { 1, 2, 3, } ってやってるけど、3つなら3つって指定してやらないといけないとか しかし long の数値が if で比較できないとか色々不便だな。 #if( "$longvalue".equals( "0" ) ) みたいなことやってる。悲しすぎる。 ああ、$math 使えばよかったか・・・どっちにしろ長く分かりにくくなるんだよなぁ。
>>426 を見るとオブジェクト配列は可能ってあるけど、何が可能なんだろうな
あれ?俺は普通に出来たが・・・ArrayListにint[]
>>403 こんなところで笑ってないで、フィードバックしる。
433 :
デフォルトの名無しさん :2005/12/13(火) 16:03:56
Configurationsって仕様見ると超便利なのに バグが多すぎだなorz プロパティファイルが更新されると同時に更新されたことを 自動的に読みとってくるリロードストラテジークラスを 使ってみたのにプロパティファイルを更新しても全然リロードされなかった。 クラスパスが通っているところにファイルを置いてもうまく いかないみたいだ。これって最悪。Hibernateの設定ファイルを 管理しようと思っていたのに。 しかも読み込んだ設定ファイルを保存するsave()メソッドもちゃんと機能しない。 なにやらJavaプログラム実行ディレクトリを基点とした 絶対パスを指定しないとうまくいかないようだ。save()メソッドを実行する前に setBasePath()またはコンストラクタで絶対パスを指定するか、save()メソッドの 引数に絶対パスを指定するかしないと変更が反映されないようだ。 これもクラスパス上に置いただけではまったく糠に釘出しのようだ。 それでも正確に反映されないときがある。それにはク意図的にコンストラクタで newしないといけないようだ。 ということで現状のConfigurationには期待に反して不満が多すぎ。 XMLファイルの読み書きは楽だと思ったけど。
現在、Jakartaのサイトにつながらないが、 そんなことを掲示板に書くな、ヴォケが。
>420 primitiveの配列でもサポートされるはずだけど。 org.apache.velocity.util.introspection.UberspectImpl#getIterator(Object, Info)あたり参照。 正直、Velocityはソース追いながら & hackしながらじゃないと使いにくい。
perl5utilでtrは未サポートらしいですね。 自力でかな 全角→半角 置換します。 if ("ア".match(str)) { str.replaceAll("", "ア"); } else if ・・・ tr/アイウエオ/アイウエオ/ができたら1行なのに!
誤爆?
きわどい内容だね ここに書いてもなんら違和感ないキャスティングだ
OROだな。テラナツカシス
JMeterみたいな知る人ぞ知るみたいなツールもあれば ECSみたいに厨房のオナニーライブラリと見分けが付かないものもあったり Jakartaも質がばらばらだな
>>440 でもオープンなライブラリがこれだけあるのがありがたいじゃん。
例え玉石混淆でもさ。
最近.NET案件入ったらCommonsみたいのがなくて、そのありがたさを身にしみて感じてるよ。
.netは金だせばなんでもある世界
JakartaっていうかApacheのいいところは、既存プロジェクトからいい機能が 独立プロジェクトになるところ
JMeterって知る人ぞ知るかぁ?Jakartaのトップからもう何年もリンクがあるのに? あんまり使われてないのは 1. JMeter重すぎ、サーバの負荷テストの前にクライアントの負荷テストになる 2. HTTPのテストならproxyの設定の必要がないのと軽さで Microsoft Web Application Stress Tool(通称ゲイツ砲)に軍配 3. RMIについてはちょっと他に代わりを知らないのでJMeter使う場合もあるが そもそもリッチクライアントだってRMI使うことが流行じゃない 4. データベースの負荷テストなんてそもそもJMeterからやらんでもいい 5. テスト仕様書もエヴィデンスもJavadoc化できるので 負荷テストはユニットテストの延長でjunit/junit-eeなりcactusなりで作る 6. お金があるのでWinRunnerみたいなテスト自動化ツールとか Cloverみたいな分析ツールを買った ってところが理由だと思うけどな。 ECSを厨房ライブラリと言い切るのもなんだかねぇ。 perlのCGI..pmとかXML::Writer.pmのjava版だと思えばあっても構わんだろ。 使いたい奴は使えばいい。
445 :
デフォルトの名無しさん :2006/01/02(月) 14:32:56
正月じゃカルタやるべさ
>>440 Commonsの場合はSandboxであるかないか、とか
AかBか、という違いで質がわかるようになっている。
それ以外にも古いものや開発が停滞しているものあるはい開発が
すっかり止まっているものは質が悪かったりする(とは限らないが)、などなど。
JXPathめちゃめちゃ使えますね。 XPathでワイルドカード、正規表現検索ってできるのでしょうか?
Commonsに電卓のようなクラスはあるでしょうか。 "10 + (9 -1) / 2"の文字列を計算するようなものです。
>>448 velocityでやるべし。
StringWriter writer = new StringWriter();
Velocity.evaluate(ctx, writer, "", "#set( $value = 2 * 4 * 6 )$value");
System.out.println("result: " + writer);
>>450 こんなんもできる。
StringWriter writer = new StringWriter();
Velocity.evaluate(ctx, writer, "", "#set( $value = 2 * 4 - 6 )$value");
System.out.println("result: " + writer);
writer = new StringWriter();
Velocity.evaluate(ctx, writer, "", "#set( $value = 2 * ( 4 - 6) )$value");
System.out.println("result: " + writer);
Mapのキーのリストを渡して、Mapのvalueを配列(リストでもいいんだけど)で帰すメソッドってありますか? 見つからなかったので自分で作りました。 あってもいいんだけど・・・ public static Object[] toValueList(Map map, List keyList) { Iterator iterater = keyList.iterator(); List result = new ArrayList(); while (iterater.hasNext()) { result.add(map.get(iterater.next())); } return result.toArray(); }
>>452 キーのリストを指定しなくて良いなら map.values().toArray() で取れるけど。
FileUtilsでcopyDirectory(File srcDir, File destDir)がありますが、 UNIXにあたる mv はないでしょうか。
>>455 Commonsと関係ないけど
import java.io.File;
public class MoveFile {
public static void main(String[] args) {
File orgFile = new File("a.gif");
orgFile.renameTo(new File("tmp" + File.separator + orgFile.getName()));
}
}
こんなやり方で a.gifファイルが tmpディレクトリに移動できるみたいだけど
これじゃだめ?
>>456 ありがとうございます。
できました。
ちなみにパーティションを介した場合でも移動になるのでしょうか?
自分のマシンがCドライブのみなので確認できません。
CompositeMap使ったことある人
462 :
デフォルトの名無しさん :2006/01/15(日) 23:09:53
Commons VFSを使えば
Commons Netにはなかったsftp接続ができるとわかったんだけど
このVFS、うまく動かない。
EclipseのMaven Repo Searchプラグインを使ってvfsで検索して
以下のタグをクリップボードからpom.xmlに貼り付けてMaven2で mvn ecipse:eclipseとして
JARファイルをEclipseプロジェクトのライブラリに追加したのだが・・・
<dependency>
<groupId>commons-vfs</groupId>
<artifactId>commons-vfs</artifactId>
<version>20050307052300</version>
<scope>compile</scope>
<type>jar</type>
</dependency>
ナイトリービルドだからいたしかない、というしかないのだろうか?
以下のコードをためしてみたものの
http://homepage2.nifty.com/igat/igapyon/diary/2005/ig050702.html Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.apache.commons.vfs.impl.StandardFileSystemManager.<init>(StandardFileSystemManager.java:45)
at name.sugawara.hiroshi.html.taggenerator.uploader.ImageUploader.main(ImageUploader.java:31)
どういうことだ?
EclipseにはCommons LoggingのJarがライブラリにクラスパスとして通っているというのに。
とりあえずsugawara hiroshiさんだということは分かった。
∩___∩ | ノ ヽ /⌒) ● ● | / ////( _●_)// ミ .( ヽ |∪| 、\ \ ヽノ /´> ) | / (_/
ワラタ(・∀・)
>>463 ばれちゃったか(笑
しばらくレスするのやめることにするかもしれないけど
実名晒しても恐れずに前に突き進んでみるさ。
VFSはまだまだバグがあるのようなので
かわりにJschまたはJ2SSHを試して見ることにしたよ。
レスサンクスな。
パッケージ名にname.sugawara.hiroshiという.nameドメインを使っていただけ ただそれだけのようで何も珍しくも
Maven Repo SearchでもsshをキーワードにしてJ2SSHをインストールできることがわかった。
>>462 どうやら、実行時にCommons Logging のjarをクラスパスに通すだけでいいっぽい。
これはどうやら、なぜかJ2SSHでも同じように必要なようですな。
470 :
462 :2006/01/17(火) 02:02:23
結局sftpを使うにはJ2SSHを使うことにした。 Commons VFSを使うよりこっちのほうが安定している。 確かにVFS, J2SSHどちらも実行時にCommons Loggingを必要としている。 内部ではjsch.jarを使っているようだ。 Maven Repo SearchでJ2SSHも引っかかることがわかった。
471 :
デフォルトの名無しさん :2006/01/25(水) 04:51:28
Commons Configurations使ったらlog4j,becl,beanutils.commons-loggingのダウンロードも強いられた。 もうわけわかめ。Eclipse + Maven2がなかったら困惑してたに違いヌー
ネストされているBeanのプロパティーの値も出力してくれる ReflectionToStringBuilderみたいなものはないでしょうか。 DB登録失敗時にデータを運用で復元したいので、 テキスト形式で情報を出してほしいといわれてしまいました。 対処法がわからず途方にくれています。
org.apache.commons.transaction.file.FileResourceManager使ったことある人 ファイルをベースにして、DBのようなトランザクションができそう
>>472 とりあえず、XMLEncoderでシリアライズしてみるとか。
>>474 そうですね。
今はとりあえずBeanWriterでXML形式で全部出しています。
ただプロパティー形式にしろといわれ、ちょっと困っています。
Commonsをいろいろみましたが、XML→プロパティの変換はなかったので・・・
ちょっとしたことなんだけど、ファイル削除メソッドってstaticであってもよくないですか。 new File("xx").delete();はめんどくさいです。
仮にあったとしても FileUtils.delete("xx"); じゃ大して変わらんね。 static import すりゃタイプ数も変わるかもしれんが、 delete は比較的衝突しやすそうな名前だしなぁ。
>>473 自己レス。
新たにファイルを作成・書込み・変更の作業はロールバックできるけど、
すでにあるファイルを削除したときのロールバックはできないみたい。
他にやり方があるかもしれないですが・・・
org.apache.commons.collections.iterators いろいろみましたが、 カウンタを取得できるiteratorはないですね。 ループはiteratorでいつも通りしたいのですが、 ループ中にカウンタがほしい、ということはないんですかね・・・。 カウンタ取るために、リストを配列に戻して、list.get(1)とかって、なんか悲しいです。 皆さんはどうしてます。
>>479 ローカル変数でカウンタ宣言してループ内で使えばいいんじゃ?
イテレータがカウンタ持つ必要はないと思うけど
>>479 インデックス使いたいなら、わざわざIterator使う必要ないと思うけど。
インデックス使わずに、走査できるのがIteratorなのに。
なんで、List→配列化するかも不明??
俺も行番号生成とかでたまにやるけど、少なくとも配列に戻す必要は無いな。 ローカル変数で十分。
List#listIterator() じゃダメなの?
>>479 LinkedHashMap使ってキーに数字をいれるのはどうよ?
って話じゃないか
List#subList()などを組み合わせてループしながら
List#index.Of() , List#lastIndexOf()でindexを検索するのはどうよ?
BeanMap bmap = new BeanMap(this); System.out.println(IteratorUtils.toList(bmap.entryIterator())); でフィールドのリストが出力されますが、 thisのクラスのみのフィールドをしゅとくすることはできるでしょうか。
>>479 素直に
int counter = 0;
for( String s : stringList) {
counter++;
//なんか処理
}
じゃ駄目なのか?
487 :
デフォルトの名無しさん :2006/02/02(木) 00:19:04
日付の大小比較をしたいのですが、DateUtils.isSameDayだと 大小比較ができません。Commonsで他に便利なものはありますでしょうか?
>>488 java.util.Date#compareTo(Date)
PropertiesでLinkedHashMapに対応するPropertiesみたいなものってないでしょうか? PropertiesのpropertyNamesでキーのリストを取れますが、 Propertiesの先頭から順に取得したいです。
ファイルの内容をiteratorでまわすクラスはあるでしょうか。
org.apache.commons.io.FileUtils.readLines(new File("filename"), "encoding")
>>493 ありがとうございます。
これは一気にファイルの情報をStringにつめていますが(たぶん)
小さいファイルなのでかまわず使用させていただきます。
一気に読みたくないなら commons なんか使わないで普通に BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("filename"), "encoding")); String line; while(null != (line = br.readLine())){ // line 使った処理 }
cvsファイルの、"xx xx"やxx\'xxなど文字を、下記の通り返すようなユーティリティはありますか。 "xx xx" → xx xx xx\'xx → xx'xx
>>497 たしかに。StringTokenizerはつかえねーし。
>>496 いまいち意味がつかめないんだけど、ダブルクォートと円サインを空文字で
置換したあとに、(CSVなので)カンマでsplitしたらいいの?
>>499 ダブルクォートの中にカンマがあったら?
HashMapのみで構成されたCollectionにCollections.sortかけたら、 なぜかClassCastExceptionが発生。なぜ?
>>501 Comparator 渡さなかったんじゃないの?
HashMap は Comparable 実装して無いから ((Comparable)e1).compareTo(e2)
みたいにやってる部分で ClassCastException 食らうはず。
>>501 すいません。自己解決。Comparable実装してませんでした。
シリアライズ可能でないオブジェクトは、どうあがいてもシリアライズできないでしょうか。 SerializationUtilsは、見た感じそのようなものではなかったのですが・・
CollectionUtilsのforAllDo()で、コレクションの再起処理はできないのでしょうか
class RecursiveClosuer implements Closure{ private Closure delegate; public RecursiveClosure(Closure closure){ delegate = closure; } public void execute(Object input){ if(!input instanceof Collection) delegate.execute(input); else CollectionUtils.forAllDo((Collection)input, this); } } みたいのを作って CollectionUtils.forAllDo(collection, new RecursiveClosure(delegate)) とかすれば数行で対応できるから作らんかったんじゃなかろーか。
Closure closure = new Closure(input) { if (input instanceof Collection) { CollectionUtils.forAllDo((Collection) input, this); } else { // したい処理 } }; CollectionUtils.forAllDo(collection, closure); 再帰処理するように Closure を書けばいいだけじゃん。 506 みたいな RecursiveClosure なんか作る必要もない。
なんか変になったが new Closure() { public void execute(Object input) {・・・ な
PropertyUtils#setPropertyって、BeanUtils#setPropertyと違って オブジェクトのConvertが使用されないのですね・・
ドキュメントに with no type conversions ってしっかり書いてあるし。
yahooの検索結果で、10件表示の全件が110件以上の場合は 検索画面の下に 2・・・・11って出ますが、あんな計算をさくっとやってくれるツールないですかね
一定期間で無効になるHashMapのようなクラスってないのかな WebAppで小さいファイルを読み込んだり、 定期的に再読み込みしてほしいことって良くあるけど、それようのUtilクラスが見当たらないね
それ HashMap 関係あるの? 定期的になんらかの処理させたいなら java.util.Timer とかもあるし。
ま、Timerかなんかで定期的にキャッシュしたい値が入ってるMapをクリアすればいいが、 出来ればそれぞれのvalueは指定した時間内だけ有効(取り出せる)なコンテナがあると、 気軽にキャッシュとして使えていいなー と。
一定期間にはならんけど、キャッシュならWeakHashMapを良く使うな
WeakHashMap で put("key", value) とかやって……
unixで言うところのgrepのようなクラスはあるでしょうか。 今は正規表現のMatcherを使用して自力で書いています。
プリミティブ型とintやdoubleが混ざる計算をするときに、 全ての型をプリミティブ型にしなければいけませんが、 もっと簡単に計算できるツールはないでしょうか。 MathUtilsかなと思ったのですが、数学用のものでした。
>>513 ありがとうございます。
電卓用クラスがあるのでしょうか?
>520 grep のような、と言うのは 複数ファイルから検索を行うってこと? それはクラスレベルではなくて、 アプリケーションレベルの話じゃないでしょうか。
>>522 110 / 10 = 11
これ以上になにか必要か?
LazyListで、set(6, "")すると落ちます。 LazyList.decorate(new ArrayList(), FactoryUtils.constantFactory("")); list.set(6, "") addは対応されているのですが、setは対応していないのでしょうか?
DateUtils#iteratorは使えるが、xx日〜yy日のリストもほしいな・・・
>>527 自己解決。
setをオーバーライドし、中でaddを呼ぶようにして解決しました。
530 :
デフォルトの名無しさん :2006/02/26(日) 17:34:14
commonsだけじゃないんだけど、既存のプロジェクトで使われてるjarのバージョンを正確に知る方法とか ツールってなんかありますか? 引き継いだはいいけどライブラリのバージョンに関する情報が無くて・・・orz いちいち全部クラスとかプロパティの存在有無とかで当たりつけるしかないのかなぁ・・・。
>>530 jar内のMANIFEST.MFに書いてあることもある。Jakartaのはだいたい書いてあって気がするよ。
MANIFEST.MFになければhashやサイズで比較するとかかな。 内容で比較するのはしんどいでしょ。
>>531 >>532 レスありがとうございます。
やっぱり全部共通で調べられるような楽な方法はないっすよね。
でもMANIFEST.MFとかサイズで比較ならなんとかなりそうなんで、いっちょやってみます!
ありがとうございました。
あるファイルの、エンコード種別を判断するクラスはあるでしょうか。 読込むファイルの文字コードをPGで判断しろといわれてしまいました。
Converterで、配列を変換することはできないのでしょうか。
なんのConverterだよ
>>536 ConvertUtils.register()に追加できるConverterです。
BeanUtilsのConverterか?だったらできる。 何の話をしているのかわからない質問するなよ
>>538 すんませんす。
ありがとうございます。
「2M」の文字情報を、byte単位の文字情報に変換するクラスはあるでしょうか。 FileUtilsの逆みたいなものです。 単純に、byte変換クラス見たいのがあればいいのですが
>>540 自分で見つけました。
String prefix =
ModuleUtils
.getInstance()
.getModuleConfig(request, application)
.getPrefix();
return (ValidatorResources) application.getAttribute(
ValidatorPlugIn.VALIDATOR_KEY + prefix);
CollectionUtilsで、重複したデータを取得することはできるでしょうか。 Beanのリストに対し、BeanPredicateなどで、比較対照項目を絞り込んで そこから重複を取得したいです。
んなこともあるさ
いまどき文字コード自動判別とか馬鹿じゃねえの そんなこと要求するやつ糞食わしていいよ
>>547 危険つーか、大体でしか判別できないのでハズレる可能性あり
自動判別の難しさと不確実さをきちんと説明して それでもPG側でやれって言うならやればいいだろう。 それで問題が起きても指示した人間の罪だ。 きちんと説明してさえあれば。
>>551 それに加え、何かしら仕様書なんかに書いておくのは必須だな。
後になってから「そんなの聞いてない」 とかいう客よくいるから。
そうだな、証拠は残すべき たとえ、客が仕様書を読んでないとしても。
Java以外だとエディタとかで自動判別する奴結構あるじゃん? あれってどーやってんの?
日本語の場合、 1. iso-2022-jpだとそれを示す並びがあるので判別可能。 2. euc-jp と shift_jis は本質的に判別が難しいが、片方のエンコードにはあるのに、 もう片方のエンコードにはないコード列が存在するので、 それを検出した段階で判別可能。 ってやり方だと思う。 早い話、「片方のエンコードにしか存在しないコード列」を使っていない文章は判別不可能になる。 自動判別持ち出すんなら、そういうケースに対して どう対処すべきかくらい考えてて然るべき。 何も考えていないんなら、ただのバカ。
BeanUtils.getPropertyで、以下の"aaa"の値を出そうとしていますが、 下記の通りに書いてもエラーになります。 値をとる方法はあるでしょうか? Map map = new HashMap(); map.put("aaa", "bbb"); List list = new ArrayList(); list.add(map); Map top = new HashMap(); top.put("list", list); BeanUtils.getProperty(top, "list[0].aaa"); BeanUtils.getProperty(top, "list[0](aaa)"); BeanUtils.getProperty(top, "list.aaa");
>>555 それは無理だな。
リストのマップも、マップのリストも無理だよ。
リストマップともに扱いが特別だから、併用は難しいね
BeanUtilすげー賢いね。 booleanに文字列の1とか突っ込んだらちゃんとtrueにしてくれた。 1以外はすべてfalseね。 こりゃー便利だわー。
Cなら0がfalseで他がtrueにならね?
559 :
デフォルトの名無しさん :2006/04/21(金) 23:12:26
commonsのライブラリ同梱でアプリ配るときって、どうすればいいの? なんか一緒に入れとかなきゃいけないファイルとか教えて。
Apacheの製品を含んでいるアプリを配布する場合は
「This product includes software developed by the
Apache Software Foundation
http://www.apache.org/ 」
とどこかに明記していればOK。
たとえば、Eclipseだとメニューバーのヘルプの「Eclipse SDKについて」を参照すると
これが書いてある。
アプリのライセンス文に上記の一文を含めておくのでも良い。
あとはかなり自由。ソースコードの公開義務や添付義務は無い。商用利用OK。
>>559 ASL 2.0の翻訳がここにある。
ttp://www.opensource.jp/licenses/apache2.0.html バイナリ再配布に絡むところとしては、
> 1. 成果物または派生成果物の他の受領者に本ライセンスのコピーも渡すこと。
> 4.成果物の一部として「NOTICE」に相当するテキストファイルが含まれている場合は、
> そうしたNOTICEファイルに含まれている帰属告知のコピーを、派生成果物のどこにも
> 関係しないものは除いて、頒布する派生成果物に入れること。その際、次のうちの少
> なくとも1箇所に挿入すること。
>
> (i) 派生成果物の一部として頒布するNOTICEテキストファイル、
> (ii) ソース形式またはドキュメント(派生成果物と共にドキュメントを頒布する場合)、
> (iii) 派生成果物によって生成される表示(こうした第三者告知を盛り込むことが
> 標準的なやり方になっている場合)。
上記は結構省略してるので、自分でも全文を見て欲しい。さらに言えば、日本語訳は
あくまで翻訳なので、ライセンスとしては英文のみが有効。
まあ大ざっぱに言うと
1. Apache Software Licence 2.0の原本(英文)のコピーを配布物に含めること。(日本語訳も
一緒に配布している例もあるけど、英文のものは必ず含めること)
2. 利用したASLベースの成果物に「NOTICE」というファイルが含まれている場合、その内容を
以下のいずれかに必ず含めること。
・あんたのプログラムにNOTICEファイルがある場合は、その中。
・ドキュメントあるいはソースの中
・あんたのプログラムでライセンスとかについて表示しているところがあるなら(例:アバウト画面)その中
>>560 の言っているのが、上記の2に該当する。
それに含めてASLの書かれたファイルを一緒に添付しろってこと。
562 :
561 :2006/04/22(土) 02:02:38
追記。 あと、NOTICE表示に自分の派生物についての告知を追加してもいいんだけど、 その追加ライセンス条項がASL 2.0の修正であるかのように読まれないようにしろ、 という条件もある。 要は ・この配布物にはASL 2.0ライセンスの成果物が含まれてる。 ・この配布物のライセンス条件は俺がきめたこれだけど、APL 2.0ライセンスの成果物に ついてはあくまでAPL 2.0の条件下にあるよ。 ということを保証しろ、ということ。APL 2.0には、配布物によって損害を被っても Apache Software Foundationは知らんよ、という条項があって、もしライセンスを独自のもの にするとしても、APL2.0成果物についてはAPL2.0の条件下にあることを理解させろ、という ことだと思う。
563 :
559 :2006/04/23(日) 20:41:41
2つ以上のInputStreamから読込み待ち?することはできるでしょうか。 例えば、標準入力とネットワークストリームを常に読込みスタンバイして データが転送されたストリームのデータを取得するとか。 IOUtilsには、らしきものがなかったような・・・
そりゃcommonsじゃなくて質問スレだな スレッド分けて待機させればいいだけだが
Configuration#getProperties()の機能ってわかる人いますか?
ノシ
PropertiesConfiguration#setProperty同期とってねー。 パッケージの全ソースgrepしたけど、synchronizedが4箇所だけで、セットとは関係ないところに・・・
Commons Configuration はまだバグが多いので 使い勝手がよろしくないなー。 自動リロード戦略クラスを適用しても 瀬定ファイルの修正を監視してくれなかったし。
>>569 瀬定ファイルってなに?
監視はうまく動いてたよ
C#版Commonsみたいなプロジェクトとかってないの? 誰かガッツンガッツン移植してよ。
>>571 .net で C# 限定にする意味があんのか?
マイクロソフト自身がJakarta Projectみたいなことしてて いろんなライブラリをソースごと公開してるんじゃなかったっけ。 おれは良く知らんのだけど。
>>570 設定ファイルのtypo
XMLファイルのviで編集しても
監視が反映されていなかたことがある。
XMLConfigurationという奴だったかな?
もうひとつ、XMLPropertiesConfigurationもうまくいかず
>>573 下手に移植するとApache Software License違反に
なるんじゃないのか?
NantとかNUnitとかいうのがM$に吸収されてはいるが。
ライセンス形態をBSDにするとすべてマイクロソフトに持ってかれるが
ASLだとそうはいかないと思うのだが。
>>574 のるほど。
ただ、Configurationは便利だね。
MapやPropertiesに変更できることも大きいし。
ソースをそんなに変更しなくても、MapやPropertiesから移植は簡単だ
SandboxのIdって、jarリリースしていないのでしょうか。ソースしかありません。
>>577 Enterprise Libraryみたいな大規模向け(?)っぽいのじゃなくて、commonsのlangとかみたいな小粒なやつが欲しいんだよー。
参照設定にdllの参照追加するだけでOK、って感じの。
どっかそーゆーの作ってる人いないのかな?
ASFって.NET系にはあまり力入れてないの?
580 :
デフォルトの名無しさん :2006/05/03(水) 12:53:27
すいません、配布に関して質問なんですが、commonsの中の使用したいクラスのみ取り出して
自分のjarに含めてしまう、といった配布方法は可能ですか?
もちろん
>>561 さんご指摘の点は守るとしてです。
commonsのjar内のクラスを全部使っているわけではないので、できれば配布ファイルのサイズを抑えたいのですが・・・。
>>579 > ASFって.NET系にはあまり力入れてないの?
聞いたことがない。
背後でJavaやLinuxを推しているIBM等の企業がかかわっているらしいからなあ。
MS製品対応ソフトウェアの開発はやっていなさそうな気がする。
なにせ、MSはオープンソースを嫌っているし、オープンソースは共産主義だ
などめちゃくちゃなこといっているし。
GPLとくらべたらASLは共産主義とまではいかないんだけどね。
たとえMSが一部の自社製品をSourceForgeに公開したとしても
オープンソース全体を敵に回すような不可解な発言が、
無理して.NETに力を入れない方がいいという暗示を示しているのではないかと。
それで今.NETが流行らなくなっているような
>>581 聞いたことが無いって、あーた log4net とかも聞いたこと無いの?
.net も言うほど、死んでないよ。俺は Java メインだが、
今は .net 案件のほうが単価が上げれる。色々な会社の話を聞く限り
.net で技術的に自信を持っている会社が少なくて、金額的にはおいしい。
>>582 Enterprise Libraryのことだろ。
しかしJakartaとくらべるとまだまだものが少ないし
オープンソースコミュニティの活発さが足りないし、
まだまだって感じがする。
org.apache.commons.mailいけるぞ!
585 :
デフォルトの名無しさん :2006/05/09(火) 22:32:31
Commons Mail? Java Mail APIを補足するやつなのか? どうういけるのか感想きぼんぬ
おれは584じゃないが、かなり簡単にメールが送れるね。 Perlでメール送る時みたいな感じといったらいいのかな。 setTitle()とかsetFrom()とかしてからsend()よんだらメールが 送れてしまう、というやつです。 添付ファイルやHTMLメールもさっくり送れます。 内部ではJavaMailを使ってるらしい。
>>585 すごーくシンプルだから、Webサイト見れば一発で理解できると思う。
JavaMailのうすーいラップのようなもの。
new()して、TOやらCCやらFROMやらSubjectやらをセットして、send()呼べば送れる。
ちょうどJavaBeansのようにsetterでセットする形になってるから、DIコンテナでJavaBeansとして扱えるカモ。
>>587 いいねー。Commons の HTTP 扱うやつより、よっぽど需要がありそうだ。
っつか、そこらじゅうの業務プロジェクトに似たようなのがあったのが
いらなくなるな。
>>588 そうそう。いつもみんな自前で似たような、しかし出来の悪い物を作っていたアレだ。
もう作らなくてよくなる。
Java Mail APIが使いやすくなるのか。 ええなあ。 内部でJava Mailを使っているということは、 Mavenで導入するときは自分でmail.jarとactivation.jarをダウンロードして mvn installでローカルリポジトリに追加しないといけないのか。
>>590 そうだね。バイナリ版をダウンロードしても、libフォルダ内にテキストファイルが
入っていて、「mail.jarとactivation.jarを別途ダウンロードしてね」と書いてあった。
探せばまだまだある。 commons-transactionだって使えるぞ。 ファイルの追加、削除、リネームをして、 ヤベ、戻したいっと思ったときにロールバックをかけるときれいさっぱりに
>>592 DB がからむと使い方が難しそうだ。
2 フェーズコミット問題。JTA みたいなのを自作っつーのもあれだ。
厳密でなければ、良さげ。
>ヤベ、戻したいっと思ったときにロールバックをかけるときれいさっぱりに きれいさっぱりに消えてしまうんですか!? (((;゚Д゚)))ガクガクブルブル
>>594 ちゃんと言うと、DBのトランザクションと同じで
コミットしないと、対象ディレクトリに作成・削除が実行されないって事。
つまり、コミットまではワークスペースに対して実行されている。
mail試そうと思ったらサーバ落ちてる・・・
XMLを読み込むフレームワークで、DigesterとかBetwixtとか見てるんだけど、 XMLの内容を格納するbeanを明示的に書かなくてもいいものって無いかな? XMLのパース → BeanUtilなどでパース結果を格納したbeanを動的生成 までやってくれて、利用者側は、あくまでXMLをAPIに読み込ませて、 結果として返されるDynaBeanとかを利用するだけ、みたいな。
commons ではないけど xmlbeans や relaxer でどう? DynaBean 的なものではないけど、 人間がやるのはスキーマを書くところだけ。 マッピングクラスの定義は自動生成する。
俺はスキーマ書くだけで ・コンパイラによるチェック ・入力補完 で手が抜ける方が素敵に感じる。 まぁ人それぞれっすね。
>>599 Betwixtですむよ。定義いらない(Betwixt自身で吐き出したxmlならね)。
602 :
599 :2006/05/11(木) 17:35:13
いろんな考え方があるねぇ。。。 自分に合ったものを選べばいいってことなんだろうけど。 早速、XerialJ/XMLBeanを試してみたけど、 格納するBeanさえ作ってしまえば楽ちんだわ、これ。 日本語もOK。
>>602 配列じゃなくリストは対応できるのかぁ・・・
>>603 格納先Beanに、配列の代わりにListを使うとダメみたい。
>>605 まぢっすか。
Betwixtの勉強によさげなサイトとか紹介してもらえませんか。
XerialJ、配列ってのを気にしなければ、 けっこーネストしたxmlでもbeanさえ作っておけば 処理してくれるね。
>>604 Beanにset/getの2つのメソッド以外に、addを用意するのがミソ。
>>608 Betwixtもそうだよ。
まぁ、みんな同じだね・・・
まぁ、いろんな技術要素を知っておいたほうが、 選択肢や対応力は広がるよね。
beanutils が遅いと聞いたのでどれくらい遅いか試してみました。 プロパティファイルから取得したプロパティをbeanutilsで入れるのと、 setterで入れるのを比較しました。 Bean は int boolean String のフィールドを持ち、 setter では、 それぞれ Integer.parseInt Boolean.valueOf.booleanValue Stringはそのまま を使用しました。 beanutils ではPropertyNameをEnumerationで取得して while(enu.hasMoreElements()){ String name = (String)enu.nextElement(); BeanUtils.setProperty(bean, name, props.getProperty(name)); } これらを100万回ループさせた結果、 beanutils は 平均 7090.3 ms setter は 604.7 でした。
Bean の プロパティの数を増やし、 int 2個 boolean 2個 String 2個 にして、同様の実験をしたところ、 beanutils 平均 14372.4 ms setter 平均 1134.9 ms でした。 web の場合、1アクセスで3つのbeanを呼び出すとして、 そのbeanにプロパティが10個とします。 その場合上の結果から、100万回アクセスがあると、 7090 * 10 / 3 * 3 = 70900 100万回で、beanutilsの部分だけで71秒もかかってしまうのですが、 これはボトルネックになりうると思ったんですが、 1アクセスあたり 0.0000709秒なのでDBからデータの取得のほうが全然重そうですね。
>>612 配列に比べコレクションが重いとか
String の + 連結が遅いとかもその類だな。
システム構築の標準化を行う人間で、
そういうのを禁止する奴がいて困る。
全クラスをシングルトンにするとかバカもいたしな。
要件がきついシステムもあるので全否定するわけではないが、
そんなんだったら環境を改善するか、Java やめたほうが(ry
巷の Java 初心者のなんちゃってアーキテクトをなんとかしてくれ。
あー、あんたの検証した DB がボトルネックというのは概ね正しいと思う。
Digesterのルールを自動生成するeclipseプラグインなんてあるのだろうか・・・
commonsみたいな、ユーティリティをフリーで提供している団体ってあるのかなぁ・・・
大きなフレームワークを駆使するよりも、 細かいcommonsをフル活用したほうが作業効率がかなり上がるような・・・ まぁ、比較する対象としてはおかしいけど。
>>617 commonsをあさって機能を試して・・・というのにどのくらい時間がかかるか。
>>618 commonsを知って試しに使ってみるまで3時間くらいかかりました
>>620 そーかなぁ・・・。API見たらわかりやすかったから
結構直感的にいけたけど・・・
Commons次第。 Collections、IO、FileUploadあたりなら、APIとUser Guide見ればすぐ使えるけど、 Digester、Validatorあたりだと、API見てすぐに、とは行かないと思う。
>>620 その試した機能を自分で実装したら3時間で済んだのか?
ライブラリによっては依存関係や バージョン違いに 引っかかってCommonsライブラリを使えるようになるのに 何日もかかったことがあったな俺は。 Maven2が出てからその手間も大幅に省けるようになったのが嬉しい。
strutsのaction-mappingのformの検索をしているのですが、 ファイル検索だと、関係ない箇所のまで名前一致で引っかかるので苦労しております。 xmlのスキーマを理解し、<a><b>xxx</b></a>だと、<a><b>のxxxを探す、というプラグインはないでしょうか。 つまり、xmlファイルに対して、xpath検索できるものです。
>>625 JXPathでちょちょいと実装、ってのじゃだめ?
大した手間じゃなさそうだし、好きに作れるじゃん。
>>626 実はJXPathで実装して、検索できましたー!って思ったのですが、
検索はできても、その定義がファイルの何行目であるかの情報が取得できなくて断念しました。
ちなみに、JXPathで質問ですが、
ibatisの設定ファイルを読込むと、
設定ファイルのdtd設定が下記のようにしてあり、
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"
http://www.ibatis.com/dtd/sql-map-config-2.dtd ">
どうも、www.ibatis.comにアクセスしています。
ネットワークにつながらない環境なので、エラーになってしまします。
ソースは↓です。
DocumentContainer location = new DocumentContainer(XXClass.class.getResource("/jxpath/sql-map-config.xml"));
JXPathContext context = JXPathContext.newContext(location);
ネットワークにつなげない方法などあるのでしょうか?
>>627 sql-map-config-2.dtd を落としてくるか、配布ファイルのどっかに入ってるだろうから
それを設定ファイルと同じディレクトリに置いて
<!DOCTYPE beans SYSTEM "sql-map-config-2.dtd">
に変えてみたらどう?
確か PUBLIC じゃなく SYSTEM使えばローカルファイル見てくれたと思った。
今試してないんで、やってみ。
629 :
628 :2006/05/25(木) 23:03:33
間違えた。 <!DOCTYPE sqlMapConfig SYSTEM "sql-map-config-2.dtd"> だねきっと。 あと × 今試してないんで、やってみ。 ○ 今試せないんで、取りあえずやってみ。 と書くつもりだった。 疲れてんなーorz
>>628 ありがとうございます。
取り合えずレス見る前にやってみたのは
"jar:file:C:/xxx/ibatis-sqlmap-2.jar!/com/ibatis/sqlmap/engine/builder/xml/sql-map-config-2.dtd">
でいけました。
クラスパスからの検索ができれば、フルパスを書かなくてもよく、環境依存しないのですが・・・
ちなみに、超強引な方法として、extends DocumentContainerしたクラスを作成し
public Object parseXML(InputStream stream) {
String data = IOUtils.toString(stream);
//正規表現で"<!DOCTYPE.*?dtd\">"を空に変更。
} catch (IOException e) {
throw new RuntimeException(e);
}
stream = IOUtils.toInputStream(data);
return super.parseXML(stream);
}
のクラスを使用してもうまくいきました。
FTP超つかえる 超感動 f = new FTPClient(); f.connect("xxxx"); f.login("xxx", "xxx"); FTPFile[] files = f.listFiles("xxx");
>>633 Commons NetじゃなくてCommons VFSにあるんだね。
なんでだろ?
635 :
デフォルトの名無しさん :2006/06/18(日) 02:52:24
HTTPClientの次期バージョンが独立しただけでは?
>>636 え?そうなの?
じゃあHttpClientはいづれなくなっちゃうのか。
Commonsからはなくなる ただ、まだbetaなのでVer3はのこしている、だったかな
>>638 なるほど〜。ありがとう!
じゃあこれから覚えるにはこっちのがいいかもだねー。
ibatisのSqlMapClientは、スレッド毎にbuildしないといけないのでしょうか? 1つのSqlMapClientはでかいので、何とか1つにしたいのですが。
641 :
デフォルトの名無しさん :2006/06/25(日) 16:34:55
>>635 今alpha2が出てるんで色々と使ってるけど、SSL周りがあやしい、超あやしい。テストしてない予感。
接続を切る時に
java.lang.UnsupportedOperationException: The method shutdownOutput() is not supported in SSLSocket
が出る(当方 java 1.4.2_12-b03、1.5.0_07-b03でも出る)。
英語が苦手だけど、調べてみるとSSLってhalf-openはよくないらしい?で、J2SE 1.4からサポートしなくなった、みたい?(いずれにしても、closeする時はthis.socket.close()の一発でOKみたいだ)
だれか、プロジェクトに通報してやってくれ!
[AbstractHttpConnection.java:153-161]
try {
this.socket.shutdownOutput();
} catch (IOException ignore) {
}
try {
this.socket.shutdownInput();
} catch (IOException ignore) {
}
this.socket.close();
>>641 英語苦手だからなぁ・・・。
そもそもJakartaプロジェクトとかにこーゆーバグとかを報告する手順ってどうやるの?
誰か詳しい人、解説して下さい。
>>640 自己解決。複数スレッドで使いまわしOKだった。
645 :
デフォルトの名無しさん :2006/07/04(火) 21:06:55
時給1000円でJava教えてくださるかたを募集します 場所 所沢(池袋・高田馬場から直通) i−want−to−study−java@hotmail.co.jp (アドレスは全角で書いてあるので半角に直してください) よろしくおねがいします
646 :
デフォルトの名無しさん :2006/07/04(火) 21:50:13
647 :
デフォルトの名無しさん :2006/07/04(火) 22:06:14
言語仕様だけわかってもなあ… せめてJakartaくらい押さえんと。
押さえても押さえても抜け落ちていくJakartaかな
じっと手を見る
652 :
デフォルトの名無しさん :2006/07/05(水) 15:17:09
トンヘの小島の磯の白砂に ウリ泣き濡れてカニとたはむる
ところで今、Jakartaって何があるの?
656 :
デフォルトの名無しさん :2006/07/06(木) 14:37:44
WEBサーバのメンテ、だいぶかかってるな・・・
657 :
1 :2006/07/07(金) 01:50:00
はじめましてはじめともうします。 common-fileuploadを利用したファイルアップロードクラスを 作成したいのですが、うまくいきません。 commons-fileuploadのServletのサンプル(doPostメソッド による処理)ではうまくいくのですが・・・ uploadClassの List objLst=objDfu.parseRequest(request); の値がnullになることまでは確認できましたが なぜそうなるのかが分からない状態です。 大変恐縮ですがご指摘・ご教授の程お願いします。
658 :
2 :2006/07/07(金) 01:52:05
--------------------------------- Action --------------------------------- import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import test.uploadClass; public class testAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)throws Exception { // アップロードクラスをインスタンス化 uploadClass uploadclass = new uploadClass(); // アップロードを実行 uploadclass.upload(request,response); return mapping.findForward("success"); } }
659 :
2 :2006/07/07(金) 01:53:42
--------------------------------- ActionForm --------------------------------- import org.apache.commons.fileupload.DiskFileUpload; import org.apache.struts.action.ActionForm; import org.apache.struts.upload.FormFile; public class testForm extends ActionForm{ private DiskFileUpload files; public DiskFileUpload getFiles() { return files; } public void DiskFileUpload (DiskFileUpload files) { this.files = files; } }
660 :
2 :2006/07/07(金) 01:55:51
public class uploadClass extends HttpServlet { public void upload(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ //String path = getServletContext().getRealPath("."); String path = new String("."); DiskFileUpload objDfu = new DiskFileUpload(); objDfu.setSizeMax(-1); objDfu.setSizeThreshold(1024); objDfu.setRepositoryPath(path); objDfu.setHeaderEncoding("Shift_JIS"); try { List objLst=objDfu.parseRequest(request); Iterator objItr=objLst.iterator(); while (objItr.hasNext()) { FileItem objFi=(FileItem)objItr.next(); if (!objFi.isFormField()) { String strNam=objFi.getName();
661 :
2 :2006/07/07(金) 01:57:32
if (strNam!=null && !strNam.equals("")) { strNam=(new File(strNam)).getName(); objFi.write(new File(path + "/" + strNam)); } } } } catch (FileUploadException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } }
オフィシャルのFAQにそれっぽいのがあるけど、確認した?
663 :
デフォルトの名無しさん :2006/07/08(土) 02:54:08
Jakartaの名前の由来って何?検索しても都市しかでてこない
ジャワ島(Java島)にある都市ジャカルタだろ。
SunがJDWSDK(その後のTomcat)をASFに寄贈した時に調印を行った会議室の名前。
へートリビアだな
667 :
デフォルトの名無しさん :2006/07/17(月) 20:57:15
時給1000円でJava教えてくださるかたを募集します 場所 所沢(池袋・高田馬場から直通) よろしくおねがいします i−want−to−study−java@hotmail.co.jp 教える対象は超初心者です。 専門学校などでJavaを勉強されていて夏休みだけ教えたいという方も歓迎です
668 :
WildBoa :2006/07/17(月) 21:50:39
DataBaseへの接続設定ファイルの保存用にXMLを使用しようとして勉強をしております。
@ITにおいて、Digesterの解説があったので、これをサンプルとして、動作させようとしてます。
記事:
ttp://www.atmarkit.co.jp/fjava/rensai2/jakarta04/jakarta04.html#list2 ソース:
ttp://www.atmarkit.co.jp/fjava/rensai2/jakarta04/sample.zip ところが、ClassNotFoundExceptionが発生して、実行できません。
大変恐縮ですが原因・対応のご教授をお願いします。
発生したエラー
2006/07/17 21:40:46 org.apache.commons.digester.Digester startElement
致命的: Begin event threw exception
java.lang.ClassNotFoundException: net.skirnir.sample.DataSourceConfig
環境
OS :WindowsXP Home SP2
JDK:1.5.0_07
IDE:ECLIPSE 3.1.1(コンパイラー準拠レベルでJDK1.4を指定)
commons-digester:1.7
commons-beanutils:1.7
commons-collections:3.2
commons-logging:1.1
以上です
669 :
デフォルトの名無しさん :2006/07/17(月) 22:00:12
Digesterは結構バージョンによってタグや属性名が変更になってるから注意が必要 Webページの解説がどこもてんでばらばらなんで DigesterのDTDを読んだ方がいいよ
>668 添付のソースをコンパイルして、 しかるべき場所にクラスパス通した? zip の中の構造がパッケージ無視してるっぽいんだが。
672 :
WildBoa :2006/07/19(水) 01:01:55
>670,671 ありがとうございます。 ソースを「\net\skirnir\sample」において コンパイル・実行しております。 又、「config.xml」は「.\」においております。 各ライブラリはJREの「\lib\ext\」に展開してありますが、 他に何か設定が必要になるのでしょうか? >しかるべき場所にクラスパス通した? 何処かクラスパスを通す必要があるのでしょうか?
¥net¥skirnir¥sampleなら¥にクラスパス通さなきゃ
>各ライブラリはJREの「\lib\ext\」に展開してあります おい!ちょっと待て!
>672 Digester に手を出す前にまずやるべき事が有りそう。 Digester 固有の問題じゃないので とりあえずしかるべき場所(初心者スレなど)で 環境設定の仕方を聞いてきた方が良いよ。
676 :
WildBoa :2006/07/19(水) 23:15:25
>>676 使い方を間違っている。
特定のアプリで利用するライブラリを置く場所ではない。
そこは、JVMそのものを拡張するとかJVMにパッチを当てる的な使い方をする場所。
そのJVM上で動作する全てのアプリに影響する。
そのJVMを、そのアプリでしか使わないことが保証されているなら、事実上問題は起きないことにはなるが・・・
それでも「とりあえず、動けばOK」的な発想。
そのJavaHouseのスレッドを、ごく表面的にしか理解できていないようだね。
678 :
WildBoa :2006/07/19(水) 23:42:38
>JVMそのものを拡張するとかJVMにパッチを当てる的な使い方をする場所。 677様、ご教授ありがとうございます。 674様、 ECLIPSEの「構成およびデバッグ」のクラスパスタブで、 ユーザーエントリーに\と\net\skinr.sampleを追加しておりますが、 追加の仕方に問題があるのでしょうか。
>>672 \net\skirnir\sample\において、さらに実行している場所は
ちゃんと「\」なんだろうね。
あと、「.」がクラスパスに入っていないに1ドル。
>>678 問題有り。
余計な設定をして、必要な設定をしていない。
>ECLIPSEの「構成およびデバッグ」のクラスパスタブで、
>ユーザーエントリーに\と\net\skinr.sampleを追加しておりますが、
これは不要。Eclipseはソース・フォルダーは自動的にビルドパスに追加される。
そして、アプリで利用するJarファイルをビルドパスに含めなければならない。
Digester以前に、基礎から学ぶべきコトが多そうだな。
681 :
WildBoa :2006/07/20(木) 00:30:47
皆様ありがとうございました、解決しました。 680様の指摘どおり、ビルドパスが問題でした。 コードがコンパイルできていたので、安心しきっていました。 追伸 679様、WindowsのJava環境では「.」はデフォルトでクラスパスに 含まれておりませんでしたでしょうか?
>>681 まーインストーラは . をクラスパスに入れてたような記憶があるけどね。
SET CLASSPATH すりゃ判るじゃん。
環境変数なんざいくらでも変更できちまうんだから、
デフォルトを信用しすぎないほうが安全だと思われ。
>>681 どこにもclasspathを設定していない場合のみね。
デフォルト値なんてEclipseや環境変数の設定次第でいくらでも上書きされる。
ホント、中途半端な知識だね。
遅レスだが、CLASSPATHのミスといい、lib\extの使い方といい QuickTime作ってる人かと思ってしまったw
てs
686 :
デフォルトの名無しさん :2006/10/13(金) 02:14:30
BeanUtils.describe(bean); 経由の シリアライズが超速いと不思議に思ってたら このメソッドって配列無視しちゃうのね orz どなかた別にCommonsじゃなくてもよいので、この問題に対応した Map <-> JavaBeanの相互変換ライブラリ知りませんか?
>>686 PropertyUtils.describeの方は確か配列もきちんと変換してくれるはず
>>641 SSL3.0やTLSに対応していないとか?
SCXML使ってる人、いるかい?
最近、Jakarta CommonのMLのSubjectに[SCXML]と 名がつくメールが良く来るが、一体どんなもんなのだ?
今、Commons-Dev MLで Generics対応Collectionsを既存のCollectionsのサブパッケージに するかどうか投票をしているようだ。 なんでそんなことが必要なのか流れを読んでいないのでわからないけど 俺個人としてはJava5のコレクションフレームワークの ようにそのまま使えるよう分離させないで欲しいなと思っている。
697 :
デフォルトの名無しさん :2006/11/04(土) 21:52:20
あげ忘れた よくMLを読んでみるといくつかのクラスの削除またはリネーム などについて議論しているようだ > - BoundedCollection should be deleted/renamed to Bounded > new Bounded interface would not implement Collection, allowing it to be > implemented by Maps as well as Collections > > - UnmodifiableBoundedCollection should be deleted > Just use the isFull/maxSize methods on CollectionUtils or similar > > - AbstractSerializedCollectionDecorator should be deleted > Serialization can now be rolled up into the base decorator > This simplifies a lot of code > It wasn't done originally due to back-compat > > - TransformedCollection will need some thinking about to generify, as a > transformer can change object types > > - Consider adding a Decorator interface > This would provide a single method decorated() that obtains the > collection that has been decorated. > Whilst useful, this is also potentially dangerous exposure of state. > > - Consider adding a Container interface > This would be a base super interface for Collection and Map (but > obviously we can't hack the JDK. > > - Consider whether UnmodifiableCollection should be deleted as it > duplicates the JDK.
10個の要素があるリストで、5、6、7、8、9,10,1,2,3,4って順にまわしてくれる iteratorないですか? 5でnextがfalseになるような感じです。
開始する要素が固定とかだったら、自分で書いた方が早いんじゃない?
>>698 なんで10の次が1になるのか。
まず最初に5から読み込むがいきなりfalseになって
結局回らない。
何がいいたいのかわからない。
こういうコンパイラ以上のことが出来ないやつは一生底辺プログラマだな >698 それ位はさすがに自分でコード書こう 応急処置としてsubListでばらして繋ぎなおすとか。
>>698 の日本語が変なので
具体的に彼が何がしたいのかよくわからない
>>702 要は、開始位置が指定できて、リストが持っている配列の最後にきたら先頭に戻るようにして
終了のタイミングは開始位置の1つ前、って事でしょ。わかれよ
test
で、そんなよく使うわけでもないモノはcommonsには無いし、書くのも簡単だから書けば。 で終了。
>>706 List から Buffer への変換やるのか。面倒くさそう。
Iteratorを継承して自作すればいい
>>703 それでも
>>698 の言っている意味と合致していないような気がするが。
最後に5でnextがfalseになるようにしたい?
俺は、まずソートしてからIteratorを回したいと
>>698 が
主張しているように見えたぞ
LoopingIterator
「作ればいいじゃん」でFAですね。
ToStringBuilder.reflectionToStringのネスト機能が欲しい・・・
そういうときこそ、自作すればいいじゃないか。 そしてパッチをCommonsに提供するんだ。 そうすれば知名度が上がるかもしれないぞ。 つか、EclipseのCommons4Eプラグインを使えば ある程度自動化できるんじゃないのか?
Iteratorなんて滅茶苦茶シンプルなインタフェースなんだから探すより作った方が早いよ。
JRCS・・・なくなった。 diffも使えなくなった・・・
commonsにchainってあったんだ。 struts1.3でも使っているみたいだね。 ovserveもあるといいかも。
Chain of Responsibilityパターンが実現できる あのAPIか
unixでいうところのbashのreadlineのライブラリに似たものはcommonsにないですかね。
>>719 そうそう。
springって単純にnewの内容を設定ファイル化できるけど、
それじゃ処理の流れを変更できないので、
spring+chainの軽量ライブラリがあればbestなんだけど。
ConfigurationのXPathExpressionEngineって、XMLConfiguration をxpath検索できるのかな? jxpathの絡んでる?
ArrayIntList結構便利かも。
>>723 それ使ったことがないからわからないけど
Configurationは不安定でファイルをオートリロードするストラテジも
ろくに機能しないし、ファイル書き込みも意味不明でどこの
ディレクトリパスなのかさっぱりわからない不具合がおきるし(save()メソッドの
挙動が変。絶対パスなのか相対パスなのかイマイチ)。
>>725 最近バージョン上がったよ。
細かくは試していないけど。
JSP2.0のEL部分だけ取り出したようなライブラリってCommonsにないんかな。 変数入れたMapと文字列渡すと実行できるようなやつ。 静的なメソッド呼び出しを関数に割り当てできるとベスト。 設定に数式を入力できないとヤダとか言い出すヤツが多くて困る…
Jakarta Commons EL
>>728 それはJSP用のELやん。
Expression#evaluateがjavax.servlet.jsp.el.VariableResolver使うから避けたい。
このライブラリで言うと、
引数はorg.apache.commons.el.VariableResolverになってるやつが欲しい。
んで、JspVariableResolverとMapVariableResolverって感じでAdapterがあると単独で使いやすい。
ついでに言うと、Expressionにはevaluate(Map)な簡易メソッドがあると最高。
Jakarta Commons JEXLはどうなん? > Java Expression Language (JEXL) is an expression language engine > which can be embedded in applications and frameworks. ってあるけど。
>>730 おぉ、パッと見はよさげ。サンクス。
式って言うか、ちょっとスクリプト寄り?
意図しないstaticメソッド呼び出しができないようになってれば
変数入れたMapとの変換で何とかなるかな。
今筋トレ中なので、明日にでも試してみるよ。
OROの話題ですが、置換で$1が使えますが、(??{ code }) は使えるでしょうか。 codeは、Perlにおいて、埋め込まれたPerlコードを実行してその結果を正規表現を表すものとして使用します。 らしいですが、javaのメソッドなど呼べたら便利かなと。 つまり、メソッドを登録しておき、そのメソッドにマッチした部分の引数をOROがわで渡すことができればOKなのですが。
PropertyUtils#setProperty()でセットできる対象はsetterがあるプロパティだけだけど、 setterがないものにもセットできるものはないかな? ToStringBuilderあたりはその辺強引にやっているらしいけど
>>732 多分Oro単体では無理。
GroovyやBeanShellみたいなスクリプティングエンジンと組み合わせれば多分可能。
IOUtils1.2にあるProxyReaderとかのProxy〜系ストリームクラスってJDK標準のFilter〜系クラスと何が違うんですか? それぞれFilter系クラスを拡張してあるようなのですが、いまいち何のために使うべきなのかわかりません。
A Proxy stream which acts as expected, that is it passes the method calls on to the proxied stream and doesn't change which methods are being called. It is an alternative base class to FilterReader to increase reusability, because FilterReader changes the methods being called, such as read(char[]) to read(char[], int, int). FilterReader がメソッドのシグネチャを変えやがるから Reader のシグネチャと同じになるようにしたやつを作った。 らしい。
>>722 nativeのライブラリ使ってるだけだった。
ナンだよそれって感じ。
環境依存するので使用はボツ
>>737 コンソール使ってる時点で環境依存はやむを得ない。
log4jで、設定ファイル中のログレベルを変更した場合、アプリ再起動しないで即時更新させることはできますか? 運用中にレベルを変更することは結構あると思うので・・・
ログファイルの変更を監視すればいいんじゃない?
>>741 そんな面倒なことしなくても、タイムスタンプを見てから
DOMConfigurator.configureを実行すれば、ロガーの追加もレベル変更も即時更新。
DOMConfigurator.configureAndWatchでよくね?
>>742 ,744
739じゃないけど、kwsk教えてください
XMLConfiguration、HierarchicalConfiguration超使える。 これで書き込みができれば最高
IOUtilsのFileUtils.listFilesでファイル検索が簡単にできるけど、 /home/*/bin/*.sh とかのワイルドカード検索はできないんだね。 ワイルドカードのフィルターはあるけど・・・
>>747 XMLのほうは書き込みやリロードのバグがあったが
直ってるか?
CollectionのBagで数が多い順に取り出す方法はありますか?
AbstractMapBagに /** * Mutable integer class for storing the data. */ protected static class MutableInteger { /** The value of this mutable. */ protected int value; /** * Constructor. * @param value the initial value */ MutableInteger(int value) { this.value = value; } public boolean equals(Object obj) { if (obj instanceof MutableInteger == false) { return false; } return ((MutableInteger) obj).value == value; } public int hashCode() { return value; } } ってあるけど、何でInteger使わないんだろ。メモリの削減になるわけでもないような。 ツーか頻繁に変えるなら、plus()minux()のメソッド作ってデータの変更のたびにnewしないようにすればいいのに・・・
753 :
デフォルトの名無しさん :2007/01/02(火) 22:26:57
Commons Modelerで下のようなコードを書いたのだがMbeanとして登録されない。 間違いを教えてください。 MbeanTest test = new MbeanTest(); ObjectName name = new ObjectName("test.MbeanTest:name=tests"); Registry registry = Registry.getRegistry(null, null); registry.registerComponent(test, name, null);
Collectionsもいい加減にはよGenericsとアノテーション対応させてくんろ
755 :
デフォルトの名無しさん :2007/01/03(水) 00:03:40
>>753 何も問題ないよ?お前の環境がおかしいんじゃないの?
756 :
デフォルトの名無しさん :2007/01/09(火) 15:00:19
Digesterくそ XMLDecoder最高!
<object class="Hoge"> <void property="fuga"> <string>henyo</string> </void> </object> よりも <hoge fuga="henyo"/> って書きたくね? Relaxer なり JAXB なりに逃げる。 (XML やめて JYaml って手も。) Commons だと Betwixt なんだろうけど、どうも使いにくい。
758 :
デフォルトの名無しさん :2007/01/09(火) 22:23:19
Commonsである必要はないんだけど ゲーム用のライブラリもしくはフレームワークって何かありません?
XML扱うならSEでも標準APIになったJAXBだろ
Langから特定の1メソッドだけこぴってつかった場合、ライセンスはどうすりゃいいの?
commons-loggingとlog4jって両方ないと使えないのですか?
764 :
デフォルトの名無しさん :2007/01/20(土) 21:31:48
tukaeru
765 :
デフォルトの名無しさん :2007/01/20(土) 23:58:06
commons-loggingはlog4jが使えれば使い なければ別のロガーを使う
commons logging 意味ねー。 Log4J 使ったら他のロガーは低機能すぎて使わんのだから 最初から Log4J にするし。 commons logging に依存するぐらいなら Log4J に依存するのも変わらん。
>>766 しかしcommons loggingがないと動かないライブラリが山ほどあるので、
commons loggingからは逃げられないという現実。Jakarta周りはほとんどそうだ。
実際、log4j以外に使われてるロガーってほとんど無いよな? commons-logging→log4jって経由するより log4jオンリーでいってもらう方がよっぽどいい。
標準ロギングAPIはたまーにつかわれてるぞ 外部に何もライブラリが要らないってのはやっぱり便利だし commonsだけ使いたいときなど 問題はcommonsLoggingと相性が悪いのが癌だが まぁカスタマイズも手軽だしね ほとんどのところはロギング処理はさらにカプセル化してるだろうからそんなに問題にはならないと思われ
>>769 Log4J にログを出力した行やメソッド名をフォーマット指定で出力できる。
カプセル化してるとこはうざい。だいたい、その機能を殺してることを
分かってやってんのかも怪しい。
>>768 しかしJava Logging APIも使い勝手が良いからな。
遅いけど。
Logger.global.finest()なんて書き方はよく好んで使う。
いきなりLogger.global.fine()って書くだけでいいんだから。
あとはEclipseなどでimport宣言を自動化すればいいだけ。
細かい設定はstaticイニシャライザに書いておくだけで名前の通り
グローバル変数のように機能してくれるからJava標準のLogger.globalはありがたい。
Log4jはプロパティファイルをサーバの変なところに 置く不潔な使い方をする輩がいるからな。 それにJakarta Velocityの設定ファイルvelocity.properties なども別のディレクトリに分散するとかなりウザイ。 プロパティファイルに書かれている内容を Javaコードで書いてもいいのだが、それだと 設定を変更しづらいから嫌だとか、もうすでにこの ディレクトリに置くと決めたからこの配置は二度とかえることが できないとか頑固なことを言っていうことを聞かない奴がいるから 標準のJava Logging APIを使いたくなってくる。あれにもプロパティファイルはあるが。
>>773 あれでしょ。ログ付帯情報として、常に内製のラッパークラスの情報が出力されるってことでしょ。
touchってただ空ファイル生成、タイムスタンプ変更するUNIXのコマンドと同じだろ
そうだけど。
FileFileFilterって一瞬なんのことかわからなかった。 地味ながらFilterが充実してきた感じ
俺的にはこれかな。 NullWriter NullInputStream NullReader
commons-daemonって使ったことあります?
>>756 JDKでこんな便利なものがあるんだ。Betwixtより使いやすい。
digester使ってたけどやめるわ
ただ、こういうものって引数なしコンストラクタないとだめだよね。
それを対応するとなると、もはやDIのレベル?
JavaとXMLとの変換ならJAXB使え XMLDecorderとかはシリアライズのためのものであって 特殊な用途に使うものだよ
>>781 nullオブジェクトパターンを実現していると言うことか
>>784 おれならCastorを使いたくなってくる。
JAXBってそんな使い良いのか?
collectionsでSynchronizedMapだけなんでないんだ?
>>784 ん〜、要は簡単なものがいい。
今のところ俺の中では 簡単=定義ファイルがない なので
XMLDecorderかな。
勘違いしてるようだがJAXBって定義ファイルいらないぞ それにJavaSEに実装されてるから外部ライブラリも要らない フィールドに対してもプロパティアクセスにしても自動でやってくれるのがいい もちろんプロパティ名とエレメント名と別にすることも自由自在
1.4なんてもうすぐサポート切れるような古い環境のは古いJAXBしか動かない 新しいJAXB2.0はJ2SE5.0以上 そしてJavaSE6では標準装備
>>791 weblogic8.1がJDK1.4なので、JDKを変更できない・・・
>>792 そういうターゲットなら旧JAXBや他のライブラリでいいだろう
少なくともXMLEnco/Decoは用途が違うから使うなといいたい
普通のXMLとのやり取りはできないわけで
公開鍵暗号化方式のライブラリってcommonsにありますか?
Commons Codec
>>796 いえ、ぜんぜん。標準であるんでしたっけ?
以前はJCEとして「拡張」扱いだったけど 今はJDK1.5以降は標準に含まれた模様。
>>783 Betwixtはgetterがないフィールドも出力可能なので、XMLEncoder とはまた一味違う。
XMLEncoderはシリアライズ可能だが、対象がjavabeanのみなので、
それ以外を保存したい場合は
>>795 MD5のこと?
これって不可逆のはずでは?違いましたっけ。
>>784 Jaxbはダメだよ。XMLSchema使える奴がほとんどいない上に、一年もしたら文法忘れるから
別の開発者はおろか、本人にも保守できないようになる。
その結果、本質的には同じクラスに入るべき情報が別クラスとして後付されたりするから
ほんとわけわかんない状態になる。
>>801 JAXBはXMLスキーマつかわんぞ
いつの時代の人だ
>>802 二年前にガンガンXMLSchema使ってたんだけどな…。
今はアノテーションなのか。
つーか、そうなると二年前のjaxbの売り文句は殆どが幻想になってるんだな。
はっきり言って詐欺の領域に入るほどの不誠実さだ。
アノテーションもルートエレメント指定だけでいいしな どうやらバインディングの考え方を大きく変えたのようで、JAXWSで使用してもシンプルに使えるためのものという感じになったのが大きいか おかげでJAX-RPCとJAX-WSと互換性がなくなったが なによりもいいのがJavaSE標準APIになったことで外部ライブラリが要らないことだな JCEにしろJAXPにしろJDBCにしろSEでの標準API化は大きい あとJAXWSも標準できたのは正直驚いた EJB3にしてもDI化したしJavaEE5はJ2EE1.4までとは次元が違いすぎる
でもやっぱりどこか古臭いんだよなEJB3って。。
古臭いって去年の春にでたばかりだろ。
EJB 使う奴はもう頭弱い奴しかいないだろ。 そりゃ、IBM とかの大手企業や @IT とか、ライターは 必死で薦めてくるだろう。メシの種だからな。 この世界、結局金だから。金を稼ぐ奴に乗せられる おめでたい奴は、いつまでたっても学習能力がない。 ある意味、幸せかもな。
EJB2.XとEJB3は全くの別物だぞ 理念的には、EntityBeanはHibernateのEntityに置き換えられ、 SessionBeanはSpringの考えを真似た Hibernate側は積極的に協力したが、Springが非協力的だったので、 DI機能が貧弱になってしまったがな
おかげでHibernateの使いにくさがそのまま(むしろもっと)残ってしまった。
使い物にならなかったEntityBeanよりはマシだろ
>>808 Seasarが協力してればかわってましたか?
もちろん、スーパーアジャイルです
>>808 まったく別物ってもうさんざん聞いた。
要は Hibernate や Spring の劣化コピーだろ。
理念はそうであっても、儲けなければならない各企業の
思惑が仕様にからんできて結局通った道を歩むだろう。
標準仕様であるためにガチガチにしなければならないジレンマ。
別に Hibernate や Spring マンセーではないが Hibernate や Spring は
EJB3 は置き去りにしてどんどん前に進むだろう。
標準仕様は意思決定遅すぎ。
だいたい JPA なんだよ、あれ。EJB2 で SQL チューニングできねーって
さんざん叩かれたのにまだ分かってねーのか。バカだな。
まーこれは HQL がメインだった Hibernate でも同じだが、
標準仕様となれば話は別だ。っつーか Java の ORM ってなぜ
こんなのばっかなんだよ。
っつか、スレ違いじゃねーか。
>>813 ネイティブなSQL発行できるからましじゃねーの?
>>804 class Hoge{
Fuga fuga
}
を XML にバインドするのに
<hoge>
<fuga>fugagaga</fuga>
</hoge>
<hoge fuga="fugagaga"/>
の2種類がありえるから、スキーマ(WXSじゃなくてもいいが)ないと
本質的に等価な変換は無理だと思ってたんだけど
その辺りってどうやってやってるの?
>>816 何もしなければ上のほうとなる
@XmlAttribute
String fuga;
とやると下のほうになる
意識して上のコードにしたければ
@XmlElement
をいれるとよい
アノテーションかあ。 スキーマしこしこ書くよりは早いすね。
betwixtってgetterメソッドないフィールドの書き出しってできなかったっけ?
HttpClientのJavaDocってホームページ上にないの?
HttpClientを使ってバッチ処理的なものを作ろうとしていて。 Linuxとかで、あるサーバーにログインしてダウンロードページに遷移後にダウンロード。 こんな処理をしたくて。SSOの認証用データをダウンロードするためのバッチ処理なんですが。 wgetではクッキーを保持して決まった画面の順に経由してダウンロードができないので HttpClientでやろうかと。 もっと簡単な方法ありますかね?
ダウソなら、 Commons FTP, Commons VFSを使うという手もあるぞ。
log4j PatternLayout の出力結果パーサーってある? pattern を元にインスタンス生成して、出力結果の渡すとメモリ展開してくれるようなやつ。
826 :
デフォルトの名無しさん :2007/02/24(土) 11:37:10
Commonsじゃなくてもいいのですが、Javaでパスワード付きZIPの作成・展開ができるフリーのライブラリってありますか? どなたかご存知でしたらご教示下さい。
おれはコマンド投げたなたしか。探せばあるんじゃないの?
>>825 意味が解らないんだけどさ。
XMLで出力できるクラスやメソッドなかったっけ?
Java Logging APIにはあるんだけどさ。Log4jにも
あったような気がするね。
それを使ってXMLパーサでどうにかすればいいんでは。
>>828 >>825 がやりたいのはそういうことじゃないと推測してみた。
XMLじゃなくて、あくまでPattern Layoutの出力結果をパースしたいんじゃないの?
log4j.xmlに設定したパターンから解析してパースしてくれるものが欲しいんじゃないかと。
結論としては、そんなのはPattern Layoutの使い方を間違っていて
>>828 のようにするのがスジだと思うんだけどさ。
どうしても欲しかったら自作するしかないと思う。
面倒だけど、これぐらいならやってやれないことはない。
>>826 時間賭けてググッタが
見つからなかったよ。
自作するのはどうだい?
パスワード付きZIPアーカイバの
ソースコードや仕様を解析してさ。
831 :
825 :2007/02/25(日) 03:02:34
>>828 >>829 説明不足スマン。
別のシステムの出力結果を読み込んで解析しろってゆう要件。
JDBCAppender や XMLLayout を使ってくれれば、それに越したことは無いんだが。。
パフォーマンスの都合で使いたくねぇって言われて。
832 :
825 :2007/02/25(日) 03:17:13
追記。 ググっても無さげだったから、正規表現でやっつけた。 確かにこんなモン需要無いよね。。
>>830 やっぱりそうですか・・・。
自分でも結構探したんですがだめでした。
さすがに自作するほどのスキルはないんで、さくっとあきらめます。
圧縮のアルゴリズムがわかり、 かつ、圧縮されたパスワード付き書庫バイナリファイル を解析すれば、 どうやってつくればいいかわかるかもしれんよ?
>>831 パフォーマンスの都合って
どういうスペックなんだか、
ログファイルを一旦別のサーバの
コピーしてから解析なり
フォーマット変換なりすればいいだけじゃないかと
思うんだが。
>>835 ログ出力時のパフォーマンスのことじゃね?
・・・XMLLayoutもPatternLayoutもそんなに変わらないようにおもうけど・・・
837 :
825 :2007/02/25(日) 15:25:51
>>836 そう。出力時の事。
解析はFTPで取りに行ってバッチ処理する。
ネットワークとか使うAppenderが遅いってのは分かるけど
ファイル出力のレイアウトは大差ないよね。多分めどくさいだけ。
>>838 パスワード付きzipで、新しい方の暗号化を指してる事ってどんぐらいあるんだろか?
WinZip方式の方はオープンじゃなかったっけ?
840 :
デフォルトの名無しさん :2007/03/03(土) 02:18:12
ToStringBuilder.reflectionToStringの逆変換(Object化)って無いの?
無理いうな
>>840 何を考えているのか。
可逆だぞ
ハッシュみたいなもんだし
可逆ならできるだろw
不可逆の間違いだな
commonsでなくてもよいのですが、jpegやgifファイルを編集(横に伸ばすする程度)するライブラリありますか?
それって普通に自前でかけよと思うのだが Javaのコードで5行程度じゃね?
>>849 標準のクラスでいけますか?
それ教えていただけることはできないでしょうか?
java.awt.Image#getScaledInstance(width, height, hints)
>>851 ありがとうございます。
ちなみに、WEBでいろいろなグラフを出したいと思っているのですが、
JFreeChartやJChartなどがあるらしいですが、
何が一番よいでしょうか?
Commonsから離れてしまってすいません。
853 :
デフォルトの名無しさん :2007/04/04(水) 11:25:53
>>852 JFreeChartの方が情報多そう。
xmlをフォーマットするクラス知ってますか? XMLConfiguration.save()はだめでした。
Sunの標準ライブラリでもバグや不具合が結構あるのに、 さらに、こんなライブラリ使ってる奴の気がしれない…。
まあ大元はIBMの研究所や製品開発部隊の半製品だったりしたわけだがw 机上の空論大好きな豆腐頭には、理解が難しい現象かもなw
だからなに? IBMとかメジャーな名前みると盲目的に信用しちゃう人? 勧誘とか気をつけろよ。
似非コンサルよりはよっぽど信用するけどな。 一緒に仕事した仲だし。
似非コンサルなんて付き合ったことねーからワカンネ。 恵まれてないね。 じゃぁ障害出たときも安心だね。IBMに気軽に文句言えるね。
なんじゃそりゃ?Apache JakartaとIBMは今じゃもう関係ないだろ。 個別にメンテナーと相談して、自分で治しながら使っときゃえーんじゃないの? オープンソースって
>>860 確かに似非コンサルと一緒に仕事すると,
信用とかどっかに吹っ飛ぶよな(笑)
関係ナッシング。 スルーして被害を最小限度に留めるだけ。 でも、ちょっとだけ、 人間という素晴らしい存在への信頼感が揺らぐ。 それが悲しい
>>862 なんかのんびりしてるな。
オープンソースでシステム構築してるのが判る気がする。
ひたすら会議と政治に明け暮れる大規模開発は、 争い事の好きなバカがはびこりがちだから、 本当に開発が好きな奴は避ける。 全体をコントロールしやすい範囲で 効率的に仕事を進めるのがベターな生き方。 あなたは自分の生き方を自分でコントロールできない状況に我慢するのですか?
大規模開発向けミドルウェア開発ならまだ面白みがあるけれど。 大規模開発って要するにプロジェクト予算に人足手当てを入れ込むためのダミーでしょ。 そんな仕事にまともな人間が興味を示すわけがない。
>>866 開発規模と業務でオープンソースを使う、使わないは
関係ないことに気づけ。
あなた開発者というよりマネージャーに近い立場じゃない?
コントロール効かなくなる類の人生には一切興味がない。 だからキミが話を大規模開発に敷衍しようがしまいが、 一切興味がない。
870 :
デフォルトの名無しさん :2007/04/08(日) 20:45:13
お前らすこしスレタイを眺めてみようか
で?
要するに、プロジェクトサイズにせよ、ライブラリソースにせよ、 自分でコントロールできる範囲でやるのが一つの良い生き方って話。
人の作ったものが信用できない奴は、 そもそもJavaなんて使うほうが間違ってるよ。 アセンフラで書くなり、 マシン語で直接書くなりしたほうがいいんじゃね?
人が作ったMPUなんか...って話になるからやめれ。
他人の作ったハードが信用できないのでハードも自作するハメになります。
結局「保証」「責任」というところに落ち着く。
「保証」「責任」など幻想
話がどっちとも取れる転び方をしているのが笑えた。 何が信用できるって言ってるんだこいつは? 保証/責任とか言ってるから、どうせ(ry
頭の悪い奴の議論は、常にポイントが的外れ
>>879 何を言いたいのかわからないな。
具体的に頼むよ。
882 :
デフォルトの名無しさん :2007/04/09(月) 00:11:21
子供はもう寝る時間だぞ
ベンダーが保証しているプロダクトを選んだ奴に仕事を任せた奴を管理した奴を採用した奴に人事を任せた奴を採用した奴を産んだ奴との結婚を認めた親を育てた奴の責任?
この手の会話で主語をしっかり書かないのは 自信のなさの現れだろう
885 :
デフォルトの名無しさん :2007/04/09(月) 00:31:53
スレ違いもわからない奴らのバカ決定戦は他所でやれよ
バカに直接言え
オープンソースコミュニティのなんの貢献もせず、 ソースすらまともに読んだこともないのに、 「オープンソース最高!」と根拠のない奇声を発してるのが 現在の日本のオープンソースユーザーの現状。 だから キ モ イ っていわれんだよw
ほらバカが来たぞ
しかし2chって面白いね。 朝から相手してくれる人いるし。 ちょっとした燃料でもすぐ反応してくれるし。 つかオープンソースなんてどうでもいいんだよね。 なんで金とらねーんだろう?もったいね・・・としか思わん。
朝から暴れてるのはお前一人
似非コンサルって暇なんだな
池沼が落書きに過ぎんものを「燃料」と呼ぶあたりに、 どうしようもない底辺生活者の乾きを感じた。
そんな俺に付き合ってるのはおまいら二人。 お互い暇だな。 しっかしなんで金とらねーんだろう・・・って不思議 だねぇ。apacheなんて金とりゃいいのに。
>>856 おおおお、すばらしい。標準ライブラリでこんな便利なものがあったのですね。
javaはクラスが多すぎて、利用価値があるクラスを見つけるのが厳しいなぁ。
ありがとうございます。
宗教論争でスレが伸びるとうんざりするが、 894みたいな発言があると嬉しい。(856は俺。) > 利用価値があるクラスを見つけるのが厳しい わりとカオスですよね。 だからこのスレとかは重宝するんだけど。
ASIPってなに? ググってもそれらしきものが出てこない…。 おせーてエロい人!(コレが言いたかっただけ
あ
poiはword、excelだけでpdfはないのですか
>>900 OpenOfficeのAPIつかえ。
書き出しはできたはず。
詳しくはググれ。
PDFならiTextがお手軽じゃない?
iTextで1からガリガリ書くのはお手軽な気がしないような。
印刷APIとおなじようなもんだろ その他のはライブラリに振り回される可能性がある
OpenOfficeのAPI使った場合 Writer or Calcドキュメント作成からPDF出力まで 全部JavaAPIでできるんですか?PDF出力しか やったことねーんだけども。
JasperReportはどうよ
910 :
デフォルトの名無しさん :2007/04/22(日) 16:08:45
Java Logging APIはLog4Jより、17%ほど手元のベンチで遅延が出たが 設計そのものはこっちのほうが綺麗な気がする。 こっちのハンドラやロガーのライブラリって無いのかな
Collectionsいい加減にでないかな
Generics対応版のCollectionがさ 早く出て欲しい
>>912 自分の世界が全ての人間なんでしょう。きっと。
なんだこのもりあがらねークソスレ。 まるで日本でのオープンソース事情を見ているようだ。ぷw
917 :
デフォルトの名無しさん :2007/05/04(金) 14:35:09
commonsIOのFileFilterを使って階層無視して検索みたいなことってできないのでしょうか。
ReflectionToStringBuilderってネストしたクラスの再帰的toString()出力はできないのでしょうか?
ネストされる側にも入れておけば、きっちり出力されるよ
>>921 2.3のリリースノートにスタックオーバー修正って書いてあったから再起できるのかなと・・・
jdoc見たけど再起処理はなさそうだね。
簡単に書けそうだけどな。 Commons にあればっていう話か。
>>923 実はtoString()はオーバーライドするなといわれています。出力したいのが客先のbeanで
そのtoString()が使えないんで。やっているのがtoString()のオーバーライドでなく
ReflectionToStringBuilder.toString(bean);なんですよ。
だから再起が出来れば楽かなと。本当はオーバーライドしたいんですけどね。
>>924 Aspectで無理矢理……って訳にはいかないよね。
自分でReflectionToStringBuilderもどき書くしかないだろう。
以前ReflectionToStringBuilderの存在を知らなくて自前で書いたことがあるけど、コメントをそこそこ付けても100〜200行で収まった気がする。
>>925 どんな高機能なコード書いてんだ?
俺は commons が使えないプロジェクトでは自分で書いたが
10行ぐらいだったけど。再帰しても15行ぐらいか。
>>926 toString オーバーライドせんでも
普通に再帰的にオブジェクト階層の中に入って
setAccessible(true) で見るだけでいいんじゃね?
927 :
デフォルトの名無しさん :2007/05/20(日) 23:45:05
>>926 925じゃないけど、循環参照な構造のオブジェクトに対応させようとすると、
結構行数が必要だった気がする。
配列とCollection, Mapあたりを再帰的に処理するコードも結構行数が必要になったな…
ReflectionToStringBuilderコピって改造すりゃエーヤン
commons-lang の使用を許可してくれるよう、 上とかけあった方が有意義じゃないか?
>>799 > getterがないフィールドも出力可能
ってどーやるんですか?
Betwixtを使いたいんだけど、XMLに書き出すと空文字(Stringの"")が反映されない。 なんか設定あるのかな? 助けて
932 :
デフォルトの名無しさん :2007/05/24(木) 03:11:08
あげ
>>931 <elem></elem>
↓
<elem />
になるってこと?それはしょうがないと思うけど。
ほとんどのパーサーつかってもちゃんと空文字としてよめるし、
出力しても省略タグになるよ。
似たような話題が出てきたので聞きたいのですが、 HTMLのtextareaみたいに、<textarea />って記法を認めず 必ず <textarea></textarea> にしなきゃいけないようなものを扱うのに 適したライブラリってあります?
ライブラリはないんじゃね? 普通に考えて。
JSON
938 :
931 :2007/05/29(火) 15:08:44
>>933 ごめんなさいpropertyです。
<status code="" />
↓
<status />
になる。
空文字だとダメだ。DTDで必須なんです。
一緒かも、空の属性をオブジェクトにするとnullになる。 諦めます。 レスくれた人ありがとうございました。
941 :
デフォルトの名無しさん :2007/06/11(月) 13:17:19
ここでいいのかわからないけど。 Log#error(Object, Throwable)の引数のObjectって何わたしてる?
942 :
デフォルトの名無しさん :2007/06/11(月) 20:12:19
thisだお
>>941 通常はエラーメッセージだよ
好きなオブジェクト送って、自前でlayout実装することもできる。
944 :
sage :2007/06/12(火) 10:53:05
emailってIMAP対応していないんだね・・・
フリーなバーコード作成ライブラリって知ってますか? commons以外でも知っている人いたら情報お願いします。 今のところ製品しか見つからなくて・・・・
POIでExcelかAccessにやらせる
>>948 そもそもエクセルでバーコード作成機能なんてあるのでしょうか?
Excel も Access も製品なんですが
>>947 携帯のJavaにはバーコード作成ライブラリ付いてるよね
commons にバーコード作成ライブラリがあったのか。知らなかった ><
>>951 j2seとj2eeにはなくj2meとかってやつですか?
excelやhtmlのファイルをpdfに変換するにはOpenOfficeのJOOConverter が手っ取り早いでしょうか。 POI→JOOConverter で帳票を作ろうかと思っています。
QRコードのエンコードライブラリでちゃんとしたのってありますか?
commonsにあったのか・・・
逆に
>>956 にききたい
ちゃんとしてないのはどこにあるの?
それcommonsじゃないからちゃんとしててもちゃんとしてなくてもここではかたらんよ もしかして質問者、ここのスレ単なるJavaのスレかなんかと勘違いしてるとか
961 :
デフォルトの名無しさん :2007/07/02(月) 22:56:45
CSVを読んだりINIファイルを読んだりするライブラリはありますか? リストやマップを色々と操作するライブラリはありますか?
commons csvってのがsand boxにあったような
>>962 見てみました。
ファイル多すぎw Jakartaの暗黒面を見た気分ですw
commonsのsmtp関連って使っているひといますか? 使おうと思ったけどエンコード思うようにいかなくて javax.mailの方に手を出したら結局そっちだけで用が済んでしまい わざわざcommons使うまでもなかったっていうか・・・
というかいじらないとダメで結局commonsのはつかえない 日本語使わないのなら問題はなかったような
mime とか attachement とか multipart とかはやってくれるんだけどそれだけ
これはC++で言うとboostみたいなもん?
Commonsは小規模でどこのプロジェクトでも同じコードをかきそうなライブラリを公開して書かないようにしようというもの boost相当は標準APIでほとんどまかなえるため感覚はかなり違うかと
PerlのCPANみたいなもん、の方が近いかな Cは実行環境での動きの差を吸収するのがめんどいから、そういうのなかったんだろうね。
xquery使えるライブラリありますか?
>>971 ついにCommonsもTLPか・・・。
というか、Jakartaプロジェクトはどうなるのだろう?消滅?
あと、Javaだけじゃなくて他の言語の共通ライブラリも今後は扱うのだろうか?
やっぱりWindowsでもLinuxでもSolarisでも動くってのは大きいね。 ユーザー数が段違いだ>Javaのプロダクト
Apache Httpd以外は全部Javaって印象がある。 Xercesとかあるし、勘違いは間違いないんだろうけど。
次スレ(に続いて欲しい)は jakarta がスレタイから消えるのか。 もうじき1000って時に良いタイミングで jakarta を飛び出した気がする。
velocityスレでレスなかったのでここで聞かせてください。 テンプレートで使用するキー名に、日本語は使えないのでしょうか? ●ソース ctx.put("あああ","いいい"); ●テンプレート ${あああ} ${あああ}がそのまま出ます。これは対応無理ですか?
>>977 Apache Velocity - Velocity User Guide
http://velocity.apache.org/engine/devel/user-guide.html ・Variables
The shorthand notation of a variable consists of a leading "$" character followed by a VTL Identifier. A VTL Identifier must start with an alphabetic character (a .. z or A .. Z).
The rest of the characters are limited to the following types of characters:
alphabetic (a .. z, A .. Z)
numeric (0 .. 9)
hyphen ("-")
underscore ("_")
アルファベット、数字、ハイフン、アンダースコア以外は無理じゃないかな。
>>978 おおおおおお、なんと・・・
ありがとうございます。
Velocity なんでそんなへぼい実装なんだ・・・
そのかわり { } 省略できるから楽だよ
その程度の省略・・・
キー名っていうかVTLの変数扱いだからそれでいいのでは? 日本語で変数名つけてるの?
Validate.isTrue(n>0) と書くつもりが手が滑って Validate.notNull(n>0) と書いてしまっていて、オートボクシングでコンパイルが通って しかも実行時は常に真になっていた。 なんだか、カルチャーショックだった。
>>984 お前がどういう文化に属しているかが俺にはよく分からない。
>>977 文法忘れたけど、いったんMapに入れて、
${map.あああ}だか何だかでいけたと記憶してる。
VelocityはJSPのELと違ってそのままメソッド呼べるから $map.get("あああ") でいけるよ。