JSFワークショップに行った方法

Ajax WorkshopとJava Server Faces-新しいレベルのJavaテクノロジー。

短いレポート。

2008年4月24日の出来事に関する小さな意見。 opusを読んだ後、Java SEバージョン6とWebサービスがどのように友達になったかを学び、JSFについての2、3の行、JAXについて少し読んでください。



4月24日、私は幸運にもJSF全般、特にJSF + AJAXに関するセミナーに参加しました。

すぐに言います。技術的な理由で、講義を完全に聞くことができませんでした。





プロローグ

ITアカデミーの教師で、文字通りかつ比fig的に最も古いミハイルヴァシリエフは、オープニングアクトで講演しました。 ミハイルは、議論しながら、JavaSE 6、Webサービスとその展望について話しました。 彼は、1年前、彼が教えたコースに参加することで、ミハイルのおかげでジャバと知り合いになりました。 講義のあるノートブックはまだ私の所持品です。 5営業日の間、私は多くの新しいことを学びました。とても気に入ったので、Javaの宗教に奉仕することに専念することにしました。

視聴者を偏見のせいにするのは理にかなっていないが、多くの人はリリースごとにJavaがより速く、より高く、より強くなっていることを聞いて喜んでいた。



アクション1

個人的には、Webサービスとそのクライアントを作成するためのAPIが標準のJDK SEに含まれていることが明らかになりました。 一方で、それは良いことですが、他方では、サーバーなしでは遠くまで行けず、少なくとも1つの怪しいApache Tomcatをインストールする必要があります。



ミハイルはウェブサービス(ビン、SEIなど)のアーティファクトの自動生成について多くのことを話しました。 マイケルによると、JAX-RPCは死に、新しい王、JAX-WSが長く生きています。 試験「CX-310-220-Java Web Services Developer」で、彼らはJAX-WSについて尋ねます。



彼らはSOAPについて多くのことを話しました。 私はすぐにプログラマーの言葉を思い出します。プログラマーは私の友人の友人で、XMLには情報よりもタグがあると言っていました。



生成されたWSDL'inについて話すと、名前のないXML中傷者の言葉は真実に近い。 今、話は私からです:Webサービスに送信されたSOAPメッセージをスニッフィングしなければならなかった(phpとJavi Webサービス間の友好関係を確立していました)。 タグのシェアは、送信された有用な情報とほぼ等しいことを確認します。 これらの言葉は、人気のあるプログラマーの考えをすぐに思い出します-「普遍性を得るとき、何かを犠牲にしなければならない」。 はい、パフォーマンスとチャネル負荷を犠牲にします。 マイケルはアルカテルの会社のフォーマットについて言及しました。その専門家はSOAPメッセージの代わりにバイナリデータを送信します。 一方では、節約は明らかです。他方では、Webサービス(またはそれらを呼び出すもの)を操作しようとするときに発生する問題は明らかです。



参加者は、非友好的な人と友達を作るには、Webサービスを使用するのが最善であるという結論に達する必要がありました。 もう一度、EJBという自分自身に対するひどい言葉を聞きました。 聞いた、知っているが、試していない。 EJBコンポーネントの遅さ、重さ、高度な複雑さについて言及し、これらすべての欠点のないWebサービスを喜んでいます。 Webサービスには、EJBのすべての利点もありません。トランザクションの状態監視、オブジェクトの状態監視。 私は他の人を覚えていませんでした。 Webサービスが少なくとも状態を制御できれば、プログラマーの人生は再び明るい未来への楽観主義と信仰の明るい色で咲くでしょう。 私はトランザクション性について話していません。 Michaelは、すべてのW3CスキームをサポートするJAXBの新しいバージョンについて話しました。 これは前に起こったことがありません。 また、以前にJavaオブジェクトをXMLから取得できた場合、逆の操作がサポートされるようになりました。 JAXB 1.0にはそのようなラズベリーはありませんでした。 XMLの愛好家のために最大限にマーシャリングとアンマーシャリング。

RESTテクノロジー-Representational state transferを思い出しました。これにより、SOAPサポートなしでHTTP経由でxmlを直接転送できます。

SE 6のWebサービスのアノテーションは少し驚いていました。以前にそのようなものを書いた場合:

myService.getServiceLocator(新しいURL( " lol.ru/MyService "))

現在、類似したものが、結果のサービスインターフェイスのインスタンスの上のコードにコメントアノテーションとして記述されています。 ここで何がクールなのか理解できませんでした。 私の意見では、それは以前にも劣らず便利でした。 JAX-RPCのbase_64を完全に忘れていました。 彼を少しscりました。 XMLは文字データ、バイナリデータ(写真、xxx.exe、myDiplom.rar)のみを受け入れるため、base_64を使用してエンコードされた形式で送信されました。

JAX-WSでは、バイナリデータはバイナリデータとして送信されます。 やあ、人生はもっと楽になり、もっと楽しくなりました。

MichaelはMetroプロジェクトについて話しましたが、彼自身はそれが何であり、なぜそれが必要なのかを本当に理解していないように思えました。 休憩が近づき、考えは房に集中し、ビュッフェに送られました。



休憩

休憩中、ソプロマットの年配の先生に似た遠くから来た男性が、彼のトリッキーな質問でミハイルを攻撃しました。 彼らは、トピック「Big-Big Enterprise、およびWebサービス」について議論しました。 その後、会話は私のお気に入りのJava言語の可能性に向かってスムーズに流れました。 出席者の誰も、「メソッドとフィールドをその場でクラスに追加することは可能ですか?」という質問に自信を持って答えることはできませんでした。 頭をうなずき、ノーと言った人もいました。 私はオフィスの同僚と議論の余地のある状況について話し合ったが、それは可能であることが判明した。 さらに、ディスカッションの参加者はRuby on Railsの賞賛を歌い始め、私はタバコを吸うことにしました。



アクション2

レポートの冒頭で述べたように、JSFの講義を最後まで聞くことができませんでした。

サンのサンクトペテルブルク支部の従業員であるビクター・クドリャシュキンは、JSFについて話しました。

ストーリーの中で、私は次の事実に混乱しました。JSFには特別なもの、つまりバリデーターがあります。 これらはデータの検証に使用されます。たとえば、ユーザーが入力したメールアドレスを確認する必要があります。 これを行うために、 validatorExceptionスローする public void validateEmail(String userEmail)メソッドが作成されます。

一番下の行は、ユーザーが入力中にミスを犯し、メールが有効でない場合、メソッドはカスタムメッセージで例外をスローするということです。 上記で例外がキャッチされ、「何とか何とか、正しいメールを入力してください」というメッセージがユーザーに送信されます。

例外的なロジックは、私に道化を思い出させます。 同時に10個のソーセージとジャグリングします。どちらの端をつかんでいるかわからないだけでなく、手から滑り落ちます。

私は論理的な質問をしました:「なぜ?」

ビクターは、そのようなアプローチが存在し、存在すると言いました(私は、夏には冬用タイヤを使用する人もいますが、それは誰もがそれをする必要があるという意味ではありません)、そしてそれさえ使用されます(例えば、ベトナムのフォーラムではmvnforumと呼ばれます ) 後で判明したように、Victor自身は例外を台無しにしないことを決め、 type返すようにメソッドを設定しました。



私の知る限り、人気のあるlog4jチップはさらに悪い。 log4jでは、メッセージ出力形式で、レコードの生成元のメソッドを指定できます。 log4jがログを書き込むメソッドを見つけるために、例外をスローし、キャッチして、トレースレースを解析します。 現在のメソッドを検出する他の方法はありません。 私が間違っている場合は、私を修正してください。



それでも、クラスのメソッドが値を返すことができるのは無駄ではありませんが、そうでなければ人々が思いついたのは無駄ではありません。

それから謝罪し、さよならを言って、私の好きな仕事に走りました。



All Articles