WebObjects 3インタンス目
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001りお
02/06/14 23:58ID:9v1vZuBxWebアプリ開発環境「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鯖のバージョン、例外の内容などを細かく明記すべし。
・さやかタン (´Д`;)ハァハァ
0813nobodyさん
02/09/18 12:27ID:eCAyCH1cSQL Serverもいけるはず。
たあし全文検索かけたいだけなら、Namazuとか使ったほうが手っ取り早い。
しかし、こういう不定形のデータが入ってくるシステムって、客がいろいろ勘違いしている可能性が高い。
0814nobodyさん
02/09/18 20:58ID:???InterMediaの味を知った客先はとんでもない大容量の映像とかなんだの
入れたいっていいはじまるからな…Oracle9iのInterMediaだけど、
ハードPowerそれなりのモノを用意しないと遅いぞ。
最初、Pentium1Ghzの鯖1台用意してテストした時はまぁまぁのパフォだったけど
いざ運用となったら社内の人間が100人ちかくこりゃ便利だって使い始めて。
メモリ1G搭載してても遅くて、結局ハード増設。気をつけれ。
全文検索だったらNamazuでイイとおもう。
いらなくなったちょっと遅めのマシンにRedHatとかSolaris入れて
使うなんてぇのもいいし(もちろん、ユーザの利用状況にあわせて)
>>しかし、こういう不定形のデータが入ってくるシステムって、客がいろいろ勘違いしている可能性が高い。
ハゲ道。お互いに何を実現したいかを酒でも飲みながら話し合った方がいいかもな。
0815nobodyさん
02/09/18 21:02ID:???つうか、使いたいから使うんじゃなくって、本とかに載っているから
テストしてんだろうか?
addObjectToBothSideRelationshipWithKeyはEOModelorの
リレーションシップオブジェクトのインスペクタ開いて、OwnsDestination(だったかな?)
とセットで使うとEOを保存するとPkyもDestination側のEOに伝達されて
外部Keyに該当するAttributeに値が入るつー仕組みじゃなかったっけ。
そのへんを調べてみたらどうだろう?
オーム社の本は洋書をそのまま和訳したから時々何を書いているのか
わからんところあるから原書読んだ方がはやかったりするぞ。きっと(w
0816nobodyさん
02/09/19 19:49ID:???最近WOを始めて、PostgreSQL入れて「さぁ、やるぞ!」って思ったら
トラブル勃発で泣いてます。
EOModelerからSQLがジェネレートできなかったりなどなど…
そこで少し先輩方にお聞きしたいのですが、PostgreSQLを使ってる方は、
postgresのアカウントでWO開発しているのでしょうか?
0817りお ◆/OjWxByc
02/09/19 21:30ID:???MacOS X からはわからんが、Windows2kでもEOModelorからはSQLGenerateは
あまりアテにならないので、おれっちはDB構築はSQLを直接PSQLで叩いていますが、なにか?(違)
0818816
02/09/19 22:37ID:???私も明日ターミナルからやってみようと思います。
OS Xで開発するときはpostgresアカウントでログインしてProject Builderとか、
WebObjects Builder使ってますか?
0819nobodyさん
02/09/20 03:49ID:???院卒=頭良い=仕事デキル
んだと本気で思ってるとしたらプ社はやはりドキュソかと・・・。
0820nobodyさん
02/09/20 14:30ID:/MLJ70M7だったら、べつにぽすぐれのアカウントのひつようは無いんじゃない?
EOモデラーの接続情報にぽすぐれで使うアカウントとパスになってれば
いいんじゃないの??
Terminalからいじるときはsuコマンドでユーザ切り替えればいいんだし。
はずしてたらすいません。
0821b
02/09/20 14:58ID:+oiCjvk90822nobodyさん
02/09/20 19:54ID:???ありませんか?
WebObjectsというよりはEOFのプログラミングなのかもしれませんけど。
ソートに関するロジックを書いていて、Entityの構造が将来にわたって変更になっても
いちいちプログラムに手を加えることなくラクチンにできる方法がないかと。
0823822
02/09/20 19:58ID:???ec.revert()で内容が無効になりますが、ecが保持してるEO全てが無効になって
しまいますよね。できれば、指定のEOをねらい打ちするかのように無効に
したいのですが、できないでしょうか。
NSMutableArrayクラスのメソッドを使って処理をして、最後の最後で
insertObject()するというのもやってみたんですが、ロジックがやたら
長くなってまったので、なにか良い方法はないかと。
0824822
02/09/20 20:02ID:???NSMutableArrayにEOをaddObjectしているんですが、これをソートしたり
することはできませんか?
さらにもう一つ。DBからフェッチしてきたEOのNSArrayですけど、さらに
絞り込み、みたいなことをやりたいときはみなさんどうしていますか。
VBですと比較的簡単に実装できるんですが、、再びqualifierを
作って結果的にSQLをDBに投げることになるのでしょうか?
0825りお ◆/OjWxByc
02/09/20 21:02ID:???ちゃんと調べてから書け、このヴォケェ!
と、いってみるテスト...ちょっとまて、サンプルも必要だろ。
つうか、書いてる意味から考えるから。
0826りお ◆/OjWxByc
02/09/20 22:12ID:???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:???ちょぃウソあり(ノ´Д`)ノ
EOCustomObjectからEOClassDescriptionを取得してそこから
EOEntity→WOModelGroupなんて取得できへん(ワハハハ
ちょっとまて、むかぁしのプロジェクトから何かあるか探ってみるか。
0828りお ◆/OjWxByc
02/09/20 22:37ID:8AL7Hvbt昔のプロジェクトにゃなかったんで作ってみた。いちおう動くから試してミロ。
つうか、オムニの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これでどうだ??
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今日は大盤振る舞いだ(笑)
NSArray内のEO群をソートする方法か?漏れはもうセクゥスして寝たいから(w、
サンプルは自分で考えてくれ。ヒントだけ。
EOSortOederingクラスに、sortedArrayUsingKeyOrderArrayというメソッドがある。
そいつがArrayに対してEOSortOrderingオブジェクトを与えてソートを実行するメソッド。ぐぴゃ(⌒ι⌒)←意味不明
で、再度絞り込みをしたい件だけど、一例としてWODisplayGroupにはsetQualifier()メソッドがある。
こいつにEOQualifierオブジェクトをブチこんでupdateedDisplayedObjects()を実行すれば
DBにSQLを投げずにWOdisplaygroup内で持つEOのArrayでQualifyがかかる。と、おもった。ためしてねぇけど(笑)
NSArrayの場合だと、 EOQualifierクラスにfilteredArrayWithQualifier()メソッドがある。
そいつにEOQualifierオブジェクトともとになるNSArrayをブチこんでやると
SQL投げずにフィルタされる。あとは実装次第ってぇところだな。
がむばってくれ。わからんことがあったら、もっとかけ。
中レベルまでの教えて君大歓迎だ(w
0831822
02/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円という破格の単金を提示して依頼しようと
したこともあったけどナメた態度をとられたから、
全部こっちから切ってやったんだ。
やっぱりビジネスは冷淡じゃないと駄目だね。
それとこの仕組みはビジネス特許申請中だから真似しようとしても無駄だよ。
僕の会社にはこういう申請中の特許が多数ある。
嘘だと思うなら会社のホムペを見てみろ。
残念ながら実用化したものは一つもないが、近い将来には僕の会社は
特許料収入だけでやっていけるようになる予定だ。
まあ、こういうのをビジネスっていうんだよ。
お前らもこういう視点で仕事ができるようにならないといけないね。
0834りお ◆/OjWxByc
02/09/21 19:34ID:n+jiSbS4>>831
試した結果はどうだ?結果を教えてクレ-.ちょぃ気になったんで。
828でEOEntityオブジェクトを取得してからEOAttributeのArrayが取得
できているんだけど、何となく、別の方法でもゲッチュできるかもしれん。
827で書いた、現在のEOからさかのぼるようにしてdefaultModelGroupを
取得する方法をちょっと模索してるんだが、普段使わないようなこと
やるから時間かかってるし(w
つうわけだ。なんかワカランことがあったら書いてくれ。もうすぐ次スレだしな。
次はインタンスは辞めて、別の名前にしようZeee (w
0835りお ◆/OjWxByc
02/09/21 20:46ID:n+jiSbS4専用の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+jiSbS4HTMLテンプレート(としておく)は、WOコンポーネントと
呼ばれて、構築するプロジェクト内に保存されて、、
<WEBOBJECT>タグを含んだhtmlファイルと、
<WEBOBJECT>タグ(=ダイナミックエレメント)がどのような
データを持って振る舞いをするか、を定義した*.wodファイルや
WebObjectsが使う独自クラスの挙動を定義した*.wooがあって
一つのパッケージになっている。(*.wo)
0838りお ◆/OjWxByc
02/09/21 21:00ID:n+jiSbS4全て同じ名前になっていて、(Sample.java ,Sample.wo(Sample.html , Sample.wod , Sample.woo ))
実行時にクラスがインスタンス化される。この辺の最初のファイル
生成もツールがやってくれる。
実行時はhtmlファイルをレンダリングする途中で<WEBOBJECT>タグが
あればWebObjectsフレームワークが*.wodに定義されている内容に
従って同名のインスタンス化されたJavaクラスのフィールドを取得
したりメソッドを実行して結果をhtmlへ展開(レンダリング)する。
こんなカンジです。
0840りお ◆/OjWxByc
02/09/21 21:07ID:n+jiSbS4言われるのは、htmlに<WEBOBJECT>タグを書いておいて、定義ファイル(*.wod)を
フレームワークが読み込んで同名のインスタンス化されたJavaクラスと
データのやりとりをする部分にあると思われる。htmlファイルには
直接Javaクラスのメソッドなんかを書いても実行できない仕様に
なっているから理屈でも現実でも完全に分離していることになる。
0841りお ◆/OjWxByc
02/09/21 21:09ID:n+jiSbS4いじらないでね、とか約束をつけておけばあとは気にすることはない(一応は(ワラ )
0842りお ◆/OjWxByc
02/09/21 21:14ID:n+jiSbS4日本語になってない(;´Д`)スマソ
PerlやPHPをやったことがある方なら、WebObjectsの便利さが
きっとわかってくれると、おもったりするんだが。たう゛ん。
0844コンテンツの401
02/09/21 21:23ID:???各行の中身をそれぞれ対応する各オブジェクトに入力したい(複数行一括入力)
なんて場合にはどうすればいいの?
0845りお ◆/OjWxByc
02/09/21 21:26ID:n+jiSbS4ええと、先ほどから出ている、htmlとは別の定義ファイル(*.wod)に
定義する。厳密には、どのような文字出力をするのかといった振る舞いを
同じ定義ファイル内に書いているんだな。アチョー.
0846りお ◆/OjWxByc
02/09/21 21:30ID:n+jiSbS4ズリセンしてクソして風呂はいるから、その後で書くのでまっててクレー.
0847コンテンツの401
02/09/21 21:37ID:???ういっす。すまんすsage
あと、例えば微妙に動的な文言
「『新規入力』画面」と「『登録変更』画面」ってのは
よくあるテンプレート系エンジンだったらifdefとかを直接ページに書いちゃうと
思うんだけど、WOの場合はどうしてるの?
いろいろ知りたいsage
0848りお ◆/OjWxByc
02/09/21 22:04ID:n+jiSbS4クチで説明するのがかったるいので、サンプルの実行結果(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+jiSbS4WebObjectsの場合は実装方法がいくつか用意されている。
一つは新規登録用、更新用と別々の画面を作成する。もちろん、これは
似たような画面になるので効率が悪い。
もう一つは新規登録用と更新画面の入力項目で共通になる部分を
パーツ化しておいて(といっても、htmlと定義ファイルがWebObjectsのルールに従ってパーツ化したものだけど)、
それが他のコンポーネントでも使い回しができる「部品」として
保存できる。(ようは、JavaBeansを作っているようなモンだ。かなり強引だが)
まぁ、他にもダイナミックエレメントを使って条件(ロジックで決める)
によって任意のHTML表示を実行時(HTMLレンダリング時)に切り替える方法も
ある。まちがってもHTML内にロジックを書くことはない(除JavaScript)
0851コンテンツの401
02/09/21 22:38ID:???なるほどなるほど。いい感じだねえ〜
name要素がコンフリクトしない仕組みにするとやっぱりそうなるよねえ。
>>850
ループはともかくifdefぐらいならデザイナに触らせてもいいかな?
って気もするけどね・・・ともかくThx!
あともう1コだけ、WebObjectのページ遷移(というかアプリケーションのフローの定義)ってどうなってるの?
0852コンテンツの401
02/09/21 22:45ID:???例えば、あるビジネスオブジェクトの
「入力」→「確認表示」→「登録完了」
なんていうフローはどうやって定義するの?
0856nobodyさん
02/09/22 16:15ID:???0857nobodyさん
02/09/22 17:37ID:???どっちでもいいからさ、隔離スレがあっただろ。
http://pc.2ch.net/test/read.cgi/php/1025561456/
こっちでヤレ。
ここはWOFの話しをするところであって、P社の話しをするスレじゃねんだよ。迷惑だ。
ここでそういう話題を粘着気質にやってる香具師は、P社と同レベルって感じだな(w
0858nobodyさん
02/09/22 18:48ID:???さすがは理系大学院卒というべきか。
おいらの会社もこういう発想ができるようになるとP社みたいな
有名企業(笑)になれるんか。
これだけだと隔離スレでヤレって言われそうだが、
EXE起動した場合のセキュリティってどうなるのかね?
EXEの中から好きなことやりたい放題?
0860nobodyさん
02/09/22 20:35ID:???すべてに当てはまる話しか。
Javaでruntime.exec()が使える環境だったら、どれも同じだろ。
実装者がそう実装していればの話しだけど。
0861nobodyさん
02/09/22 21:48ID:6gZmFq4J0862香具師
02/09/22 22:46ID:???そんな漏れも釣り師の思うツボ(w
0864nobodyさん
02/09/23 02:31ID:???なんでexeなんか使うんだ?
0866しらべた
02/09/23 09:14ID:???情報提供:三省堂
■[香具師]の大辞林第二版からの検索結果
こうぐ-し かう― 【香具師】
(1)香具を作る人。また、それを売る人。香具屋。
(2)やし(香具師)。てきや。香具屋。「―のいひぐさをよく覚えたぜ/滑稽本・浮世床 2」
(3)>>864のことを指す。
■[香具師]の大辞林第二版からの検索結果
0868nobodyさん
02/09/23 15:03ID:???香具師の使い方間違ってるヤシがいた
↓
香具師の意味を間違ってるぞ
↓
じゃぁどんな意味か言ってみろ
↓
>>866
ここでも見るとは(;´Д`)
しかもほぼ同じ時間。
0869nobodyさん
02/09/23 15:25ID:???香具師話のせいで質問が埋もれちゃったじゃないか。
ページ制御だが、ハイパーリンクやフォームのボタンのようにアクションを
起こすことが出来る場所に、遷移したいページのidentifierを書くことが
出来る。直接名前を書いてもいいし、ページを返すメソッドを書いてもいい。
単純に移動するだけじゃなくてなにか処理を行ってから遷移したいときは
このメソッドの中にいろいろと処理を書いて、最後に次のページのオブジェクトを
返せばいいのだ。シンプル。
0871ぷぷぷっ
02/09/23 17:12ID:???あるテーブル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:???>>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:???>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:???Apache Projectの製品だし。
http://xml.apache.org/fop
0876nobodyさん
02/09/23 23:29ID:???http://www.geocities.co.jp/AnimeComic-Brush/4373/Icon/004_502.swf
0877nobodyさん
02/09/24 03:30ID:???まずそういうののためにDBの正規化というのをそのへんの本でも立ち読みして
勉強してくれ。そうするとリレーションの意味もはっきりする。その上で、
カスタムEOを使ってなかったとしても、リレーションをたぐって
takeValueForKeyPath()が呼ばれるのは基本的に同じなので
872のりおたんの説明をじっくり読むべし。
0878nobodyさん
02/09/24 04:36ID:???データを新規登録しようとしたら
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
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何のDBをD2Wでいじりたいのだ?情報ぷりーず。
エラーは、Message Entityに新しいレコードを作成しようとした時に
プライマリキーが作れなかったことを逝っているんだが。
モデルファイルにプライマリキーがちゃんと設定されているか、
DB側の設定に問題はないか
などを確認してはどうか。
0880878
02/09/24 10:03ID:???ごめんなさい、原因はModelファイルのプライマリーキーの
Value ClassがStringだったことでございました。Numberにしてことなきを得ました。
DBは自分で設計して1からはじめようとしていたものです。
↑これが一番の原因、未熟者だもんで。
0881りお ◆/OjWxByc
02/09/24 12:24ID:2NTGZykG0882nobodyさん
02/09/24 12:42ID:???0883nobodyさん
02/09/24 23:11ID:???ウェブオブジェクトで開発したアプリケーションをLinuxで稼働させる場合、
開発環境は固定されますか。それと、一般論としてLinuxとSolaris(Sunのマシン)とでは
パフォーマンスはどちらがよろしいでしょうか。
たとえば1000万の予算があるとするならば、SunFire280Rを5〜7台ほど買うのと、
Compaqの320Lを20台ほど買えるぐらいの差がありますが、パフォーマンス面では
やっぱり後者になるでしょうか。
チケット販売予約システムをウェブオブジェクトで提案されてきたのですが
ハード面については当方で面倒みることになったので、アクセスが集中したときの
ことを心配しています。SI屋はウェブオブジェクトは比較的軽いアプリケーションサーバーだと
言っています。アプリののプロトタイプは提案されてから10日ぐらいで
仕上げてきました(ウワサ通りでびっくり)。が、運用面がゼロの状態です。
質問がバラバラですいません。よろしくおねがいします。
0884883
02/09/24 23:16ID:???ウチはシステムの運用面でLinuxが慣れていたんですが、
SI屋は保証できないと言ってるので。
開発環境や運用環境が固定されてしまうものなのか、と。
だとすると不便かも。
0885nobodyさん
02/09/25 11:11ID:LJ8kcrhuでましたね。
0886nobodyさん
02/09/25 22:51ID:???見積もりベースでかまわないけど、アクセス数がわかんないとちょっとこたえ
ようがないかと。
いちおう、WOは独自の負荷分散を持っていますから、マシンの台数が多ければ
いいのですが、20台ではちょっと管理が大変かも。それに、予算1000万てったって
バックアップ機材とか考えたら実際にマシンに使えるのはその半分くらいじゃ
ないですか?
ちなみに、WebObjectsはLinuxを正式にはサポートしていませんので、いちおう
Solarisを薦めておきます(Win2000はちょっと管理が面倒。MacOSXは実績なし)
ところで質問返しで申し訳ないが、あなた(またはあなたの会社)は今後この
WOアプリケーションをメンテナンスする立場ですか?この「MacOSXで開発」
しているツーところがちょっと気になります。
0887nobodyさん
02/09/25 22:52ID:???Entity Bを全部埋めてみたのですがあってますか?
アップルコンピュータ 神と人間の境界線
キャノン販売 人に会社名を言って恥ずかしくないライン
NTT-ATテクノコミュニケーションズ 人に会社名を言って恥ずかしくないライン
サイバー・ラボ 業界内でのみ会社名を言えるライン
ステラクラフト 業界内でのみ会社名を言えるライン
オブジェクトビジョン 業界内でのみ会社名を言えるライン
フレームワークスソフトウェア 業界内でのみ会社名を言えるライン
千明社 業界内でのみ会社名を言えるライン
テクニカルピット 業界内でのみ会社名を言えるライン
メタテクノ 業界内でのみ会社名を言えるライン
オフビートワークス 業界内でのみ会社名を言えるライン
ステッド 業界内でのみ会社名を言えるライン
ヘリオグラフ 業界内でのみ会社名を言えるライン
アイザック 業界内でのみ会社名を言えるライン
アーチシステムズ 業界内でのみ会社名を言えるライン
アプロポー 業界内でのみ会社名を言えるライン
エムアイ マックヲタが趣味でやってる零細企業
イーリープ マックヲタが趣味でやってる零細企業
ローラン マックヲタが趣味でやってる零細企業
オブジェクトファクトリー マックヲタが趣味でやってる零細企業
ビー・ユー・ジー マックヲタが趣味でやってる零細企業
ペンギンシステム マックヲタが趣味でやってる零細企業
アイ・ツゥ マックヲタが趣味でやってる零細企業
エイビスシステムソリューション マックヲタが趣味でやってる零細企業
シオン マックヲタが趣味でやってる零細企業
プラネットコンピュータ マックヲタが趣味でやってる零細企業
0888nobodyさん
02/09/26 08:10ID:nw83B3p0AppleとBEAとかを比べてみよう。
0889883
02/09/26 09:03ID:???忙しい中ありがとうございます。なるほど、運用リスクを考えるとサポートされている
Solarisがよろしそうですね。予算はたとえばでの話しでしたので実際はちがいます。すいません。
私はシステムの運用ををする立場になります(プログラミングはSI屋に任せてる).
MacOS Xで開発してるSI屋は>>887のリストには載っていないところで結構著名なところじゃないかと思います。
あまり書くと怒られるので、これくらいで勘弁してください(実名も勘弁してください)。
その後、SI屋からの協力もあって、開発環境がMacOS XでもWindows2000でも
関係なく、WebObjectsアプリケーションは固定されないことが判りました。これで一安心です。
お騒がせしてすいませんでした。
0890nobodyさん
02/09/26 10:34ID:???http://www.apple.co.jp/webobjects/wo_partner.html
どうせなら網羅して欲しかったな。ところで、
>ヘリオグラフ 業界内でのみ会社名を言えるライン
って、今、WOに関係あるのかい?
0891nobodyさん
02/09/26 11:13ID:???WebObjectsはDBやEOFに
熟知したエンジニアがプログラムすれば
BEAとかのAP鯖と比べてずっと軽い方だと感じるよ。
漏れの会社一日5万PVぐらいのWebSiteをWebObjectsで運用してるが、
SunFire280R(CPU*2)1台で十分運用できちゃってるから。
ちなみに、>>887のリストには入っていない(ププッ
0892nobodyさん
02/09/26 13:49ID:???ふと疑問に思うのだが、WebObjectsが持っている負荷分散って、
WebObjectsのフレームワークが、Web鯖からきたリクエストを
インスタンスや他鯖に分散するんじゃなくって、Web鯖にインストール
されているWebObjectsアダプタ(ApacheにモジュールとしてAddされているやつ)が、
負荷を分散するんだよね?
0893
02/09/26 18:37ID:P+zTkd8k前にステラが出てきた公演でWebobjectsがWebサバから来たリクエストを
ブロードキャストでブン投げるって要ってた気がしる。
0894nobodyさん
02/09/26 18:47ID:cgoTPxwXそれもまたスゲェことやるな(w
WOはそういう実装が比較的簡単なんですかね?
0895だれか、
02/09/26 23:55ID:ZoxMGeW0NTTのマリオスという、そりゃその手の人がみりゃブッたまげるような
システムがWebObjectsで構築されているそうなんですが、
どういうモノなのか、知ってる人おしえてください。
0896nobodyさん
02/09/27 02:58ID:???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:XbCB7cEOttp://www.cyberlab.co.jp/cf_info.html
0900nobodyさん
02/09/27 11:29ID:???情報サンクスコ。はじめてみた。いや、こりゃ、まじに凄いですな。
ウェブオブジェクトは
マカーの遊び道具だとばかり思いこんでいた漏れは逝ってよしですか?
0901nobodyさん
02/09/27 11:36ID:???ついでに、そこのURLにある、
(6)位置情報システムの例
PHS端末を持った移動者を追跡するシステム例を図13に示す。
はNTTのイマドコサービス(だったか?)をさしているのだよな。
ウェブオブジェクトが航空管制だとか医療系のシステムで使われているとは。
そういやエアドゥーのチケット販売もウェブオブジェクトだったっけ。
バックにミカカがついているせいか?教育関係のシステムでもウェブオブジェクトが
使われていたりするんだろうか。
こういう機関でウェブオブジェクトが使用に耐えうるのですな。しらんかったよ(w
もっと情報プリーズ。
0902nobodyさん
02/09/27 14:25ID:???地図上のオブジェクトが全部レイヤー分けされてて、
必要な情報だけリアルタイムに抜き出して表示とかをやってたな。
電子カルテの作成デモも、すごかったよ。
0903nobodyさん
02/09/27 15:05ID:wROUanYYhello = new String("こんにちわ");
これで、helloをWOStringにバインドして表示させようとすると文字化けしてしまうのです。
同じやりかたで表示した部分だけ文字化けしていて、他は問題なく日本語表示出来ているんです。
Application.javaにはコンストラクタのやつも含めてちゃんとおまじない書いてる。エンコードはShift_JIS。
前はちゃんと動いていたプログラムをOS10.2の環境に持ってきたらこうなってしまったんですけど、何か助かる道はないのでしょうか。
0904nobodyさん
02/09/27 16:49ID:lbR2pzEXjavaコンパイラ設定のソースファイルのエンコーディングを日本語にする。
でいけるかと。
0905nobodyさん
02/09/27 17:38ID:wROUanYY上手く行きました。
ありがとうございます。
0906nobodyさん
02/09/28 01:30ID:???マリオスにしてもサイバーにしてもWebObjectsでもなんでもない
Objective-Cで書かれたGUIプログラムなんですが..。
0907nobodyさん
02/09/28 09:50ID:???あ、そうなの?それも全くしらんかったよー(笑)
でも、objective-cというところが、WebObjectsのニオイがするなぁ。
0908nobodyさん
02/09/28 09:57ID:???0909教えて君
02/09/28 12:31ID:r2sYyZLYうまくいきません。
MonitorがインストールされているマシンをHost1、別のマシンをHost2
としてMonitorに追加し、アダプターのurlを指定するところにHost1の
アダプターのURLをいれてそれぞれのHostにインスタンスを追加してみた
のですが、Host1の方しか見にいきません。
MonitorのDetialの方から直接起動すると最初はHost2のインスタンスを
見るのですが、そのうちHost1に戻ってしまいます。
どっか設定を忘れているんでしょうか?
ちなみにOSはWin2000Pro,WOは5.1です。
(これで運用するわけではありませんが)
あと、DNSはなく、HOSTSによる名前解決をしています。
0911909
02/09/28 15:12ID:r2sYyZLY違った。
正確には「Monitor」を稼動させているマシンです。
0912nobodyさん
02/09/28 19:21ID:xWE7MvJUhttp://www.atmarkit.co.jp/news/200209/28/apple.html
レス数が900を超えています。1000を超えると表示できなくなるよ。