1 名前:デフォルトの名無しさん mailto:sage [04/04/12 04:47] Web アプリケーションサーバ WebObjects の質問スレ
349 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 08:29:58 ] WebObjectsのview層って、HTML以外でも生成できますか。 <webobject name="foo">...</webobject> というのを使っているから、HTMLかXMLしか生成できなさそうなんですが、例えばcsvとか普通のテキストファイルも生成できますか。
350 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 17:06:45 ] >>349 データそのものは何でも送れる。(アップルのサイトにpdfを送付するサンプルがあった) (ただし、転送プロトコルはhttp又はhttpsのみ。) // CSVを生成 NSData csvData = ...; // データをHTTPレスポンスに組み込む aResponse.setContent(csvData); // 不要なヘッダの除去を指定 aResponse.disableClientCaching(); aResponse.removeHeadersForKey("pragma"); aResponse.removeHeadersForKey("expires"); aResponse.removeHeadersForKey("Cache-Control"); // IEでダウンロードさせるための指定 aResponse.setHeader("public", "Cache-Control"); aResponse.setHeader("public", "Pragma"); // HTTPヘッダーのContent-Typeを設定 aResponse.setHeader("text/csv;charset=Windows-31J", "Content-Type"); aResponse.setHeader("attachment;filename=\"myCsvName.csv\"", "Content-Disposition");
351 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 21:50:07 ] >>350 送れるかどうかではなくて、WebObjectsのView層というか、いわゆるWebObjectのテンプレートエンジンでHTML以外の形式が生成できるかどうかについて聞きたかったんですが。 特に問題ないですよね?きっと。 いや、WebObjectsをパクったTapestryというのがあるんですけど、これがなんかHTMLしか生成できないみたいなので。 WebObjectsはきっと違うと信じてる。
352 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 02:16:46 ] >>351 具体的に何をしたいのでしょうか? 根本的に道具の選択を間違っているような…… (ペーパーナイフで十分な所で、チェーンソーの準備をしていませんか?)
353 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 11:19:42 ] >>352 したいのは、テキストファイルとCSVファイルをWebObjectsで動的に生成すること。 分かりにくい質問だったかな。 Tapestryはテンプレートの解析にHTMLパーサを使っているようなので、HTMLしか対象としていない。 でもWebObjectsは <webobject ...></webobject> を使っているみたいだから、これならHTMLパーサを使ってないように思う。 で、そのへんを詳しい人に確認したいだけなんだけど。
354 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 12:03:35 ] 来んな!!
355 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 23:49:41 ] >>353 WOComponentのtemplateメソッドと、templateWithHTMLStringメソッドでhtmlを解析してWEBOBJECTタグを置換している。 こいつらは大雑把な検査しかしてないから変な記述をしても通ることは通る。 しかし…… これでcsvを生成するのはリンゴの皮を剥くのにチェーンソーを使うようなものだぞ? (どう考えても素のjavaでテキスト操作をした方が簡単に思える)
356 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 23:50:24 ] >>353 今さらWebObjectsでそんな作りこみなんて、よく顧客が納得したな 大きなメンテが必要になった時点でどうせ全部.Netあたりで作りなおしなのに
357 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 23:18:27 ] >>355 >WOComponentのtemplateメソッドと、templateWithHTMLStringメソッドでhtmlを解析してWEBOBJECTタグを置換している。 >こいつらは大雑把な検査しかしてないから変な記述をしても通ることは通る。 確認なんだけど、HTMLパーサは使ってないんですよね? 単に <WEBOBJECT> タグしか認識しないんですよね? >しかし…… これでcsvを生成するのはリンゴの皮を剥くのにチェーンソーを使うようなものだぞ? >(どう考えても素のjavaでテキスト操作をした方が簡単に思える) しかし、アーキテクチャとしては *.html も *.txt も *.csv も *.json も、動的に生成するものならなんでも統一的に扱えるわけだから、そのほうがいいと思います。 *.html とそれ以外でview層を分けるようなことをするほうがアーキテクチャとして間違っていると思いますけど。
358 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 00:16:31 ] >>357 Webアプリ作成に特化したツール、それも最も古いツールに対して何を期待している? テンプレートの解析部分は、手抜き実装だけど一応htmlパーサ。 テンプレートにhtmlのコメント文を書いてみれば判る。 そもそも、生成された文字列は標準出力にしか出力されないんだが。 (CGIとして動作するプログラムが他に出力して意味があるか?)
359 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 02:40:15 ] >>357 > しかし、アーキテクチャとしては *.html も *.txt も *.csv も *.json も、動的に生成するものならなんでも統一的に扱えるわけだから、そのほうがいいと思います。 そういう設計ではあるが、あくまで基盤だけ。実際に各種フォーマットを扱えるようにするにはその上のレイヤーを作らないといけない。 どうしてもWOでやりたいなら、 * (標準出力以外への出力が欲しいなら)自前のWOAdaptorサブクラスを書いて、 * (コマンドラインから使いたいなら)Monitarやwotaskdを使わずにWOApplicationインスタンス作って、 * WOComponentのインスタンスも作って、扱うフォーマット通して、 * 必要ならテキストパーザもエレメントも自前で実装して… くらいの手間がかかるかもしれん。まあこれは極端な例だが、なんせWebブラウザとHTMLをやりとりするだけでフレームワーク (WebObjects.framework) が一つできるからな。そこまでする価値もないだろ?
360 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 03:01:46 ] >>358 > テンプレートの解析部分は、手抜き実装だけど一応htmlパーサ。 > テンプレートにhtmlのコメント文を書いてみれば判る。 うそーん、無駄によくできてるのか。 じゃあ、HTMLしか出力できないでFA? > Webアプリ作成に特化したツール、それも最も古いツールに対して何を期待している? HTML以外も同じように扱えること。 >そもそも、生成された文字列は標準出力にしか出力されないんだが。 今問題にしているのは出力形式であって、出力先は関係ないよね? >(CGIとして動作するプログラムが他に出力して意味があるか?) 意味不明。
361 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 12:44:31 ] 自分の認識では、テンプレート(*.wo)はHTML形式じゃなくてもタグは置換されるし、レスポンスヘッダは自由に書き換えられるので HTMLしか出力できない、という認識は持っていない。 XHTMLやRSS出力もやったことあるし・・・・。 「できんの?できないの?」の議論よりは、なんかサンプルつくってみて「どーよ?」的な方が建設的で健康的じゃないかと。 iTSがWebServicesでやりとりしてるのをみると、かなりカスタマイズしてんだろうなーと思う。あのへんのノウハウを是非WO6なんかに入れてもらいたいw
362 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 15:46:20 ] >>361 すでにRSSの経験があるなら、ここで聞く前にやってみればいいんじゃないか?誰もできないとは言ってないよ。
363 名前:361 mailto:sage [2007/10/24(水) 17:08:58 ] >>362 すまん、自分は質問者と思われる360じゃない... orz
364 名前:362 mailto:sage [2007/10/24(水) 21:11:04 ] >>363 orz
365 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 10:17:46 ] TOYOTAの新卒採用サイトwebobject使っているのな。ちょっと驚き
366 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 15:32:31 ] マジかw 車屋でシステムの知識がないからなのか? WOにすべてを捧げて捨てられたホームレスたちへの情けか? ただ金が有り余ってるのか? 冷やかしかネタか? いずれにせよほめられたものではないな。 6.0が発表されてAppleがまだ捨てていないという姿勢を明確にするまでは放置した方がいい。
367 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 18:02:56 ] ついに WO採用=頭大丈夫? の時代にw
368 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 18:54:27 ] 3年と8ヶ月かけても400に届かず、質問スレというスレタイだが質問といえば 開発終了したの? WebObjects(笑) この盛り下がりっぷりはほかにはないWOの特徴。
369 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 22:11:49 ] 相変わらず先進的な方に入るはずなのに、あまりにも盛り上がらないこの不思議。 人月商売には害になるから?
370 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 23:35:27 ] 良いものが売れるとか盛り上がるはずだとかいうのは幻想 パンピーはそんなの気にせず目に触れたものに手を出す 所詮は営業力の勝負
371 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 23:55:52 ] 結局、使っているのは怪しげな連中ばかり
372 名前:デフォルトの名無しさん mailto:sage [2007/12/03(月) 20:46:30 ] 他人と違うもの使ってると不安になるひとには向いてないね んで オリジナルなひとばかり集まると
373 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 00:46:33 ] 一般的な顧客=他人と違うもの使ってると不安になる
374 名前:デフォルトの名無しさん mailto:sage [2007/12/04(火) 07:50:45 ] まぁ利用者が少ないっていうのは なかなか枯れないとか メンテナンスすらされなくなって放置とか 不幸な結末を迎えるケースもあるからなぁ MSみたいに大勢が使ってても いつまでたっても枯れないシステムもあるが
375 名前:デフォルトの名無しさん mailto:sage [2007/12/05(水) 17:58:56 ] 日本百貨店協会もWebObjectだったりする
376 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 00:11:14 ] Leopardを新規インストールして、付属のXcodeとWebObjectsをインストールしたんだけど、 EOModelarとかが見当たらない・・・。XcodeにWOのテンプレもでないし。 なくなったんでしょうか?
377 名前:デフォルトの名無しさん [2007/12/07(金) 01:26:36 ] ググレカス>>376
378 名前:デフォルトの名無しさん [2007/12/10(月) 16:08:19 ] だいだなRequest1件しか受け付けないこと自体クソだろ? setAllowsConcurrentRequestHandling(true); なんかしてみたらEOFでデットロックする代物じゃんwww
379 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 16:59:58 ] >>378 ttp://d.hatena.ne.jp/carver/20070620 ずっと前から setAllowsConcurrentRequestHandling(true); にしてもデッドロックしたことなんて只の一度もないけどな。
380 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 21:09:35 ] >>378 EOの使い方が変、に100ガメル。
381 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 11:33:13 ] うーん、でもな、オブジェクト(EO)のデッドロックだったら、ちょっと前のEOFなんかだと結構簡単に出てたよ. リリースノートにそんな感じのことが書いてあった希ガス.今は改善されてるんかもしれない. WOFもそうだけどやはりコンテクストというWebアプリでは制御が難しいカラクリをベースにしてると 複雑度が増してしまうんだろうな〜とオモタ.へんなSQLが飛ぶからDB側でのデッドロックも起きやすいヨとDB屋からも指摘されたことがある. 参照系はEOじゃなくてCollection系で、CRUD系処理のごく短いトランザクション処理でEOを使うようにしてる. 機能はとても良くできてるだろうけど、安全に使いこなせるようになるのに時間がかかるという感じかな
382 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 22:57:15 ] >>381 デフォルトecと、参照専用のshared ec だけ使っていれば、滅多に競合なんてしない。 ■参照系こそEOを使うべき。リレーション張らずに何のためのEOか? ネステッドEC使えば、たいていの処理はデフォルトecだけで済む。 ロックに関するマニアックな資料 www.spice-of-life.net/wiki/files/PW03_LockingEOF.pdf
383 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 10:00:10 ] どっかでEOFとSeasar2のベンチ比較やってるのをみた希ガス すごい遅かったような
384 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:08:15 ] >>383 EOFは実行時もインタプリタだもの。(EOの定義はテキストファイル) 「速度が気になるような用途はストアドプロシジャ使え」ってのがセオリー。 ※ Seasar2のO/R Mapperって、SQL文をそのまま書いてるような奴だろ? コード補完機能付のエディタがないと使い物にならない、気持ちの悪い書き方するアレ。
385 名前:デフォルトの名無しさん [2007/12/12(水) 23:59:48 ] select * from テーブル where ...... のような単純なSQLをはき出す処理でもEOFはだいぶ遅い方じゃないかな EOの生成コストがだいぶ大きい印象。ストアドも全体性能からするとあまり性能に寄与する場面ってそう多くないな Seasar2のO/RMapperは仕事でS2daoというのを使ったけど EOFほど高機能じゃないがエンジニアの受けは良くて、何しろ軽くトラブルレスだったのが良かったな
386 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 01:54:24 ] >>384 >>EOFは実行時もインタプリタだもの。(EOの定義はテキストファイル) これはどういうこと?eoを生成するたびにモデルファイルを読み込むということなら、いくらなんでもそれはないと思うが。 プロファイルを計測したことはないが、SQL文の組み立てに時間がかかってそうな気はするなあ。
387 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 10:54:11 ] >>386 >>eoを生成するたびにモデルファイルを読み込むということなら、いくらなんでもそれはないと思うが。 確かにない。WOFの場合は起動時にモデルファイルを読み込んでEOModelオブジェクトとして保持する。 誰かEOFのベンチたのむw
388 名前:デフォルトの名無しさん [2008/01/15(火) 22:05:59 ] 保守上げ
389 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 18:30:38 ] S2dao より sql2java の方がいいだろ どう考えても