WebObjects nsDictionary.valueForKey("5スレ");
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/02/04 12:21ID:vwrTw9m5Webアプリ開発環境「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
3スレ目:http://pc.2ch.net/test/read.cgi/php/1024066714
4スレ目:http://pc2.2ch.net/test/read.cgi/php/1033912737
■ 掟 ■
・遠慮は自身の成長を阻害する。過去ログ読んでも判らないことがあればどんどん質問すべし。そして判らないヤツがいたら親切じゃなくてもいいから教えてやるべし。
・WebObjectsを使っている個人・法人の無意味な批判は歓迎されない、しない。マカーマカーと騒がないこと。
・ヨソの開発ツールを使ってもないのにWebObjectsマンセーすることは歓迎されない、しない。
・運用についての質問はハードウェア、OS、パッチ、RDBMSのバージョン、JDBCアダプタのバージョン、Web鯖のバージョン、例外の内容などを細かく明記すべし。
・プ社の話題はウザすぎるので全て専用クソスレでおながいします。
・さやかタン (´Д`;)ハァハァ
0097WebObjectsの稟議が通らない人
03/02/16 09:13ID:XIpFysKb0098nobodyさん
03/02/16 16:37ID:???学歴神話いまだ健在ってことか?
>何故、WebObjectsには学歴が重要なのでしょうか?
全然重要じゃない。この話がネタでなければ単にプ社がアホなだけ。
>>96のいうように技術ノーハウや営業ノーハウのほうが重要だ。
この世界は東大ってだけでマンセーされるほど甘くはないよ。
0102nobodyさん
03/02/16 20:54ID:???>雑居ビルの一室(以前のスレでワンルームとあった)で経営してる会社の
>引越しなんて俺の家の引越しよりお手軽だよ(藁
関係者に聞いたところだと静岡が本社とウタってはいるが、
そこは単に社長の家だそうだ(藁
実体のない支店や本社を作って会社を大きく見せる手法は
見習うべきかもしれない。
うちもやろっかな?
0103nobodyさん
03/02/16 21:30ID:???実名あげろ。妄想かぃ?
>>関係者に聞いたところだと静岡が本社とウタってはいるが、
>>そこは単に社長の家だそうだ(藁
中小企業経営者なら、そんなやついくらでもいる。何もそこだけじゃない。
ところで、WOFileUploadでストリーミングアップロードをしたいんだが、
WebObjects5.1じゃできないようだ。自前で何とかしないとダメなのか?
0104nobodyさん
03/02/17 02:54ID:U++jXk1/ストリーミング機能付きのWOFileUploadはWO5.2からの新機能です。
5.1でやるからには独自の機能拡張が必要かと。
010582
03/02/17 16:59ID:LzPBxf8f亀レスでごめんなさい。
> n番目のqualifierFormatを("リンクテーブルs.会員."×(n-1))+"リンクテーブルs.関心のある分野.分野 = %@"
つまり、アダプターがテーブルを出現順にt0,t1,t2・・・と連番でふっているのを利用しています。
おばかな手段と思ったのは将来的にもこの法則が適用されるのかなー、見た時ふと思っただけです。
(JDBCの詳しい仕様とかは全く理解していませんが)
ちなみに、そのコードには思いっきりオンコードで上記のようなqualifierFormatがいくつも書かれて
おりました。最初は何やっているのかさっぱり判らなかったです。
いちおう、WO5.2のWOMovieでためしたらうまくいったのでとりあえず今のところは大丈夫なようです。
0106nobodyさん
03/02/17 17:46ID:VGnBF5TZ↑どうだ?
0108nobodyさん
03/02/19 20:40ID:iIVh2s0CError: com.webobjects.eoaccess.EOGeneralAdaptorException: updateValuesInRowDescribedByQualifier -- com.webobjects.jdbcadaptor.JDBCChannel method failed to update row in database
Reason: updateValuesInRowDescribedByQualifier -- com.webobjects.jdbcadaptor.JDBCChannel method failed to update row in database
が出てしまいます。原因と対処法を教えて下さい。
----------
EOFetchSpecification fetchSpec =
new EOFetchSpecification ("Masterstudent", qualifier, sortOrderings);
arrayStudent =
session().defaultEditingContext().objectsWithFetchSpecification(fetchSpec);
if (arrayStudent.count() == 1) {
Session.currentStudent = (Masterstudent)arrayStudent.objectAtIndex(0);
Masterstudent theStudent = (Masterstudent)arrayStudent.objectAtIndex(0);
String string = theStudent.password();
if (string == null) {
//Session.currentStudent.setPassword("TESTPASSWORD");
theStudent.setPassword("TESTPASSWORD");
session().defaultEditingContext().saveChanges();
}else{
0109nobodyさん
03/02/19 21:57ID:5fvPzEiiこれだけだとなんとも・・・。
WOのバージョン、DBなんかも教えれくれないと。
いちおう、似たようなエラーを吐いた事象としては以下のものがあります。
参考にしてくださいまし。
http://www.tech-arts.co.jp/macosx/webobjects-jp/htdocs/1900/1960.html
からのスレッド全部。
ただ、ちと古いんですよね。
0110nobodyさん
03/02/20 09:02ID:???0111nobodyさん
03/02/20 09:56ID:v9eyipuGすいません。WO5.2、Openbase7、Mac OS X Serverです。
>>110
はずしても問題ないんですかね?
0112109
03/02/20 13:41ID:VW1SZJC9あの鍵マークは自分以外に該当のレコードを更新していないか
をチェックするために使用してます。
生成されたSQLを見るとわかるのですが、PK以外にも鍵マークの
ついている項目についてもWHERE文を発行しています。
だから、外しても問題ありません、そのかわりロック機構が甘く
なります。
ただ、日付型については外した方が吉です。(というか外さないと駄目)
あと、Openbaseとのことですので、MLから
日付関係のカラム(あれば)は全て
Date/time → Datetime
変更してみてはいかがでしょうか?
0113nobodyさん
03/02/20 16:54ID:v9eyipuGありがとうございます。
カギマークはずしてみましたがダメでした。
日付はすべてdatetimeになっています。
単純にfetchしてきたものをNSArrayに入れて、変更後に書き戻したい
だけなんですが・・・なんでこんなに苦労するのやら。
0115nobodyさん
03/02/21 09:45ID:3/B6iMn7だめでした。
theStudent.setPassword("TESTPASSWORD");
を呼ばなければsaveChangesのとこでエラー吐かなくなるんですが、
これって変更点がないからスルーされてるわけですよね・・・。
0116112
03/02/21 10:36ID:2Gb1xm+Nこの例外ってtech-artsのMLでもたまーに出てきていますが、いずれも
解決していないようです。
tech-artsのMLに出てきた話を総合すると、
1)OpenBaseのJDBCが悪い(2001/9頃)
→ Data/TimeをDatetime型に変更して対応
2)開発中に急に例外が出るようになった(2003/2/17)
→ EOModelerの鍵マークを外す
あと、同じ例外がOracleでも出ています。
そのときはEOModel上のValue Typeに適切な値を設定して回避しています。
念のため、EOModelをDBから直接生成してみて、Value Typeの値がどうなるか
確認してみてはいかがでしょう。(こちらでOpenBaseから自動生成したら
なんかいろいろつけてきました。)
あとは、ECにたまっているEOと、実際に変更しているEOが同一かどうかを調べて
見るのも手かもしれません。(MLより転載)
System.out.println ("Student = " + theStudent);
System.out.println ("registeredObjects=" +ec.registeredObjects());
System.out.println ("updatedObjects=" +ec.updatedObjects());
最後に、生成されるSQLがどうなっているかも確認して下さい。
あまり役に立たなくてすいません。
#EOModelが壊れている可能性も・・・・
0117nobodyさん
03/02/21 13:48ID:3/B6iMn7ありがとうございます。
MLでも解決してないんですか・・・。
とりあえずEOModelを作り直してみます。
0118nobodyさん
03/02/21 14:56ID:???It also controls which JDBC methods are used to send and retrieve the data
to and from the database. For attributes with a Value Class of
java.lang.String the following value types are defined:
<none>
c
S
C
E
These Value Types affect which method on the java.sql.PreparedStatement are
used to transfer text data between the database and the JDBC adaptor. An
empty Value Type is backward compatible behavior with WebObjects v4.5 and
uses the setString() method if the text is less than the database's
advertised maximum varchar length, and setCharacterStream(), if it is too
large. If the database fails to advertise a maximum length, the default is
256 characters. A Value Type of 'S' uses setString() regardless of the
text's length. A Value Type of 'C' uses setCharacterStream() regardless of
the text's length. A Value Type of 'E' converts the text into raw UTF-8
bytes, and then uses setBinaryStream() to save them in a binary typed column
in the database. The Value Type of 'c' tells the adaptor to generate SQL
using RTRIM to strip off all trailing spaces, such as those found in CHAR
columns.
'S' is appropriate for most text columns. 'C' is good for columns which
usually contain large amounts of data. 'c' should be used when trailing
spaces are not significant in a CHAR column. (It's better to use a VARCHAR
column if possible.) We recommend against using 'E', except in extreme
cases. It is the database's responsibility to handle text encoding issues,
and using 'E' is usually an indication the database is not correctly
configured.
0119あぼーん
NGNG0121nobodyさん
03/02/23 04:12ID:Zw6X7JIs寝てないから頭働かない・・・。
0122nobodyさん
03/02/23 11:26ID:QXOQDmtK0123あぼーん
NGNG0124nobodyさん
03/02/23 14:38ID:???解決策は東大だよ 東大生をバイトに使え
彼らがすべて解決してくれる
東大生はキミらのような低学歴とは違うんだよ
何?東大なんて縁がない?
だったら会社を東大の近くに移転し、バイト募集の貼り紙を
勝手に大学構内に貼りまくるんだよ
何?それは違法じゃねーかって?
キミらみたいな零細会社はそれくらいやらないと生き残れないぞ
根性出せよ、根性!
0125112
03/02/23 16:00ID:DWsalvWkこちらでも、簡単なテストしてみました。
同一例外が出たのは、DB上のフィールド長とEOMODEL上のフィールド
長が異なっている場合(たとえばDB上は8カラムなのにEO上は1024
カラムとっているとか)で発生しました。
ちなみにEO上のフィールド長をこえて更新しようとすると
きちんとValidationExceptionが発生します。(追加はなぜかOK。
ただし、Nullで書き込まれる)
参考になれば幸いです。
0126nobodyさん
03/02/23 17:52ID:???0127nobodyさん
03/02/23 18:53ID:???EOModelerのSQLGenerationでCreate Tablesにチェックを入れると
ObjCJava WARNING: An error has occurred in the Java Bridge.
You should try to save changes and restart your application.
というエラーが出るのですが、この対処方法&原因が分かりません。
多分どうしようもない、ミスなんでしょうが、お分かりの方いらっさいますか?
EOModeler 5.2、WebObjects 5.2、MacOSX10.2
0128nobodyさん
03/02/23 19:36ID:???あ、それ、漏れも出る。今までは、EOModelorを再起動して解決はした。
あと、一つのプロジェクト内に2つ以上のモデルファイルが登録されていて、
EOModelor上でその2つが開かれていない時に出た。
0129127
03/02/23 21:02ID:???いつの間にかからっぽになってました。
Omniのメーリングリストにも同じような話がありました。
ただ今度はJDBCエラーでうまくExecuteSQLいかなくなってしまいました…
また変なところでミスってるんだろうな…ふぅ…がんばろ…
0130nobodyさん
03/02/23 21:12ID:???0131nobodyさん
03/02/23 21:23ID:QXOQDmtK解決して何より。
ところで、ガンダム種をみたんだが、あんまし面白くねぇな。漏れにとっちゃガンダムはゼータでおしまい。0083だけが例外で良しとする。他は全部だめ。
0132nobodyさん
03/02/23 21:27ID:???経験豊富な皆さんのご意見求ム。
0133nobodyさん
03/02/24 14:18ID:l2bFd7Rjありがとうございます。
やってみます。
>>125
文字型の幅をチェックしてみましたが、
DBのもEOのもすべて同じ幅にしてありました。
うーん。何が悪いのやら。
0134あぼーん
NGNG0135nobodyさん
03/02/25 01:40ID:???WOFD5.xのEOFはJDBC経由でDBにアクセスするので、データベースアクセスに
関しては間違いなくServlet+JDBCの方が速いと思います。
「FORTHはアセンブラより速い」理論で言えばヘボプログラマが書いたSQLより
EOFの吐くSQLの方が効率的ならServlet+JDBCが負ける可能性もありますが。
0136nobodyさん
03/02/25 02:30ID:2laNS2FKとりあえずSQL投げてUPDATEかけたらうまくいったので、これでよしとします。
動いたものを一応はっておきます。(WO5.2用)
なんか余計なもんがついてるとか、こうしたほうがいいってのがあったら
お教え下さい。
EOModel aModel = EOModelGroup.defaultGroup().modelNamed("モデルファイル名");
EOAdaptor aAdaptor = (EOAdaptor)EOAdaptor.adaptorWithModel(aModel);
EOAdaptorContext aContext = aAdaptor.createAdaptorContext();
EOAdaptorChannel aChannel = aContext.createAdaptorChannel();
EODatabaseContext dbContext = EOUtilities.databaseContextForModelNamed(ec,"モデルファイル名");
EOSQLExpressionFactory afactory = new EOSQLExpressionFactory(aAdaptor);
EOSQLExpression expression = afactory.expressionForString("実行したいSQL");
aChannel.openChannel();
aChannel.evaluateExpression(expression);
0137nobodyさん
03/02/25 03:42ID:???ママー、怖いよー、また2ちゃんになんか書かれたよー
Acrobat起動した僕が悪いんです〜、土下座しますから許してくださ〜い〜
0138nobodyさん
03/02/25 12:53ID:6pkn8/5n単純にSQLを投げたいんであれば、
EOUtilities.rawRowsForSQL(ec ,"モデル名","実行したいSQL");
でいけませんか?
(実行したいSQLがSELECT文なら、戻り値としてNSArrayが必要)
更新した後は、当然のことながら再Fetchする必要がありますが。
0139nobodyさん
03/02/25 13:05ID:6pkn8/5nベンチマークみたいなテストをすれば負けるでしょうね。>WO
ただ、EOFの仕組みとしてFaultやキャッシング機構などがあるので、
体感上は同等か、それ以上のものができると思います。
(ただし、EOFの考え方を理解した上での話)
#まぁ、それがあだになることもありますが。
明らかに不得手なものとしては、大量データ処理でしょうね。
とってきたレコードを一旦EOというオブジェクトに展開するので
めちゃめちゃメモリーを食います。
EOFの仕組みを使って、何も考えずに一度に取得できるレコード数は
1000件ぐらいが限界ではないかと思います。
以前、10万件くらいをバッチに取り込む画面を作ったことがありますが、
EOFそのままでは使えず、結構回りくどい手を使いました。
0141nobodyさん
03/02/25 20:13ID:???なにも、WebObjects(EOF)だから大量データ処理が不得手というわけじゃなくって
Javaを使うAP鯖なら、どいつもこいつも弱いと思う。というかJavaそのものが
弱い感じ(対RDBMSに対して)。Javaを使った業務システムを何十件とみてきた
けど、大量データ処理そのものは汎用機なんかに任せてるのが実態。
0142nobodyさん
03/02/25 20:47ID:???WOF5.2をWinで使ってます。
大量のデータ(500件ぐらい)をDBからフェッチしてリストにする処理があるのですが、
これを実行するとメモリを40MBぐらい消費してしまい、nullを代入してからSystem.gc()
しても離してくれません。このままだとOutOfMemoryになるので困っています。
これはWOFが勝手にメモリをつかんでいるからなのでしょうか?
0143nobodyさん
03/02/25 20:51ID:???起動オプションでメモリ使用量を上げれば済む話じゃないの?
いっとくが、一度確保したメモリはgcされようが、
アプリの使用メモリそのものは
減ることはないぞ。(WOFの仕様とかじゃなくて)
0144142
03/02/25 21:18ID:???インスタンスは3つで、起動オプションは-Xmx192mをつけてます。
実メモリは1GBですが、DBも同居しているのでこのぐらいが限界です。
この状況でも、一度に40MBぐらい食って、また同じ処理が走ると更に40MBぐらい
食うのであっという間にメモリがなくなってしまいます。しかも、一度OutOfMemoryを
起こすとゾンビのようになってしまい(強制終了は可能)、他のインスタンスに負荷が
集中するという悪循環に陥ってしまいます。
0145138
03/02/25 21:18ID:bTv6fMunできますよ。
0146nobodyさん
03/02/25 21:25ID:???そうでしたか、昔やってもできなかったんで、ダメなもんだと思ってました(恥
ありが�d
>>144
アプリの仕様を見直した方が良いのでは。ロジック一つでメモリ喰う量がだいぶ違うし。
0147nobodyさん
03/02/25 23:16ID:I7JMksdr漏れはNTTのマリオスだとか位置情報検索システムが本当にWebObjectsで構築されているとは知りませんですた(;´Д`)ハァハァ
WebObjectsすごすぎです。
0148WO1年生
03/02/26 12:42ID:3R/YWb3W500件くらいで40MBはちょっとメモリを消費し過ぎだと思います。
(分母のデータ件数はどれくらいですか?)
チェックポイントとしては以下の通りでしょう。
1)DB上に大きなバイナリデータがある。
→ バイナリデータを別テーブルに切り出して1:1のリレーションにする。
当然、バイナリデータはドリルダウンした時に表示。
2)WODisplayGroupを使っている。
→ 全件よみこんでいないかどうか確認する。
→ よみこんでいるなら、fetchSpecを指定して絞り込むか、qualifiDataSource()
で絞り込むようにする。
3)その他
(1) setPageCacheSize()を調整する。
(2)明示的にLogoutをユーザーに実行させ、セッションをターミネートする。
(3)データを使わなくなったら、ec.fogretObject(eo)とか、invalidateObjectsWithGlobalIDs(gids)
を試してみる。(ただ、forgetの方はたまに忘れてくれない)
(4)sheardEditingContextを使ってみる。
(5)rawrowForSQLでデータを取得する(最後の手段)
(6)大量データ検索用のEditingCotextを用意し、検索の前に作成、検索ページを閉じる際にnull
(さらに最後の手段)
私が思い付くのはこれくらいです。
識者の方、他にありませんか?
0149WO1年生
03/02/26 12:49ID:3R/YWb3Wちなみに、何にnullを設定してgcかけているのかは判りませんが、一度
検索したEOはEditingContext配下のレイヤーにキャッシュされていますので、
表示用のArrayとかDisplayGroupにnullを設定しているのであれば
あまり効果がないと思います。
0150nobodyさん
03/02/26 15:40ID:???DarwinもしくはOpenDarwinにWebObjects Deploymentはインストール
できるのでしょうか?
0151nobodyさん
03/02/26 16:01ID:???0152WO1年生
03/02/26 19:20ID:3R/YWb3WMacOSXのJDK1.4.1配布が来週とのこと。
(Sun Super Tech Daysで発表になったらしいので
ほぼ確実でしょう。)
WOもきますかね〜。
0153nobodyさん
03/02/26 19:41ID:???0154WO1年生
03/02/26 20:29ID:3R/YWb3WJDKウプデータン(;´Д`) ハァハァがきたら、WOウプデータン(;´Д`) ハァハァ
も来てほしいです。
でも、10.1のときの放置プレイの快楽・・・・もとい、悪夢が
忘れられません。
それを考えると、うれしさ半分、鬱半分。
0155nobodyさん
03/02/26 23:31ID:???DBには全部で30,000件程度入っています。
そこから、500件をobjectsWithFetchSpecificationしていますが、表示時にリレーションで
マスタから値を取ってくる項目がほとんどです(これが重さの原因?)。
生成されるHTMLは500KBぐらいあります。。。
ec.invalidateAllObjects()もやってみましたが、駄目でした。
ただ、該当セッションを切ってから何トランか経つと一気に使用メモリ量が減るので、
eoあたりかなぁという感触です。
setPageCacheSizeは盲点でした。試してみます。
これって、0を設定すると「戻る」ボタンが一切使えなくなる、という認識で
正しいのでしょうか?
0156WO1年生
03/02/27 00:40ID:???それって1:Nのリレーションが張ってあって、Nの一覧を表示する際に
1が複数回呼び出されるということですか?
とすると、スナップショットが悪さしているかもしれません。
こちらもぼけた頭で以下の方法を思い付きました。
(唯今VB(ver6)のデバック中。だれだよ、こんなものつくった香具師)
やったことがないのでどれだけ効果があるかどうかは不明ですが。
(ちなみに、できるかどうかも(w)
1)Entityを新たに生成。テーブルは「1」を使用。
2)新しいEntityとNとのリレーションを設定。
リレーションキーは1:Nと同様。
(このとき、新しいEntityと1をPK同士で1:1のリレーションを張っておくと
いいかもしれません。更新の必要が発生したらリレーションでたどれますし)
3)新しいEntityのロック(鍵マーク)を全て外す。
4)念のため、新しいEntityはRead Onlyにしておく。
5)1から表示するアイテムをすべて新しいEntityにバインドし直し。
要は1で取得されるスナップショットを極力少なくしようというわけです。
もしかしたら駄目かもしれないので実験してみてから適用して下さい。
>setPageCacheSizeは盲点でした。試してみます。
> これって、0を設定すると「戻る」ボタンが一切使えなくなる、という認識で
> 正しいのでしょうか?
そうです・・・といいたいところですが、IEは期待どおりの動きをしないことが
あります。(勝手に自分のキャッシュから持ってこようとする)
ちなみにデフォルトとは30のハズ
0157WO1年生
03/02/27 02:53ID:2eHsOCCLアポーのドキュメントちょっと見たんですけど、
ec.refaultAllObjects();
ec.setFetchTimestamp((new NSTimestamp()).getTime());
をfetchのまえに呼べばいいかも。
0158nobodyさん
03/02/27 11:18ID:bmhb7shDDB(Oracle)の任意のテーブルを表示するような
簡単なWebアプリを試しに作りたいのですが
何から始めればよいかわかりません。
ProjectBuilderでXXして、
WebObject BuilderでXXして
と言う具合に大体の大まかな手順を教えて下さい。
0160nobodyさん
03/02/27 13:46ID:???---------------------
富豪 :Appleのセミナー
上流階級:テクニカルピットHomeWork
庶民 :書籍&ML&掲示板
0161WO1年生
03/02/27 17:28ID:???> ProjectBuilderでXXして、
> WebObject BuilderでXXして
> と言う具合に大体の大まかな手順を教えて下さい。
うぁぁぁ。ずいぶんとおおまかすぎでし。
せめて、アポーの日本語PDFを読んで下さいまし。
ttp://www.apple.co.jp/webobjects/pdfs/WebObjectsForHtml_J.pdf
0162nobodyさん
03/02/27 19:41ID:???< >>158 ハァァァ???
<
∨∨∨∨∨∨∨∨∨∨∨\ /∨∨∨∨∨∨∨∨∨∨
/:|. | | /:|
/ .:::| ∨ / :::|
| ...:::::| / ::::|
i  ̄ ̄⌒゙゙^――/ ::::::::|
/_,,___ . _,,,,__,_ :::::::::::\
/ ゙^\ヽ.. , /゙ ¨\,.-z ::::::::::\
「 ● | 》 l| ● ゙》 ミ.. .::::::\
/i,. .,ノ .l| 《 ..|´_ilト ::::::::::\
/ \___,,,,,_/ .'″ ^=u,,,,_ v/.. :::::::::::::l!
|  ̄ ,,、 i し./::::::::.}
| / ,,____ _,/ ̄ \ \ ノ ( ::::::::::|
| |.. | /└└└└\../\ \ '~ヽ ::::::::::::::}
| .∨.|llllllllllllllllllllllllllllll| ::::::::::{
| |.|llllllllllll;/⌒/⌒ 〕 :::::::::::}
| |.|lllllllll; ./ . . | ::::::::::[
.| |.|llllll|′ / . | .| :::::::::::|
.| |.|llll| | .∧〔 / :::::::::::::/
/ }.∧lll | ../ / / :::::::::::::::::\
/ /| \┌┌┌┌┌/./ /::: :::::::::::::::::\
( ゙゙^^¨^¨゙゙¨  ̄ ̄ ̄ /::::::::::: ::::::::::\
0163nobodyさん
03/02/27 21:22ID:Aca6UbcP激しくワロタ.
0164nobodyさん
03/02/27 23:31ID:???色々試したところ、どうやら巨大なページを生成する際に巨大なpageCacheが
出来てしまい、それがなかなか消えてくれないようです。
setPageCacheで0を指定すると、確かにメモリは食わなくなりますが、
直前に表示したコンポーネントクラスまで消えてしまうので使えません。。。
pageCacheSizeはそのままで、session内のpageCacheを消す方法があれば
いいのですが。。。
0165nobodyさん
03/02/28 01:21ID:???あまりお薦めじゃないけど、表示のみの部分はサブコンポーネントを入れ子にしたり
せずに、WOString一個にHTMLをプログラム的に合成して表示するという方法も
ありますよ。WOF1.0時代からの伝統的なチューニングです。
というかそこまでするならWebObjectsを使わない選択もあるかと思うけど。
0166WO1年生
03/02/28 09:44ID:???> 出来てしまい、それがなかなか消えてくれないようです。
>
効果があるかどうかは不明ですが、WOComponentに
setCachingEnabled(boolean aFlag)
というメソッドがあります。
これをfalseにしてみてはどうでしょう?
JavaDoc眺めてたら、ほかにもいろんなメソッドがありましたので、
試してみてください。
0167158
03/02/28 15:28ID:9CbCgWt7EOModelerにてJDBCでOracleに接続するモデルを作成
ProjectBuilderにてJava WebObjects Applicationのプロジェクトを作成、
WebComponents→Main.woをクリックすると立ち上がるWebObject Builderにて
上記で作成したモデルをMain枠にドラックし追加(displayGroupという名で)
Edit SourceのAdd Keyにてモデル作成時に指定したテーブルを選び追加(aKeyという名で)
HTMLをデザインする枠で
Add WORepetitionの一つ目の空欄にdisplayGroup.displayObjects、二つ目の空欄にaKeyを指定
loop部にAdd WOStringを使ってaKey.列名を指定
この後、ProjectBuilderからBuild and Runを行ったところ
Add WORepetitionを使った部分がブラウザに表示されませんでした
原因の調べ方がわかりません
ちなみにWOは5.2です
0168WO1年生
03/02/28 15:51ID:???判らないことがいくつか。
1)aKeyってEOModelerで作ったカスタムEOでしょうか?
(Javaってアイコンがついているボタンを押すと生成されます)
それとも、EOGenericRecordのサブクラスでしょうか?
2)aKey.列名は手動で設定されましたか?それとも、WOBuilderのバインド
で指定しましたか?(aKeyの列名(というかフィールド)をドラッグすると
線がのびてきてつなげるような感じ)
あと、displayGroupの設定で「fetch on Load」を指定していますか?
(WOBuilder上のDiplayGroupの左側にチェックマークがありますので、
それをダブルクリックすると設定画面が現れます)
こちらの予想とおりであれば、これで表示されるはずです。
0170WO1年生
03/02/28 15:58ID:WrIaSxHKきちんとレスできてる。(なんでだろ)
というわけで、169は取り消し。
0171nobodyさん
03/02/28 19:55ID:???WebObjectsセッションで
WebServiceAssistantのデモをやっていたのは
ひょっとしてさやかタン? (´Д`;)
0173WO1年生
03/02/28 20:17ID:WrIaSxHKで、
どうでしたか? 内容。
0174ぷぷぷっ
03/02/28 20:36ID:???名前を名乗らなかったのでわからんぽ。
すまんなデジカメ持っていくの忘れたんだよ。悪かったな。。。(171に期待)
DEMOの内容はWEBサービスだったような気がするけど、、、
0175nobodyさん
03/02/28 21:03ID:???・色白
・「おねぇタン!」て感じ(;´д`)ハァハァ
・メガネはかけてない。極端な茶髪でもない。髪質はサラサラ系。
・オパーイは大きくない。多分Aカプ。
・身長はそんなに大きくない。
0176WO1年生
03/02/28 21:06ID:WrIaSxHKさやかタン
ttp://www.mosa.gr.jp/topics/webapli-repot.html
参考にして下さいまし。
0177nobodyさん
03/02/28 21:12ID:???http://www.mosa.gr.jp/topics/images/webapli-report-phonomu.jpg
さやかタン (´Д`;)ハァハァ さやかタン (´Д`;)ハァハァ さやかタン (´Д`;)ハァハァ
0178nobodyさん
03/02/28 21:15ID:???原因がわかりました。WOTableStringがメモリをバカ食いしていました。
WOTableStringって非推奨になってたんですね。知りませんでした。。。
お騒がせしました。
0179nobodyさん
03/03/02 22:56ID:???ううー納期がくるー、納期がー
0180WO1年生
03/03/03 12:33ID:???よかったでつね。
実は私はWOTableStringなんて知らなかったりします。(w
使ったことがあるものなんて両手で数えるくらいしかない・・・。
できれば、どんな標準でどんなコンポーネントの一覧があるかっていう
のが日本語であればいいんですけどね。
>>179
うちも来月くるぅぅ->脳気。
ただし、糞VBでできたシステムだったりします。
担当者がバックレたために、半年前から泣く泣く担当に・・・。
テーブル設計も画面遷移もむちゃくちゃ。
(どう戻れば?つー画面が至る所に・・・。初心者じゃないんだから)
関係ないのでsage
0181WO1年生
03/03/03 19:41ID:???WOForm
WOTextField WOText
WOSubmitButton WOResetButton
WOCheckBox
WOPopUpButton
WOString WOHiperLink WORepitation WOConditional WOImage
WOCollapsibleComponentContent
WOSortOrder WOSortOrderManyKey
ざーっとこんなもんです。うろ覚えですが。
ちょっと少ないですよね。
(カスタムでちょこまかとは作りましたが)
社内イントラ向けに作ったものが主なんで、あまり種類は多くないです、はい。
0182nobodyさん
03/03/03 19:48ID:???0184nobodyさん
03/03/03 20:36ID:???初めて見た。。
今までコリコリとコードを書いて同じようなことやってた俺って何?ショボーン
0185nobodyさん
03/03/03 22:15ID:MnPmt/BlWOTabPanelもハァハァするぞ。
WOKeyValueConditionalも使いこなせ。もっとハァハァするぞ (;´Д`)ハァハァ
0186nobodyさん
03/03/04 00:47ID:???後はotherTagStringとhandleTakeVa...
0187nobodyさん
03/03/04 00:47ID:yMVgtNrWマジレスするが、VBをバカにしてはいかん。アレもアレで適材適所なんだ。未だに金融系では使われている。
しかし、WebObjectsをいじると、絶対にもとに戻ろうと思うことがなくなるんだが(;´Д`)
ペガサス流星拳〜
0188nobodyさん
03/03/04 00:53ID:???そうそう、WebObjectsってコンポーネントを自作して他プロジェクトでも簡単に
再利用できちまうところがイイよなー。APIエディタでオブジェクト公開してさー。
ここらへんがOOPしてるなって実感しちまう。
もう、たまらんハァハァ(;´Д`)
0189WO1年生
03/03/04 21:36ID:???全然知らないものばかりですねぇ。おはずかしい。
ちなみにどんな機能なんですか?(自分で調べろって)
>>187
金融系ではしっかり現役なのは身をもって体験しています(藁
でも、あまりこの言語好きじゃないです。IDEは使いやすいですが。
しかしその前にやってたのはCOBOLのみと言うのは内緒(藁)
0190nobodyさん
03/03/04 22:42ID:yMVgtNrW0191nobodyさん
03/03/04 23:01ID:???0193158
03/03/05 09:19ID:MbATG8ZSレス遅れてすいません
> displayGroupの設定で「fetch on Load」を指定
これがチェックされてなかったのでチェック後
Build and Runを行ったところ
?????
I/O????????
という文字が。。
> 1)aKeyってEOModelerで作ったカスタムEOでしょうか?
Edit Sourceってボタンを押して出てくる選択肢のAdd Keyにて作成したものです
カスタムEOという概念自体、理解してうません。スイマセン。。
> 2)aKey.列名は手動で設定されましたか?それとも、WOBuilderのバインドで指定しましたか?
WOBuilderのバインドで行いました
0194WO1年生
03/03/05 12:41ID:qGGFcyI8>?????
>I/O????????
>という文字が。。
これはブラウザに表示された文字列でしょうか。それともPBのコンソールに
表示された文字でしょうか?
データに日本語を表示しようとしているのであれば、日本語エンコード用
メソッドを追加する必要がありますが、この対応は済んでいますか?
ちなみに、メソッドは以下の通りです。
public void takeValuesFromRequest(WORequest aRequest,WOContext aContext){
aRequest.setFormValueEncodingDetectionEnabled(true);
aRequest.setDefaultFormValueEncoding("SJIS");
super.takeValuesFromRequest(aRequest,aContext);
}
public void appendToResponse(WOResponse aResponse,WOContext aContext){
aResponse.setContentEncoding("SJIS");
aResponse.setHeader("text/html; charset=Shift_JIS","Content-Type");
super.appendToResponse(aResponse,aContext);
}
0195WO1年生
03/03/05 12:56ID:qGGFcyI8あと使用されているDBがOracleとのことなので、いちおうDBと接続されているか
確認してみて下さい。(EOModelerでテータの入っているテーブルを選択して
ドラム缶に虫眼鏡をかざしているボタンをクリックしてみて下さい。データの
一覧が表示されるはずです)
0196nobodyさん
03/03/05 22:10ID:???■ このスレッドは過去ログ倉庫に格納されています