トップページphp
1001コメント502KB

WebObjects 3インタンス目

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001りお02/06/14 23:58ID:9v1vZuBx
NeXTからAppleComputerに引き継がれたオブジェクト指向
Webアプリ開発環境「WebObjects」について語るスレです。

http://www.apple.co.jp/webobjects/
http://www.apple.com/webobjects/

1スレ目:http://pc.2ch.net/test/read.cgi/php/989562708
2スレ目:http://pc.2ch.net/test/read.cgi/php/1013695600

■ 掟 ■
・遠慮は自身の成長を阻害する。過去ログ読んでも判らないことがあればどんどん質問すべし。そして判らないヤツがいたら親切じゃなくてもいいから教えてやるべし。
・WebObjectsを使っている個人・法人の無意味な批判は歓迎されない、しない。マカーマカーと騒がないこと。
・ヨソの開発ツールを使ってもないのにWebObjectsマンセーすることは歓迎されない、しない。
・運用についての質問はハードウェア、OS、パッチ、RDBMSのバージョン、JDBCアダプタのバージョン、Web鯖のバージョン、例外の内容などを細かく明記すべし。
・さやかタン (´Д`;)ハァハァ

0804nobodyさん02/09/17 00:49ID:???
>>786
誰もURLキボンしないとこ見るとみんな自分で捜したのね。
プ社って有名企業だな〜。
漏れの会社はこんなとこで有名になって欲しくはないけど・・・。

>>788
>今のプ社の前のデザインのホムペに社員の経歴書いてあったけど、
今現在なくなってるとしたら、なんか問題があったのかね。
各方面から叩かれて個人名載せるのが恥ずかしくなったとか。

>全員、大学(院)→プ社というわけではなくて、どこか別の企業に逝ってから
なおさら悪いって。院まで出て数年で辞めて零細企業勤務じゃ
もう転職不可能!!

漏れは年収1000万くれっるって言われてもさすがにプ社には逝けんな。
0805工作員02/09/17 07:01ID:???
>>804
わかった、もうわかったよ。よーくわかったから……もぅ…(ノ´Д`)ノ
0806nobodyさん02/09/17 14:49ID:???
addObjectToBothSideRelationshipWithKey...だったかな?
リレーションシップオブジェクトにオブジェクトを追加する云々をおこなう
このメソッドの意味とか使い方がよくわからんのですけど、ボクだけですか?
誰か詳しい使い方教えてください。オーム社の本だとちょっと難しくて・・・
0807nobodyさん02/09/17 15:01ID:???
>メソッドの意味とか使い方がよくわからんのですけど、
なら、使わなければいいだけじゃん。
0808nobodyさん02/09/17 15:04ID:???
×・・・メソッドを使いたいがためにコードを書く
○・・・目的の実装を実現するために適切なメソッドを使う
0809nobodyさん02/09/17 15:55ID:???
とある案件にWebObjectsを提案したところ元請けさんが
「WebObjectsではデータベースにExcel・Word・PowerPointを格納して検索できるのか?」
と聞かれました。
とりあえず私の知る限り無理なきがするのですが...そういう機能をもった
アプリケーションサーバーやデータベースがあるのでしょうか?
ついでに画像や動画や音声ファイルもデータベースに"格納"したいとのことでしたので
こちらは検索はそれ用のソリューションを購入しないと無理。
オススメ的にはそういうもんはDBに入れないと答えましたが、
他のAP鯖ではバイナリもすべてDBに突っ込むのが正解なのでしょうか?私にはどうしてもそのメリットがわかりません。
配列扱いにして「似たような配列の画像を探せー」ならわからない気もしないのですが



ワタクシ、激間違っていますでしょうか?なんだか自分が井の中の蛙に思えてきました。
0810ドドドド素人<-黙ってろよヴォケ!02/09/18 02:49ID:???
>>809
>Excel・Word・PowerPointを格納して検索できるのか?
 これはAP鯖の機能というよりDBの機能になるのでは?あるいはJustのConceptBase
のような全文検索エンジンをDBとは別に入れるとか。

>他のAP鯖ではバイナリもすべてDBに突っ込むのが正解なのでしょうか?
>私にはどうしてもそのメリットがわかりません。 
 Oracle Intermediaだったら画像サイズを自動的に生成してくれてPCサイト用も
携帯サイト用も1ソースで済んでハッピ〜だった気が・・・・これだけじゃないで
すけどね、Intermedia。確か。ウル覚え。

激しくいいかげんな情報なのでsage
0811nobodyさん02/09/18 02:54ID:???
>>今のプ社の前のデザインのホムペに社員の経歴書いてあったけど、
>今現在なくなってるとしたら、なんか問題があったのかね。
これどっかに残ってないかな?
ちょっと手を加えれば3日は笑えるページができそうなんだが。

なにしろ***理系大学院卒レベル***の社員だもんね〜。
そざかし仕事できるんだろーな。
0812?E?t?@?C?80902/09/18 12:15ID:???
>>810
画像エンコーダー付きですか、ちょっと便利ですね。
「JustのConceptBase」はこれからgoogleしてきます。
0813nobodyさん02/09/18 12:27ID:eCAyCH1c
 Oracle9iのInterMediaならExcelとかWordもいける。
 SQL Serverもいけるはず。
 たあし全文検索かけたいだけなら、Namazuとか使ったほうが手っ取り早い。
 しかし、こういう不定形のデータが入ってくるシステムって、客がいろいろ勘違いしている可能性が高い。
0814nobodyさん02/09/18 20:58ID:???
>>813

InterMediaの味を知った客先はとんでもない大容量の映像とかなんだの
入れたいっていいはじまるからな…Oracle9iのInterMediaだけど、
ハードPowerそれなりのモノを用意しないと遅いぞ。
最初、Pentium1Ghzの鯖1台用意してテストした時はまぁまぁのパフォだったけど
いざ運用となったら社内の人間が100人ちかくこりゃ便利だって使い始めて。
メモリ1G搭載してても遅くて、結局ハード増設。気をつけれ。

全文検索だったらNamazuでイイとおもう。
いらなくなったちょっと遅めのマシンにRedHatとかSolaris入れて
使うなんてぇのもいいし(もちろん、ユーザの利用状況にあわせて)

>>しかし、こういう不定形のデータが入ってくるシステムって、客がいろいろ勘違いしている可能性が高い。

ハゲ道。お互いに何を実現したいかを酒でも飲みながら話し合った方がいいかもな。
0815nobodyさん02/09/18 21:02ID:???
>>806
つうか、使いたいから使うんじゃなくって、本とかに載っているから
テストしてんだろうか?
addObjectToBothSideRelationshipWithKeyはEOModelorの
リレーションシップオブジェクトのインスペクタ開いて、OwnsDestination(だったかな?)
とセットで使うとEOを保存するとPkyもDestination側のEOに伝達されて
外部Keyに該当するAttributeに値が入るつー仕組みじゃなかったっけ。
そのへんを調べてみたらどうだろう?
オーム社の本は洋書をそのまま和訳したから時々何を書いているのか
わからんところあるから原書読んだ方がはやかったりするぞ。きっと(w
0816nobodyさん02/09/19 19:49ID:???
最近WO始めたものですが、なにか?(違)
最近WOを始めて、PostgreSQL入れて「さぁ、やるぞ!」って思ったら
トラブル勃発で泣いてます。
EOModelerからSQLがジェネレートできなかったりなどなど…
そこで少し先輩方にお聞きしたいのですが、PostgreSQLを使ってる方は、
postgresのアカウントでWO開発しているのでしょうか?
0817りお ◆/OjWxByc 02/09/19 21:30ID:???
>>816
MacOS X からはわからんが、Windows2kでもEOModelorからはSQLGenerateは
あまりアテにならないので、おれっちはDB構築はSQLを直接PSQLで叩いていますが、なにか?(違)
081881602/09/19 22:37ID:???
レスありがとうございます。あと環境書き忘れすいません。OS X 10.2です。
私も明日ターミナルからやってみようと思います。
OS Xで開発するときはpostgresアカウントでログインしてProject Builderとか、
WebObjects Builder使ってますか?
0819nobodyさん02/09/20 03:49ID:???
>なにしろ***理系大学院卒レベル***の社員だもんね〜。
院卒=頭良い=仕事デキル
んだと本気で思ってるとしたらプ社はやはりドキュソかと・・・。
0820nobodyさん02/09/20 14:30ID:/MLJ70M7
ぽすぐれと開発環境が同じマシンにはいってんの?>818

だったら、べつにぽすぐれのアカウントのひつようは無いんじゃない?
EOモデラーの接続情報にぽすぐれで使うアカウントとパスになってれば
いいんじゃないの??

Terminalからいじるときはsuコマンドでユーザ切り替えればいいんだし。
はずしてたらすいません。
0821b02/09/20 14:58ID:+oiCjvk9
http://muvc.net/jsweb/profiles.html
0822nobodyさん02/09/20 19:54ID:???
EOModelorで定義しているEntityの各Attribute名をすべて取得する良い方法は
ありませんか?
WebObjectsというよりはEOFのプログラミングなのかもしれませんけど。
ソートに関するロジックを書いていて、Entityの構造が将来にわたって変更になっても
いちいちプログラムに手を加えることなくラクチンにできる方法がないかと。
082382202/09/20 19:58ID:???
それと、これもEOFの質問ですけど、insertObjectしたEOを無効(キャンセル?)したい時は
ec.revert()で内容が無効になりますが、ecが保持してるEO全てが無効になって
しまいますよね。できれば、指定のEOをねらい打ちするかのように無効に
したいのですが、できないでしょうか。
NSMutableArrayクラスのメソッドを使って処理をして、最後の最後で
insertObject()するというのもやってみたんですが、ロジックがやたら
長くなってまったので、なにか良い方法はないかと。
082482202/09/20 20:02ID:???
もうひとつ。すいません、教えて君で…
NSMutableArrayにEOをaddObjectしているんですが、これをソートしたり
することはできませんか?
さらにもう一つ。DBからフェッチしてきたEOのNSArrayですけど、さらに
絞り込み、みたいなことをやりたいときはみなさんどうしていますか。
VBですと比較的簡単に実装できるんですが、、再びqualifierを
作って結果的にSQLをDBに投げることになるのでしょうか?
0825りお ◆/OjWxByc 02/09/20 21:02ID:???
>>822
ちゃんと調べてから書け、このヴォケェ!




と、いってみるテスト...ちょっとまて、サンプルも必要だろ。
つうか、書いてる意味から考えるから。
0826りお ◆/OjWxByc 02/09/20 22:12ID:???
>>822
Movie sampleMovie = (Movie)movieDisplayGroup.selectedObject();

EOClassDescription movieDescription = sampleMovie.classDescription();
NSArray attributeArray = movieDescription.attributeKeys();
Enumeration enum = attributeArray.objectEnumerator();
while (enum.hasMoreElements()){
String attribute = (String)enum.nextElement();
System.out.println("attribute name = / " + attribute ) ;
}

とりあえず、サンプル。カスタムEOで定義されているメソッド(key)の
一覧を取得できる。key一覧をStringのArrayで持ってくるから少しは便利かモナー。
もし、リレーションシップ名も欲しければ、EOClassDescriptionにそれっぽいメソッドが
あるから探してクレ。

ただ、希望してるのはEOModelorのAttribute一覧ってかいてあるんだよな。
その場合はEOCustomObjectからEOClassDescriptionを取得してそこから
EOEntityからEOModelGroupを取得してと、徐々に奥に入っていくようなカンジで
親になるオブジェクトを取得するメソッドがそれぞれ用意されているから
たどっていって一覧をゲッチューすればよろし。

参考にならなければもうちょっと希望なんかを書いてクレ。
0827りお ◆/OjWxByc 02/09/20 22:18ID:???
>>826
ちょぃウソあり(ノ´Д`)ノ
EOCustomObjectからEOClassDescriptionを取得してそこから
EOEntity→WOModelGroupなんて取得できへん(ワハハハ

ちょっとまて、むかぁしのプロジェクトから何かあるか探ってみるか。
0828りお ◆/OjWxByc 02/09/20 22:37ID:8AL7Hvbt
>>826
昔のプロジェクトにゃなかったんで作ってみた。いちおう動くから試してミロ。
つうか、オムニのMLにゃこの手の内容はゴロゴロしてるかモナー

EOModel eoModelObj = EOModelGroup.defaultGroup().modelNamed("WOMovies");
NSArray entityArray = eoModelObj.entities();
Enumeration entityEnum = entityArray.objectEnumerator();
while (entityEnum.hasMoreElements()){
EOEntity entity = (EOEntity)entityEnum.nextElement();
System.out.println("Entity name = / " + entity.name() ) ;
Enumeration attributeEnum = entity.attributes().objectEnumerator();
while (attributeEnum.hasMoreElements()){
EOAttribute attribute = (EOAttribute)attributeEnum.nextElement();
System.out.println("Attribute name = / " + attribute.name() ) ;
}
}

選択したEOをさかのぼっていくようにしてEOModelorの情報をゲットするやりかたじゃないけど、
まぁ、ガマンしてくれ。あれ、でもどうやってEOModelorの内容を知るかまでは
書いてないからな、どうだっていいや(w

0829りお ◆/OjWxByc 02/09/20 22:46ID:8AL7Hvbt
>>823
これでどうだ??
EOEditingContext ec = this.session().defaultEditingContext();
Movie invalidateMovie = (Movie)movieDisplayGroup.selectedObject();// "無効にしたいEO"
EOGlobalID gid = ec.globalIDForObject(invalidateMovie);
ec.invalidateObjectsWithGlobalIDs( new NSArray(gid) );

特定のEOをキメうちで無効にしたい、というので使えると思う。
ただ、動作確認はちゃんとやるように(リレーションシップがどうなるか保証もてないので)
0830りお ◆/OjWxByc 02/09/20 22:55ID:8AL7Hvbt
>>824
今日は大盤振る舞いだ(笑)

NSArray内のEO群をソートする方法か?漏れはもうセクゥスして寝たいから(w、
サンプルは自分で考えてくれ。ヒントだけ。

EOSortOederingクラスに、sortedArrayUsingKeyOrderArrayというメソッドがある。
そいつがArrayに対してEOSortOrderingオブジェクトを与えてソートを実行するメソッド。ぐぴゃ(⌒ι⌒)←意味不明

で、再度絞り込みをしたい件だけど、一例としてWODisplayGroupにはsetQualifier()メソッドがある。
こいつにEOQualifierオブジェクトをブチこんでupdateedDisplayedObjects()を実行すれば
DBにSQLを投げずにWOdisplaygroup内で持つEOのArrayでQualifyがかかる。と、おもった。ためしてねぇけど(笑)

NSArrayの場合だと、 EOQualifierクラスにfilteredArrayWithQualifier()メソッドがある。
そいつにEOQualifierオブジェクトともとになるNSArrayをブチこんでやると
SQL投げずにフィルタされる。あとは実装次第ってぇところだな。

がむばってくれ。わからんことがあったら、もっとかけ。
中レベルまでの教えて君大歓迎だ(w
083182202/09/21 08:27ID:???
りおタン キタ---------(°ω°)-------------!!!

どうもありがとう〜♪

これからサンプル試してみます。うう、うれぴぃ。
0832理系大学院卒02/09/21 18:03ID:???
このスレで低レベルな技術論を展開してるバカどもに僕の考えた画期的な
技術を一つ教えてやろう。WOでPDFを加工する技術だ。
Acrobatって知ってるか?あのソフトはVBから操作ができるんだ。
院も出てないお前らは知らなかっただろうけどな。
え?VBとWOが何の関係があるんだって?
まあ、お前らみたいな素人にはわからないだろうが、WOはEXEプログラムを
実行することができるんだ。
つまりWOからVBプログラムを起動してAcrobatを操作すればPDF加工が
できるってわけだ。どうだ?目から鱗が落ちる思いだろう?
理系大学院卒の僕だからこそ考え付いた画期的な方法だよ。
WOとVBのプログラムは時給1000円の学生アルバイトにやらせればいい。
派遣会社に時給2000円という破格の単金を提示して依頼しようと
したこともあったけどナメた態度をとられたから、
全部こっちから切ってやったんだ。
やっぱりビジネスは冷淡じゃないと駄目だね。

それとこの仕組みはビジネス特許申請中だから真似しようとしても無駄だよ。
僕の会社にはこういう申請中の特許が多数ある。
嘘だと思うなら会社のホムペを見てみろ。
残念ながら実用化したものは一つもないが、近い将来には僕の会社は
特許料収入だけでやっていけるようになる予定だ。
まあ、こういうのをビジネスっていうんだよ。
お前らもこういう視点で仕事ができるようにならないといけないね。
0833りお ◆/OjWxByc 02/09/21 19:26ID:???

>>831

お、
0834りお ◆/OjWxByc 02/09/21 19:34ID:n+jiSbS4
しまった間違えた(;´Д`)>>833

>>831

試した結果はどうだ?結果を教えてクレ-.ちょぃ気になったんで。

828でEOEntityオブジェクトを取得してからEOAttributeのArrayが取得
できているんだけど、何となく、別の方法でもゲッチュできるかもしれん。
827で書いた、現在のEOからさかのぼるようにしてdefaultModelGroupを
取得する方法をちょっと模索してるんだが、普段使わないようなこと
やるから時間かかってるし(w

つうわけだ。なんかワカランことがあったら書いてくれ。もうすぐ次スレだしな。
次はインタンスは辞めて、別の名前にしようZeee (w

0835りお ◆/OjWxByc 02/09/21 20:46ID:n+jiSbS4
>>http://pc.2ch.net/test/read.cgi/php/990953955/401-402

専用のHTML編集ツール(WebObjectsBuilderという)を使って
HTMLタグに対しWebObjectsが使うエレメント(ダイナミックエレメントという)を
設定する。
たとえば、表(TABLE)のTRを繰り返し表示させたい時。
HTMLにするとこんなカンジ。(一部タグを省略。TRの部分だけペースト)

<WEBOBJECT NAME=Repetition1>
<TR>
<TD><WEBOBJECT NAME=Hyperlink1><WEBOBJECT NAME=String1></WEBOBJECT></WEBOBJECT></TD>
<TD><WEBOBJECT NAME=String2></WEBOBJECT></TD>
<TD><WEBOBJECT NAME=String3></WEBOBJECT></TD>
<TD><WEBOBJECT NAME=String4></WEBOBJECT></TD>
<TD><WEBOBJECT NAME=String5></WEBOBJECT></TD>
</TR></WEBOBJECT>

ここで、<WEBOBJECT >〜</WEBOBJECT>タグがWebObjectsが使う独自タグ。
もちろん、実行時にはこのタグはブラウザには見えない。
<WEBOBJECT NAME=Repetition1>と定義してあるのが、</WEBOBJECT>までを
繰り返し表示するWebObjectsのダイナミックエレメント。
(WORepetitionという)
0836りお ◆/OjWxByc 02/09/21 20:46ID:n+jiSbS4
つづき

で、このHTMLとは違う別定義ファイルには、

Repetition1: WORepetition {
item = itemForMovie;
list = movieDisplayGroup.displayedObjects;
}

てなカンジに定義されていて、listには配列オブジェクトが、
itemには配列オブジェクト内の各オブジェクトの受け皿になる型を
セテーイしておく。この別定義ファイルは、HTMLを編集する専用ツール
(WebObjectsBuilder)上でGUIで設定した内容が自動生成されるので
開発者が基本的にいぢくる必要はない。

実行時は、WebObjectsのフレームワークが勝手にlistにセテーイされた
配列のナカミを繰り返し読み込んで、上記の場合は<TR>を作り上げていく。

WebObjectsフレームワークの場合は<TR>タグをはじめとするHTMLを生成するためのロジックを
書く必要はない。ツールでセテーイした内容に基づき、Javaで書いたロジックの実行結果や
フレームワークが実行した結果をHTMLに展開してくれる。

だいたい、こんなもんれす。MSのVisualInterDEVとかも同じかな?でもちょっと違うんだよな。

なんかワカランことがあったらどんどん書いてクレ-.
0837りお ◆/OjWxByc 02/09/21 20:53ID:n+jiSbS4
ちなみに、WebObjectsBuilderというツールでつくった
HTMLテンプレート(としておく)は、WOコンポーネントと
呼ばれて、構築するプロジェクト内に保存されて、、
<WEBOBJECT>タグを含んだhtmlファイルと、
<WEBOBJECT>タグ(=ダイナミックエレメント)がどのような
データを持って振る舞いをするか、を定義した*.wodファイルや
WebObjectsが使う独自クラスの挙動を定義した*.wooがあって
一つのパッケージになっている。(*.wo)

0838りお ◆/OjWxByc 02/09/21 21:00ID:n+jiSbS4
htmlファイルや他のテンプレートのファイル名とJavaクラス名は
全て同じ名前になっていて、(Sample.java ,Sample.wo(Sample.html , Sample.wod , Sample.woo ))
実行時にクラスがインスタンス化される。この辺の最初のファイル
生成もツールがやってくれる。

実行時はhtmlファイルをレンダリングする途中で<WEBOBJECT>タグが
あればWebObjectsフレームワークが*.wodに定義されている内容に
従って同名のインスタンス化されたJavaクラスのフィールドを取得
したりメソッドを実行して結果をhtmlへ展開(レンダリング)する。

こんなカンジです。
0839nobodyさん02/09/21 21:04ID:???
>>832
プ社のこと?
0840りお ◆/OjWxByc 02/09/21 21:07ID:n+jiSbS4
WebObjectsが政教分離じゃなかった、デザインとロジックが完全に分離した云々と
言われるのは、htmlに<WEBOBJECT>タグを書いておいて、定義ファイル(*.wod)を
フレームワークが読み込んで同名のインスタンス化されたJavaクラスと
データのやりとりをする部分にあると思われる。htmlファイルには
直接Javaクラスのメソッドなんかを書いても実行できない仕様に
なっているから理屈でも現実でも完全に分離していることになる。


0841りお ◆/OjWxByc 02/09/21 21:09ID:n+jiSbS4
故にWebデザイナはこのタグについての説明を簡単に説明して
いじらないでね、とか約束をつけておけばあとは気にすることはない(一応は(ワラ )

0842りお ◆/OjWxByc 02/09/21 21:14ID:n+jiSbS4
>>説明を簡単に説明して

日本語になってない(;´Д`)スマソ
PerlやPHPをやったことがある方なら、WebObjectsの便利さが
きっとわかってくれると、おもったりするんだが。たう゛ん。
0843コンテンツの40102/09/21 21:21ID:???
>>836
Thx!!
そうすっと、String1とかString2とかってのはどこで定義するの?
0844コンテンツの40102/09/21 21:23ID:???
あと、ちょっとマニアックな状況だけど、例えば表の中にフォームを書いて、
各行の中身をそれぞれ対応する各オブジェクトに入力したい(複数行一括入力)
なんて場合にはどうすればいいの?
0845りお ◆/OjWxByc 02/09/21 21:26ID:n+jiSbS4
>>843
ええと、先ほどから出ている、htmlとは別の定義ファイル(*.wod)に
定義する。厳密には、どのような文字出力をするのかといった振る舞いを
同じ定義ファイル内に書いているんだな。アチョー.
0846りお ◆/OjWxByc 02/09/21 21:30ID:n+jiSbS4
>>844
ズリセンしてクソして風呂はいるから、その後で書くのでまっててクレー.

0847コンテンツの40102/09/21 21:37ID:???
>>846
ういっす。すまんすsage
あと、例えば微妙に動的な文言
「『新規入力』画面」と「『登録変更』画面」ってのは
よくあるテンプレート系エンジンだったらifdefとかを直接ページに書いちゃうと
思うんだけど、WOの場合はどうしてるの?
いろいろ知りたいsage
0848りお ◆/OjWxByc 02/09/21 22:04ID:n+jiSbS4
>>844
クチで説明するのがかったるいので、サンプルの実行結果(HTMLソース)をば。
<form method="post" action="/cgi-bin/WebObjects/SampleWOMovies1.woa/wo/jHvAdoUO0bZbdb6FgYmAXM/1.1">
<P ALIGN=CENTER><FONT SIZE=5>EditMovies</FONT></P>

<TABLE ALIGN=CENTER>
<TR><TD><a href="/cgi-bin/WebObjects/SampleWOMovies1.woa/wo/jHvAdoUO0bZbdb6FgYmAXM/1.1.1.0.1"> EOF Next Generation</a>
</TD><TD></TD><TD>Apple Computer, Inc.</TD><TD>Surreal</TD><TD><input type=text value="1996/01/25" name="1.1.0.9"></TD></TR>
<TR><TD><a href="/cgi-bin/WebObjects/SampleWOMovies1.woa/wo/jHvAdoUO0bZbdb6FgYmAXM/1.1.1.1.1"> Star WOB</a>
</TD><TD></TD><TD>Apple Computer, Inc.</TD><TD>Drama</TD><TD><input type=text value="1999/08/22" name="1.1.1.9"></TD></TR><TR>
<TD><a href="/cgi-bin/WebObjects/SampleWOMovies1.woa/wo/jHvAdoUO0bZbdb6FgYmAXM/1.1.1.2.1"> WOF The Next Big Thing</a>
</TD><TD></TD><TD>Apple Computer, Inc.</TD><TD>Action</TD><TD><input type=text value="1999/08/22" name="1.1.2.9"></TD></TR><TR>
<TD><a href="/cgi-bin/WebObjects/SampleWOMovies1.woa/wo/jHvAdoUO0bZbdb6FgYmAXM/1.1.1.3.1">37.2 le Matin [Betty Blues]</a>
</TD><TD></TD><TD>Cargo Films</TD><TD>Drama</TD><TD><input type=text value="1986/01/03" name="1.1.3.9"></TD></TR><TR>

<P><input type=submit value="insert" name="1.7">
<input type=submit value="delete" name="1.8">
<input type=submit value="update" name="1.9">
</P><
/form>
0849りお ◆/OjWxByc 02/09/21 22:10ID:n+jiSbS4

余計なタグはとっぱらって、TABLE内にテキスト入力フィールドを
各TDに配置したやつを入れた実行結果と思ってくれ。

で、inputタグのnameエレメントにそれぞれ1.1.0.9といったユニークなキーが
割り振られている。FORMの内容がサーバーに送られてからサーバー側の
任意のセッションオブジェクト(ここでは、最初のFORMタグにある
actionエレメントに、長いURL内にあるjHvAdoUO0bZbdb6FgYmAXMてのが
セッションID)で、サーバー側でこれをキーにしたオブジェクトが
生成されていて、その中にname=1.1.0.9がどれとつながっているのか、
なんてぇのが管理されている。というイメージだとわかりやすいだろうか。

Submitの場合もツール上では、Javaクラスに定義された任意のメソッドを
セテーイして、実行時に実行されると指定はするが、htmlソースだと、
nameで管理された番号でメソッド実行なんかを行っている(もちろん、
この番号はWebObjectsが動的に割り振ったもの)。

0850りお ◆/OjWxByc 02/09/21 22:16ID:n+jiSbS4
>>847
WebObjectsの場合は実装方法がいくつか用意されている。
一つは新規登録用、更新用と別々の画面を作成する。もちろん、これは
似たような画面になるので効率が悪い。

もう一つは新規登録用と更新画面の入力項目で共通になる部分を
パーツ化しておいて(といっても、htmlと定義ファイルがWebObjectsのルールに従ってパーツ化したものだけど)、
それが他のコンポーネントでも使い回しができる「部品」として
保存できる。(ようは、JavaBeansを作っているようなモンだ。かなり強引だが)

まぁ、他にもダイナミックエレメントを使って条件(ロジックで決める)
によって任意のHTML表示を実行時(HTMLレンダリング時)に切り替える方法も
ある。まちがってもHTML内にロジックを書くことはない(除JavaScript)
0851コンテンツの40102/09/21 22:38ID:???
>>849
なるほどなるほど。いい感じだねえ〜
name要素がコンフリクトしない仕組みにするとやっぱりそうなるよねえ。
>>850
ループはともかくifdefぐらいならデザイナに触らせてもいいかな?
って気もするけどね・・・ともかくThx!

あともう1コだけ、WebObjectのページ遷移(というかアプリケーションのフローの定義)ってどうなってるの?
0852コンテンツの40102/09/21 22:45ID:???
スマン、質問が漠然としすぎだった。。
例えば、あるビジネスオブジェクトの
「入力」→「確認表示」→「登録完了」
なんていうフローはどうやって定義するの?
0853nobodyさん02/09/22 01:59ID:???
>>832
お前、バカ?
0854nobodyさん02/09/22 15:17ID:???
>>853
ネタニマジレスカコワルイ
釣り師の思うツボだぞ(w
0855nobodyさん02/09/22 15:25ID:???
>>853
ネタにマジレスすんな。
>>832はP社への皮肉だ。
0856nobodyさん02/09/22 16:15ID:???
内容はネタじゃなく事実みたいですけど。
0857nobodyさん02/09/22 17:37ID:???
>>856
どっちでもいいからさ、隔離スレがあっただろ。
http://pc.2ch.net/test/read.cgi/php/1025561456/
こっちでヤレ。
ここはWOFの話しをするところであって、P社の話しをするスレじゃねんだよ。迷惑だ。

ここでそういう話題を粘着気質にやってる香具師は、P社と同レベルって感じだな(w
0858nobodyさん02/09/22 18:48ID:???
まあWebObjectsから".EXE"起動してってのは確かに画期的だ罠。
さすがは理系大学院卒というべきか。
おいらの会社もこういう発想ができるようになるとP社みたいな
有名企業(笑)になれるんか。

これだけだと隔離スレでヤレって言われそうだが、
EXE起動した場合のセキュリティってどうなるのかね?
EXEの中から好きなことやりたい放題?
0859nobodyさん02/09/22 19:04ID:???
>>858
ン?
> まあWebObjectsから".EXE"起動してってのは
これって、サーバーサイドの話なのではないのですか?
0860nobodyさん02/09/22 20:35ID:???
サーバサイドでexeが実行可能なサーバサイドアプリなら、
すべてに当てはまる話しか。
Javaでruntime.exec()が使える環境だったら、どれも同じだろ。

実装者がそう実装していればの話しだけど。
0861nobodyさん02/09/22 21:48ID:6gZmFq4J
・・・PDFの生成をする画面だけ、Perl + PDFLIB などを使えば?
0862香具師02/09/22 22:46ID:???
釣り師の思うツボだちゅぅに りおタンはちゃんと質問にレスしてますね、エラィ.
そんな漏れも釣り師の思うツボ(w
0863nobodyさん02/09/22 23:46ID:???
>>862
香具師の意味分かって使ってんのか?
あと無意味なレスやめろや。
0864nobodyさん02/09/23 02:31ID:???
プ裸ネットよ、WO使いを名乗りたいならAcrobatもJavaで操作しろ!!
なんでexeなんか使うんだ?
0865nobodyさん02/09/23 08:44ID:???
香具師 かぐし、やし。
>>864みたいなことを言う。
0866しらべた02/09/23 09:14ID:???
ちょっと調べてみた。

情報提供:三省堂

■[香具師]の大辞林第二版からの検索結果 
こうぐ-し かう― 【香具師】

(1)香具を作る人。また、それを売る人。香具屋。
(2)やし(香具師)。てきや。香具屋。「―のいひぐさをよく覚えたぜ/滑稽本・浮世床 2」
(3)>>864のことを指す。

■[香具師]の大辞林第二版からの検索結果 

0867nobodyさん02/09/23 14:26ID:???
>>864
WOも昔はJNIバリバリだったという罠。
0868nobodyさん02/09/23 15:03ID:???
別スレで

香具師の使い方間違ってるヤシがいた

香具師の意味を間違ってるぞ

じゃぁどんな意味か言ってみろ

>>866

ここでも見るとは(;´Д`)
しかもほぼ同じ時間。
0869nobodyさん02/09/23 15:25ID:???
>>851, 852
香具師話のせいで質問が埋もれちゃったじゃないか。

ページ制御だが、ハイパーリンクやフォームのボタンのようにアクションを
起こすことが出来る場所に、遷移したいページのidentifierを書くことが
出来る。直接名前を書いてもいいし、ページを返すメソッドを書いてもいい。
単純に移動するだけじゃなくてなにか処理を行ってから遷移したいときは
このメソッドの中にいろいろと処理を書いて、最後に次のページのオブジェクトを
返せばいいのだ。シンプル。
0870nobodyさん02/09/23 17:10ID:???
>>1-869(862,866以外)
>>862>>866みたいなのとプラ房は放置ということで。
0871ぷぷぷっ02/09/23 17:12ID:???
WOPopUpButtonについて教えてたもう。
あるテーブルAのa列からデータを取得しpopupに表示させて、
選択したものを他のテーブルBのb列に保存したいんだが、
やり方がわからん。
とりあえずアプリケーション開発ガイド(オーム社)の217頁のように
listにはAのDisplayGroup.allObjects
itemにはA型のaKey
displayStringにはA型のaKey.aをバインディングさせて
popupに表示させることまではできたんだ。どうだすごいだろう。
ってそれは誰でもできるんだなっ。
世話をかけてすまんな。
0872りお ◆/OjWxByc 02/09/23 18:53ID:???
>>851,852
>>869が親切に教えてくれたので、そっち参考にプリーズ.

>>871
Entity A と、Entity B は何かしらのリレーションシップの関係にあるか?
理論的にも実際のEOModelor上での設定でも。

たとえば、
Entity A toOne > Entity B
Entity B toMany >> Entity A
という関係のリレーションシップがあった場合、
WOPopupButtonのselectionにEntityA.toEntityB という具合に
EntityBへのリレーションシップをバインドしておくと幸せ炸裂だベイビィ.
カスタムEOクラス的に言うとフォームが鯖に送られるときに
カスタムEOのリレーションシップのsetアクセサメソッドが呼ばれるわけだ。
ハズしているかもしれん。
もっと違うことなんだYo-という場合はもちっと詳しくかいてクレー.
0873ぷぷぷっ02/09/23 20:24ID:???
>>872
>Entity A と、Entity B は何かしらのリレーションシップの関係にあるか?
ないと思う。って優香リレーションシップはまだ勉強してない。。。
>もっと違うことなんだYo-という場合はもちっと詳しくかいてクレー.
おう、もうちと詳しく書かせていただく。

Entity Aはpopupに表示させたい項目をつらつらと書いてるだけだ。
もちろんpopupはいくつかある。こんな感じだ。
id value
popup1 神と人間の境界線
popup1 人に会社名を言って恥ずかしくないライン
popup1 業界内でのみ会社名を言えるライン
popup1 マカーが趣味でやってる零細企業
popup2 神
popup2 人
popup2 糞

Entity Bはこんな感じだ。
Company Line
ア○プル 神と人間の境界線
キ○ノン 人に会社名を言って恥ずかしくないライン

でだ、Entity Bの登録画面で(プロフィールみたいなものと思ってくれぃ)
Entity Aのvalueをpopupに表示させておいて(条件にid = popup1があるぞ)
popupで選択したものをsaveChanges()でEntity BのLineにズドーンと入れたいのだ。
長くなったな。すまそ。
0874ぷぷぷっ02/09/23 20:27ID:???
↑おかしいなぁ、適度に空白をいれたつもりだったんだが、見にくいな。
ちと追加説明。
Entity Aはidとvalueがあって、Entity BはCompanyとLineがあるんだ。
あとカスタムeoは使用していないんだ。
0875nobodyさん02/09/23 21:42ID:???
JavaでPDF生成やりたいなら、FOP使えばいいんじゃねーの?
Apache Projectの製品だし。

http://xml.apache.org/fop
0876nobodyさん02/09/23 23:29ID:???
>>868
http://www.geocities.co.jp/AnimeComic-Brush/4373/Icon/004_502.swf

0877nobodyさん02/09/24 03:30ID:???
>>874
まずそういうののためにDBの正規化というのをそのへんの本でも立ち読みして
勉強してくれ。そうするとリレーションの意味もはっきりする。その上で、
カスタムEOを使ってなかったとしても、リレーションをたぐって
takeValueForKeyPath()が呼ばれるのは基本的に同じなので
872のりおたんの説明をじっくり読むべし。
0878nobodyさん02/09/24 04:36ID:???
Direct to Webを試そうと思ってさ、EOModelerでモデルを新規で作成して
データを新規登録しようとしたら
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Error: java.lang.IllegalStateException
Reason: Adaptor com.webobjects.jdbcadaptor.JDBCAdaptor@5caa7a
failed to provide new primary keys for entity 'Message'
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
こんなエラーがでてくるのですよ。
この原因はなんでしょか?
環境はMacOSX10.1.2、WebObjects5.1.4、Openbase7.0.7
自分で作ったモデルが悪いんだろうなと思っていろいろこねくりまわしてみたんだけど
プライマリキーを作成できないっていわれてもわかんないのです、どこをどういじればいいのか…
EntityA<--->B<--->>Cみたいなモデル作ったつもり
ひんとプリーズ


0879りお ◆/OjWxByc 02/09/24 09:11ID:2NTGZykG
>>878
何のDBをD2Wでいじりたいのだ?情報ぷりーず。

エラーは、Message Entityに新しいレコードを作成しようとした時に
プライマリキーが作れなかったことを逝っているんだが。
モデルファイルにプライマリキーがちゃんと設定されているか、
DB側の設定に問題はないか
などを確認してはどうか。
088087802/09/24 10:03ID:???
すばやいおへんじ さんくゆー りおタン
ごめんなさい、原因はModelファイルのプライマリーキーの
Value ClassがStringだったことでございました。Numberにしてことなきを得ました。
DBは自分で設計して1からはじめようとしていたものです。
↑これが一番の原因、未熟者だもんで。
0881りお ◆/OjWxByc 02/09/24 12:24ID:2NTGZykG
うむ、ウマくいってよかったな。また何かあったら遠慮せず書け。
0882nobodyさん02/09/24 12:42ID:???
りお。のりのり。
0883nobodyさん02/09/24 23:11ID:???
ここには運用に強そうな方がいらっしゃるようなのでおたずねします。
ウェブオブジェクトで開発したアプリケーションをLinuxで稼働させる場合、
開発環境は固定されますか。それと、一般論としてLinuxとSolaris(Sunのマシン)とでは
パフォーマンスはどちらがよろしいでしょうか。
たとえば1000万の予算があるとするならば、SunFire280Rを5〜7台ほど買うのと、
Compaqの320Lを20台ほど買えるぐらいの差がありますが、パフォーマンス面では
やっぱり後者になるでしょうか。
チケット販売予約システムをウェブオブジェクトで提案されてきたのですが
ハード面については当方で面倒みることになったので、アクセスが集中したときの
ことを心配しています。SI屋はウェブオブジェクトは比較的軽いアプリケーションサーバーだと
言っています。アプリののプロトタイプは提案されてから10日ぐらいで
仕上げてきました(ウワサ通りでびっくり)。が、運用面がゼロの状態です。
質問がバラバラですいません。よろしくおねがいします。
088488302/09/24 23:16ID:???
ちなみにアプリケーションはMacOS X で作ってるといってました。
ウチはシステムの運用面でLinuxが慣れていたんですが、
SI屋は保証できないと言ってるので。
開発環境や運用環境が固定されてしまうものなのか、と。
だとすると不便かも。
0885nobodyさん02/09/25 11:11ID:LJ8kcrhu
JAVA 1.4.1FCS
でましたね。
0886nobodyさん02/09/25 22:51ID:???
>>883

見積もりベースでかまわないけど、アクセス数がわかんないとちょっとこたえ
ようがないかと。

いちおう、WOは独自の負荷分散を持っていますから、マシンの台数が多ければ
いいのですが、20台ではちょっと管理が大変かも。それに、予算1000万てったって
バックアップ機材とか考えたら実際にマシンに使えるのはその半分くらいじゃ
ないですか?

ちなみに、WebObjectsはLinuxを正式にはサポートしていませんので、いちおう
Solarisを薦めておきます(Win2000はちょっと管理が面倒。MacOSXは実績なし)

ところで質問返しで申し訳ないが、あなた(またはあなたの会社)は今後この
WOアプリケーションをメンテナンスする立場ですか?この「MacOSXで開発」
しているツーところがちょっと気になります。
0887nobodyさん02/09/25 22:52ID:???
>>873

Entity Bを全部埋めてみたのですがあってますか?

アップルコンピュータ 神と人間の境界線
キャノン販売 人に会社名を言って恥ずかしくないライン
NTT-ATテクノコミュニケーションズ 人に会社名を言って恥ずかしくないライン
サイバー・ラボ 業界内でのみ会社名を言えるライン
ステラクラフト 業界内でのみ会社名を言えるライン
オブジェクトビジョン 業界内でのみ会社名を言えるライン
フレームワークスソフトウェア 業界内でのみ会社名を言えるライン
千明社 業界内でのみ会社名を言えるライン
テクニカルピット 業界内でのみ会社名を言えるライン
メタテクノ 業界内でのみ会社名を言えるライン
オフビートワークス 業界内でのみ会社名を言えるライン
ステッド 業界内でのみ会社名を言えるライン
ヘリオグラフ 業界内でのみ会社名を言えるライン
アイザック 業界内でのみ会社名を言えるライン
アーチシステムズ 業界内でのみ会社名を言えるライン
アプロポー 業界内でのみ会社名を言えるライン
エムアイ マックヲタが趣味でやってる零細企業
イーリープ マックヲタが趣味でやってる零細企業
ローラン マックヲタが趣味でやってる零細企業
オブジェクトファクトリー マックヲタが趣味でやってる零細企業
ビー・ユー・ジー マックヲタが趣味でやってる零細企業
ペンギンシステム マックヲタが趣味でやってる零細企業
アイ・ツゥ マックヲタが趣味でやってる零細企業
エイビスシステムソリューション マックヲタが趣味でやってる零細企業
シオン マックヲタが趣味でやってる零細企業
プラネットコンピュータ マックヲタが趣味でやってる零細企業
0888nobodyさん02/09/26 08:10ID:nw83B3p0
>>887
 AppleとBEAとかを比べてみよう。
088988302/09/26 09:03ID:???
>>886
忙しい中ありがとうございます。なるほど、運用リスクを考えるとサポートされている
Solarisがよろしそうですね。予算はたとえばでの話しでしたので実際はちがいます。すいません。
私はシステムの運用ををする立場になります(プログラミングはSI屋に任せてる).
MacOS Xで開発してるSI屋は>>887のリストには載っていないところで結構著名なところじゃないかと思います。
あまり書くと怒られるので、これくらいで勘弁してください(実名も勘弁してください)。

その後、SI屋からの協力もあって、開発環境がMacOS XでもWindows2000でも
関係なく、WebObjectsアプリケーションは固定されないことが判りました。これで一安心です。
お騒がせしてすいませんでした。
0890nobodyさん02/09/26 10:34ID:???
>>887
http://www.apple.co.jp/webobjects/wo_partner.html
どうせなら網羅して欲しかったな。ところで、
>ヘリオグラフ 業界内でのみ会社名を言えるライン
って、今、WOに関係あるのかい?
0891nobodyさん02/09/26 11:13ID:???
>>889
WebObjectsはDBやEOFに
熟知したエンジニアがプログラムすれば
BEAとかのAP鯖と比べてずっと軽い方だと感じるよ。
漏れの会社一日5万PVぐらいのWebSiteをWebObjectsで運用してるが、
SunFire280R(CPU*2)1台で十分運用できちゃってるから。
ちなみに、>>887のリストには入っていない(ププッ
0892nobodyさん02/09/26 13:49ID:???
>>886
ふと疑問に思うのだが、WebObjectsが持っている負荷分散って、
WebObjectsのフレームワークが、Web鯖からきたリクエストを
インスタンスや他鯖に分散するんじゃなくって、Web鯖にインストール
されているWebObjectsアダプタ(ApacheにモジュールとしてAddされているやつ)が、
負荷を分散するんだよね?
0893  02/09/26 18:37ID:P+zTkd8k
>>892
 前にステラが出てきた公演でWebobjectsがWebサバから来たリクエストを
ブロードキャストでブン投げるって要ってた気がしる。
0894nobodyさん02/09/26 18:47ID:cgoTPxwX
>>893
それもまたスゲェことやるな(w
WOはそういう実装が比較的簡単なんですかね?
0895だれか、02/09/26 23:55ID:ZoxMGeW0

NTTのマリオスという、そりゃその手の人がみりゃブッたまげるような
システムがWebObjectsで構築されているそうなんですが、
どういうモノなのか、知ってる人おしえてください。
0896nobodyさん02/09/27 02:58ID:???
>>890
WebObjectsパートナーリストに社名があるとDQN企業と同列に
扱われるだけのような気がする。
載せないほうがマシだと考えてるのは漏れの会社だけか?
0897lock();unlock();02/09/27 07:22ID:???
マリオスって防災システムの?

ttp://www.touhoku.ntt-f.co.jp/marios/index.htm
0898nobodyさん02/09/27 07:35ID:???
マリオスは、サイバーラボのカトー社長んところで作ったやつだろ。
他、航空管制システムとかもWebObjectsで作ってるらしいぞ。
0899nobodyさん02/09/27 09:57ID:XbCB7cEO
サイバーラボ Cyber Framework

ttp://www.cyberlab.co.jp/cf_info.html
0900nobodyさん02/09/27 11:29ID:???
>>899
情報サンクスコ。はじめてみた。いや、こりゃ、まじに凄いですな。

ウェブオブジェクトは
マカーの遊び道具だとばかり思いこんでいた漏れは逝ってよしですか?
0901nobodyさん02/09/27 11:36ID:???
>>899
ついでに、そこのURLにある、

(6)位置情報システムの例
 PHS端末を持った移動者を追跡するシステム例を図13に示す。

はNTTのイマドコサービス(だったか?)をさしているのだよな。

ウェブオブジェクトが航空管制だとか医療系のシステムで使われているとは。
そういやエアドゥーのチケット販売もウェブオブジェクトだったっけ。
バックにミカカがついているせいか?教育関係のシステムでもウェブオブジェクトが
使われていたりするんだろうか。

こういう機関でウェブオブジェクトが使用に耐えうるのですな。しらんかったよ(w
もっと情報プリーズ。
0902nobodyさん02/09/27 14:25ID:???
サイバーの位置情報システムのデモみたことあるけど、
地図上のオブジェクトが全部レイヤー分けされてて、
必要な情報だけリアルタイムに抜き出して表示とかをやってたな。
電子カルテの作成デモも、すごかったよ。
0903nobodyさん02/09/27 15:05ID:wROUanYY
初心者の悩みを聞いて下さい。
hello = new String("こんにちわ");
これで、helloをWOStringにバインドして表示させようとすると文字化けしてしまうのです。
同じやりかたで表示した部分だけ文字化けしていて、他は問題なく日本語表示出来ているんです。
Application.javaにはコンストラクタのやつも含めてちゃんとおまじない書いてる。エンコードはShift_JIS。
前はちゃんと動いていたプログラムをOS10.2の環境に持ってきたらこうなってしまったんですけど、何か助かる道はないのでしょうか。
レス数が900を超えています。1000を超えると表示できなくなるよ。