• ベストアンサー

SUNからダウンロードしたJ2EEは使えないの?

SUNからダウンロードしてきたJ2EEでは、サーブレットとかJSPとかEJBは動くと思うのですが、普通、フリーのソフトだと、サーブレットやJSPコンテナにはTomcatを使ったり、EJBコンテナにはJBossを使ったすると思うのですが、なぜSUNのJ2EEではだめなのでしょうか。まただめでなかったら、TomcatやJbossを使うメリットというか、何か理由があるのでしょうか。もしくは、SUNのJ2EEをそのまま使えない、また使いにくいといった理由があるのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • persona
  • ベストアンサー率57% (4/7)
回答No.1

まず、EJBはリモートで動かすためのJavaBeansですよね。 そのためには、deployさせないといけない。 そうなってくると、TomcatのようなWebAPサーバやJBossなどが必要になってくるのではないでしょうか。 また、WebAPサーバなどはJ2EEを準拠して作られているため、 便利ツールなども踏まえてJ2EEの機能をより使い易く サポートしている点が挙げられるのではないでしょうか。 トランザクション処理などがいい例かもしれません。

chukanshi
質問者

お礼

deployはSunのJ2EEでもできますが、やはり、Tomcatなどのほうが、機能をより使いやすくサポートしているのでしょうね。回答ありがとうございました。

その他の回答 (2)

  • persona
  • ベストアンサー率57% (4/7)
回答No.3

まず、自分もそんなに詳しくは無いので頭の片隅に入れて おく程度で見てくれれば、と思っています。 トランザクションを制御する方法は2つあって、1つは サーバー側で制御する方法。これが前回の形式ですね。 2つめが、クライアント側からトランザクションを制御 する方法があります。 その場合、EJBクライアントのソースコード上にEJBの Beanに対するbeginとcommitを明確に記述する事で制御が 可能だそうです。 ただ、分散トランザクション処理まで行くとどうなるかは、 明確にお答えする自信がないので、控えさせて頂きます。

chukanshi
質問者

お礼

いろいろと教えていただきありがとうございました。

  • persona
  • ベストアンサー率57% (4/7)
回答No.2

言葉足らずの上で、お礼を頂くのも恐縮なんで、少し補足説明を。 トランザクションの部分があいまいでしたね。 何を言いたかったのかというと、トランザクション処理は、 beginで始まり、commitで終了するという決まりがありますよね。 でも、EJBでの場合、複数のEJBをまたいでの処理が生じた際に、 開発者の意図しない部分で、勝手に開始や終了が行われることが あるそうです。 そのために――全てにと断定する事はできませんが―― WebAPサーバのコンテナ内で、EJBを呼び出した際に自動的に beginとcommitを呼び出してくれるそうです。 その代わり、EJBのソース内でbeginとcommitを記述しないという 決まりみたいなものがあるようなのですが。 これにより、後はそのプログラムの中で新たにEJBのBeanを 呼ぶ際には、その振る舞い――トランザクション属性と言われる ものですが――これを指定するだけで効率のよい処理が可能と なるようです。

chukanshi
質問者

補足

トランザクション管理の詳しい解説ありがとうございます。ってことは、SUNのただのJ2EEではトランザクション管理ができないのでしょうか?たびたび質問ですみませんが、どうなんでしょう?

関連するQ&A