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

Google AppEngine 3アプ目

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん2010/02/25(木) 09:32:03ID:5mUqVSik
Google App Engine
http://code.google.com/appengine/

■過去スレ
Google App Engine
http://pc11.2ch.net/test/read.cgi/php/1207754942/
Google App Engine 2アプ目
http://pc11.2ch.net/test/read.cgi/php/1243654802/

■リンク集
はてなブックマーク
http://b.hatena.ne.jp/t/gae
http://b.hatena.ne.jp/t/Google%20App%20Engine
Delicious
http://delicious.com/popular/gae
http://delicious.com/popular/googleappengine

■参考サイト
App Engine ギャラリー
http://appgallery.appspot.com/
ドキュメント
http://code.google.com/appengine/docs/python/overview.html
0817nobodyさん2011/02/11(金) 14:36:01ID:???
最近slim3を導入しました。今までトップページを/main.jspにしていたのですが/に変えたいです。
/main.jspへのアクセスを/に転送したいのですがどうしたらよいでしょうか?
AppRouterに設定(isStaticもちゃんとオーバーライド)しても、web.xmlに設定しても403になってしまいます。
0818nobodyさん2011/02/12(土) 01:51:23ID:???
>>817
javaの方のスレに誘導でいいのだろうか

Google App Engine 3アプ目
http://hibari.2ch.net/test/read.cgi/php/1267094290/
0819nobodyさん2011/02/12(土) 12:18:28ID:???
逝ってらっしゃいませご主人さま
0820nobodyさん2011/02/12(土) 12:31:53ID:???
class data(db.model)
a=db.IntegerProperty()
b=db.IntegerProperty()

datas = db.GqlQuery (query_str)
for data in datas:
data["ab"]=data.a+data.b

'data' object does not support item assignment

db.modelオブジェクトに読み出しあとで列を追加すようとするとエラーが出ます。
Djangoに渡す前にどうしても列を加工したり追加したい場合、どうしたらいいでしょうか?
dictにコピー?
0821nobodyさん2011/02/12(土) 12:53:08ID:???
class data(db.model)
a=db.IntegerProperty()
b=db.IntegerProperty()
ab=db.IntegerProperty()

datas = db.GqlQuery (query_str)
for data in datas:
data.ab=data.a+data.b
0822nobodyさん2011/02/12(土) 13:44:58ID:???
なるほど!
0823nobodyさん2011/02/12(土) 13:53:58ID:???
webapp.Templateを使うときはDjangoバージョンの警告を出さないでほしいな
とりあえずJinja2に移行中
0824nobodyさん2011/02/12(土) 14:02:46ID:???
>>818
誘導ありがとうございます
0825nobodyさん2011/02/12(土) 22:43:25ID:???
ロードマップにPython 2.7のサポートとかあるけど前からあったっけ?
http://code.google.com/appengine/docs/roadmap.html
0826nobodyさん2011/02/13(日) 03:31:54ID:???
>>825
2.6スキップかよ
debianがちょっと前が2.5で今が2.6で両方ダメでメンドクセー
0827nobodyさん2011/02/13(日) 03:44:12ID:???
>>825
こんなのあったんだ。さんくす。
そのいちばん上に、
* SSL access on non-appspot.com domains
とあるんだけど、これって可能なの?SSLってドメインごとにグローバルIPがひとつ必要なんじゃないっけ?
あと2番目が
* Full-text Search over Datastore
なんだけど、いつになったら実装してくれるのだろうか。
0828nobodyさん2011/02/13(日) 04:14:25ID:???
>SSLってドメインごとにグローバルIPがひとつ必要なんじゃないっけ?

それは鯖がApacheの場合の話じゃなくて?
0829nobodyさん2011/02/13(日) 05:01:21ID:???
apacheでも大丈夫だよ。
ブラウザも最近のはたいてい対応しているが、
win xpのIEは7でも駄目なので、そこがネック。
0830nobodyさん2011/02/13(日) 12:24:24ID:???
>>829
これってこれのことでしょうか。
ttp://builder.japan.zdnet.com/news/story/0,3800079086,20402262,00.htm
こんなのあったんだ。
0831nobodyさん2011/02/13(日) 13:40:25ID:???
jsonengineっていうのどうなのか試そうと思ったがデプロイできない・・・
0832nobodyさん2011/02/13(日) 16:45:30ID:???
GQLでORDER BY foo ASCするとfoo=Noneが先頭にきちゃってうざいんだけど・・・
他のDBでもこういう仕様だっけ?

後ろに来てもらうことってできまするか?
0833nobodyさん2011/02/13(日) 18:40:02ID:???
むり
0834nobodyさん2011/02/13(日) 18:49:14ID:mo0rSdkS
なんでGAE使うひとってみんな他のDBと比べたがるんだろう
「あっちでは出来たのに」ってのが多すぎるわ
0835nobodyさん2011/02/13(日) 19:21:01ID:???
まぁGQLって名乗っちゃってるしね
Goくらい、何かを連想させない命名にしておけば
0836nobodyさん2011/02/13(日) 20:44:19ID:???
>>832
foo > NULLとか出来なかった?(または"foo > :1", None)
0837nobodyさん2011/02/13(日) 21:12:14ID:???
google optimized language = go-lang
0838nobodyさん2011/02/14(月) 18:20:13ID:???
>>836
できませんでした。うーむ。なれるしか無いか。
0839nobodyさん2011/02/14(月) 18:51:26ID:???
そもそもデータ中にNoneがあったら
開発用と本番用で挙動が変わったり
インデックスが壊れたり色々困るだろうに
0840nobodyさん2011/02/15(火) 13:52:48ID:???
>>839
そうなの?
0841nobodyさん2011/02/15(火) 19:26:29ID:???
数値データなんか生のデータに0があるときはNoneも使わないと計算できなくない?
0842nobodyさん2011/02/19(土) 22:13:51.81ID:???
dbプログラマんだから、いままでのdbと同様に使える事を期待するのが普通でしょ。
gqlのほうがデータベースと逝ってるわりにデータベースっぽい扱いさせてくれないほうが不親切。
0843nobodyさん2011/02/20(日) 09:11:47.23ID:mUqklcdg
DBとRDBは区別つけておこう。
0844nobodyさん2011/02/24(木) 14:56:50.70ID:???
<select>
  {% for e in list %}
  <option value={{ e }}>{{ e }}</option>
  {% endfor %}
</select>

こんなことやりたいのですが、db.StringPropertyのchoices=set()で設定されている
規定値のリストを取得する方法を教えてください。
0845nobodyさん2011/02/24(木) 15:32:58.04ID:???
self.choicesにそのまま入っているっぽいが
0846nobodyさん2011/02/24(木) 16:22:18.14ID:???
>>845
あー
setオブジェクトで入ってました。

要素取り出す方法がわかりません・・・
0847nobodyさん2011/02/24(木) 16:28:32.97ID:???
普通にやればいいよ
>>> a = set([1, 2, 3])
>>> for i in a:
print i

1
2
3
>>>
ソートしたいならsortedで
0848nobodyさん2011/02/24(木) 16:37:38.93ID:???
普通にループで取り出せそうです。
ありがとうございました。
0849nobodyさん2011/02/26(土) 16:56:50.23ID:???
Python2.5で
Djangoを使ってフォームをつくろうとしているのですが、
Traceback (most recent call last):
File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 515, in __call__
handler.get(*groups)
File "C:\Users\wish\project\room\main.py", line 44, in get
html = template.render(fpath,params)
(中略)
File "C:\Program Files\Google\google_appengine\lib\django_0_96\django\template\loader.py", line 72, in find_template_source
raise TemplateDoesNotExist, name
TemplateDoesNotExist: layout.html

このようなエラーになってしまい、動きません。
app.yamlは

handlers:
- url: /css
static_dir: css

- url: .*
script: main.py
と設定してあります。
また、app.yamlとmain.pyのディレクトリの下にそれぞれ
viwesとcssというフォルダを置き、cssにcssファイルを、
viewsにhtmlをおいています。
0850nobodyさん2011/02/26(土) 17:00:17.62ID:???
>>849
TemplateDoesNotExist: layout.html
0851nobodyさん2011/02/26(土) 17:29:20.46ID:???
>>850
layout.htmlはviwesフォルダに入っています。
試しにcssフォルダや、app.yamlと同じディレクトリに置いてみても変わりませんでした。
0852nobodyさん2011/02/26(土) 17:45:35.61ID:???
fpathにちゃんとパスが入っているかどうかぐらい自分で確認してもいいんじゃない?
0853nobodyさん2011/02/26(土) 17:45:57.73ID:???
ちゃんとパス通してる?
0854nobodyさん2011/02/26(土) 17:47:02.95ID:???
Traceback (most recent call last):
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3245, in _HandleRequest
self._Dispatch(dispatcher, self.rfile, outfile, env_dict)

中略

File "C:\Program Files\Google\google_appengine\lib\django_0_96\django\newforms\util.py", line 15, in smart_unicode
s = unicode(s, settings.DEFAULT_CHARSET)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x89 in position 0: invalid start byte

Python2.5です。windows7
GAEを使ってローカルサーバでテストしているのですが、このエラーでつまづいてしまいました。
Djangoを使って入力フォームの作成をしています。
0855nobodyさん2011/02/26(土) 18:07:17.08ID:???
>>852 >>853
すみません、見落としていました。ありがとうございます。
0856nobodyさん2011/02/28(月) 01:11:08.16ID:VazHfe0j
UserAgentで振り分けしたいのですが、.htaccessのように一括で振り分ける方法はありませんか?
def get(self):
  if ua == keitai:
    ~ケータイ用のページへジャンプ~

という処理をすべてのクラスに記述するしかないのでしょうか?
0857nobodyさん2011/02/28(月) 01:13:57.28ID:???
それしかないと思う
まあPythonのデコレータ使えば綺麗に書けるはず
0858nobodyさん2011/02/28(月) 05:02:15.92ID:???
Javaサーブレットのフィルターにあたるものはないの?
0859nobodyさん2011/02/28(月) 14:24:19.45ID:???
Djangoを使ってフォームを作ったのですが

複数のフォームに入力されたデータをある一定のアルゴリズムで変換し
(たとえば、1と入力したら50,4と入力したら200など)
それを表示したいのですが、この場合どうすればいいんでしょうか?

現在は、AddHandlerで
def post(self):
form = AddForm(data=self.request.POST)
if form.is_valid():
data = form.save()
data.put()
self.redirect("/")
else:
self.layout["content"] = self.view_dir + "add.html"
params = {"layout":self.layout,"form":form}
fpath = os.path.join(os.path.dirname(__file__),"layouts",self.layout_file)
html = template.render(fpath,paramas)
self.response.out.write(html)
このように、入力された値は保存してそのままindexで表示されるようになっています。
0860nobodyさん2011/03/01(火) 22:30:04.73ID:???
bulkloaderでkeyのnameを指定する方法を教えてください。
http://d.hatena.ne.jp/sugyan/20090705/1246803690
ではgenerate_keyを設定してますが bulkloader.yaml
で設定する方法がわかりません。

localで実行のみ。
Modelクラスだけで定義はしているけど、まだdatastore上に実体のデータがない。
とりあえずbulkloaderを走らせてみましたが、データは記録できるものの不定期にスレッドエラーがでて全行送れない。→インデックス設定が必要?
この問題はさておき、何度もテストしていると重複したデータが増える。
key_nameをフィールドを連結した文字列で設定してアップロードしたい。
テストはこのサイトを忠実に再現している・・・つもり。
http://endoyuta.blogspot.com/2011/02/gaebulk-loadercsv.html

というわけです。よろしくお願いします。
0861nobodyさん2011/03/02(水) 01:01:09.41ID:???
アップロードエラーの件は自己解決しました。
--num_threads=
でスレッド数を制限したらいけました。

あとはkey nameで保存させることです。よろしくお願いします。
0862nobodyさん2011/03/02(水) 04:09:43.92ID:???
bulkloader.yaml
---------------
property_map:
 - property: __key__
  external_name: key
  export_transform: transform.key_id_or_name_as_string

ならcsvのcolumn_name=keyのフィールドがkey_nameになる
0863nobodyさん2011/03/02(水) 20:37:20.74ID:???
>>825
前は3.xのサポートだった気がする。。
0864nobodyさん2011/03/04(金) 12:03:30.61ID:???
>>862
ありがとうございました。
調べた結果キーを複数の要素から生成するにはこうすればできるようです。


- property: __key__
import_template: "%(first_name)s %(last_name)s"

http://efreedom.com/Question/1-3920171/Set-Key-New-Bulkloader

first_nameとlast_nameの定義の前でも使えるのか疑問ですがちょっとやってみます。
0865nobodyさん2011/03/05(土) 05:47:42.88ID:???
>>858
WSGI だからなんとでもなるが
0866nobodyさん2011/03/05(土) 17:06:25.19ID:???
>>864です。
やっぱりエラーが出ます。
Error parsing yaml file:
Invalid object:
Neither external_name nor import_template nor export specifiled for propaty __key__

こんな風に名前の定義も入れてみたんですが、ダメです。

- kind: Station
 connector: csv
 connector_options:
  encoding: euc-jp
  skip_import_header_row : True
  column_list: [rr_cd, line_cd, station_cd,
  line_sort, station_sort, station_g_cd, r_type,
  rr_name, line_name, station_name,pref_cd,
  lon, lat,f_flag]
 property_map:
  - property: __key__
  - import_template: "%(line_name)s%(station_name)s"

ここを参考にしてます。
http://endoyuta.blogspot.com/2011/02/gaebulk-loadercsv.html
csvを改造してKEYを先に作ったほうがラクかなあ。
お知恵をおかし下さい。
0867nobodyさん2011/03/05(土) 18:39:45.84ID:???
追記
こんどは郵便番号データを郵便番号をキーに登録しようとしてやはり同じエラーが出ました。

- kind: ziplist
 connector: csv
 connector_options:
  encoding: utf-8
  column_list: [cityno, oldzip, zipcode, pref, citykana, city, townkana,
    town, two_code, banchi, chome, two_town]
 property_map:
  - property: __key__
  external_name: zipcode
  export_transform: transform.key_id_or_name_as_string

http://www.post.japanpost.jp/zipcode/download.html
0868nobodyさん2011/03/06(日) 10:33:02.95ID:???
>>866
columns: from_headerを明記する
  - import_template: "%(line_name)s%(station_name)s"
マイナス記号がいつの間にかくっついてた
コピペでいろいろ試しているうちに余計に現象が複雑化してました。
無事、二つのカラムからKeyを生成できました。

>>867
これからやってみます。

まずはご報告まで。
0869nobodyさん2011/03/06(日) 14:56:49.77ID:???
>>867
export_transform: transform.key_id_or_name_as_string

これ削除したらkey_nameでのインポートはできるようになりました。
エクスポートの時に困りますね。
0870nobodyさん2011/03/07(月) 08:14:19.48ID:???
アプリ登録する時に2種類から選択できるようになったって話を聞いたんですが、
それについてどこかに詳しく説明してるページないでしょうか?
0871nobodyさん2011/03/07(月) 08:38:48.62ID:???
>>870 これ?
App Engine 1.4.1 をリリースしました - High Replication Datastore の紹介 - Google Japan Developer Relations Blog
http://googledevjp.blogspot.com/2011/01/app-engine-141-high-replication.html
0872nobodyさん2011/03/07(月) 12:12:07.14ID:???
もしかしてこれでようやくGAEもミッションクリティカルな用途に使えたりもするのかな?
0873nobodyさん2011/03/07(月) 17:07:19.40ID:???
今日調子にのって100万行単位のcsvをアップロードしてたら、クォータ使いきってエラーになりました。
マスターデータは一回アップロードすればそれ以上必要ないんですが、緊急メンテナンスが発生したとき
out of quota出たら泣けますね。
ダッシュボードは使えるみたいだから、管理者ページだけでも動くようにしておいて欲しいなあ・・・
0874nobodyさん2011/03/07(月) 17:14:26.86ID:???
大人しく課金しろよ
0875nobodyさん2011/03/08(火) 14:47:38.27ID:???
緊急メンテの時だけのためにそんなにCPU時間買えないっすよー
0876nobodyさん2011/03/08(火) 15:53:16.21ID:???
>>871
ありがとうございます!これのことです!。昔作ったアプリは変更できないんですね。。
それにしてもいつの間にか日本語ブログ出来てたのかぁ。
0877nobodyさん2011/03/08(火) 16:14:27.16ID:???
gqlで最新のエンティティだけを取得する場合はどうすればいいでしょうか?


datas = db.GqlQuery("SELECT * FROM Data offset -1")
と書いてみましたが、-1では指定できませんでした。
0878nobodyさん2011/03/08(火) 16:25:35.89ID:???
SQL自体が初心者でしょ
使わなくてもアプリ組めるよ
0879nobodyさん2011/03/08(火) 16:33:24.19ID:???
>>877
タイムスタンプ記録してORDER BY timestamp DESC LIMIT 1
別のテーブルでIDを管理してIDで検索
ID検索がたぶん高速
0880nobodyさん2011/03/08(火) 16:35:41.68ID:???
>>877
管理コンソールのDatastore ViewerでGQL直接実行できるからいろいろ試せ
0881nobodyさん2011/03/08(火) 16:51:11.36ID:???
bulkloaderでcsvのアップロードやり続けてここ汚してる者です。

複数エンティティからKey_name作って登録する方法だと、たぶんbulkloaderのCPU使用時間は
おまかせkeyで登録するより5倍かかる(当然登録件数によるけど10万件単位)ようです。
10万行処理するのに無料Quotaの10%使ったって参考にしたブログにあったけど
今日は10万行で50%使いました。100万単位だともっとかかるようになるでしょね。

データのメンテナンスするときは更新・削除がラクだろうけど、これは果たしてどうだったのか・・・
チラ裏でした。

さて、そろそろQuotaリセットされる時間です。作業にもどります。
0882nobodyさん2011/03/08(火) 17:20:59.00ID:???
>>879
別のテーブルでIDを管理、というのはどうすればいいんでしょうか?

0883nobodyさん2011/03/08(火) 19:27:23.10ID:???
>>881
Quotaって言ってもいろいろあるぞ。具体的にどれだ?
0884nobodyさん2011/03/08(火) 19:31:02.60ID:???
>>882
テーブルって言葉が混乱を招いたようですが
別にモデルを作ってそのエンティティに保存しておくだけです。
key_nameを決めてその名前でひとつだけエンティティを保存しておけば
key_nameから簡単にエンティティにアクセスできます。
0885nobodyさん2011/03/08(火) 19:31:53.47ID:???
>>883
CPU Timeです
0886nobodyさん2011/03/08(火) 19:49:47.01ID:???
>>884
なるほど
現在、Model Aで定義したものをフォームから受け取り、
そのフォームから受け取ったデータを
data = form.save()
data.put()
で保存しているのですが、
具体的にこれを別のモデルを作りそのエンティティに保存しておく、というのは
どうすればいいんでしょうか?

0887nobodyさん2011/03/08(火) 21:13:48.19ID:???
class B(db.Model):
ID = db.IntegerProperty()

があるとして、Aのdataを保存したあと

key_name = "thisisAslastupdate"
b=B.get_or_insert(key_name)
  b.ID=data.key()id() #dataのIDを保存
b.put()

Aのdataを呼び出すとき

key_name = "thisisAslastupdate" #常に同じkey_nameをつかう
b=B.get_or_insert(key_name)
data = A.get_by_id(b.ID)

もちろんトランザクションで処理した方がいいです。

適当にみつけた参考ページ
http://kan.txt-nifty.com/softdev/google_apps_engine/index.html
0888nobodyさん2011/03/08(火) 21:21:17.71ID:???
障害発生中
0889nobodyさん2011/03/08(火) 21:26:11.17ID:???
'utf-8'のencodingエラーが
0890nobodyさん2011/03/08(火) 21:49:33.48ID:???
>>887
key_name = "thisisAslastupdate"
b=B.get_or_insert(key_name)
  b.ID=data.key()id() #dataのIDを保存
b.put()

これはどこに記述すればいいんでしょうか?
Class Aでdata.put()をした直後でしょうか?
0891nobodyさん2011/03/08(火) 22:00:23.08ID:???
>>889
こっちではimportエラーが出てます
<type 'exceptions.ImportError'>: cannot import name template
0892nobodyさん2011/03/08(火) 22:10:44.23ID:???
>>887
  b.ID=data.key()id()

ここは、
b.ID=data.key().id()でよろしいでしょうか?
スペースをなくし、.をいれています。
0893nobodyさん2011/03/08(火) 22:11:48.96ID:???
>>890
そうです。でもコピペしただけでは動かない可能性もありますよ。
ここから先はリファレンスを読んで全体の理解を深めることをおすすめします。
0894nobodyさん2011/03/08(火) 22:12:42.99ID:???
>>892
そうですね。ごめんなさい。
0895nobodyさん2011/03/08(火) 22:18:32.88ID:???
やっと正常に動き出したけど、今日デプロイしてないアプリまで全部死んでたんでびっくりした。
0896nobodyさん2011/03/08(火) 22:24:25.86ID:???
>>894
いえ、本当に助かりました。ありがとうございます。
一度動くとリファレンス読んでも急に理解しやすくなったような気がします。
しっかり読んで、またオライリーのGAEも買ってみようと思います。

うまく動いたのですが、
<__main__.TotalData object at 0x078046F0>
と、unicodeがそのまま表示されてしまった?のですが
これはどうすればそのまま表示できるのでしょうか?
0897nobodyさん2011/03/08(火) 22:27:39.15ID:???
エラーの出てるインスタンスがなかなか落ちてくれない…
0898nobodyさん2011/03/08(火) 22:32:13.18ID:???
松尾です。
日本時間 3/8 9:00PM 現在 Python Runtime で障害が発生しています。
現象としてはあるはずのモジュールに関して ImportError が発生しています。
現在復旧作業中です。アップデートがあればこのスレッドでお知らせします。

松尾さんご苦労様です。早く直してね。
0899nobodyさん2011/03/09(水) 07:40:31.93ID:???
>>898
このソース元どこ?なんかのML?
0900nobodyさん2011/03/09(水) 07:49:38.80ID:???
>>899
http://groups.google.com/group/google-app-engine-japan/browse_thread/thread/c8f2fe71e927e5d4
0901nobodyさん2011/03/09(水) 07:52:28.78ID:???
さんくすー
0902nobodyさん2011/03/09(水) 12:16:09.67ID:???
datastoreである要素の行がnoneのものだけ集めることってできましたっけ?
0903nobodyさん2011/03/09(水) 14:38:10.63ID:???
JavaとPython未経験でGAEを使いたいのですがどちらの方が習得早いでしょうか?
Javaの方ができることは多そうですがPythonの方が新しい言語なのでまとまっていて取っ付きやすいのではないかと踏んでいます。
目標は認証付きでテキスト、画像、バイナリのアップロード、ダウンロード。
特定の呼び出し(?)に対して任意のXMLを返すといったところまでです。
アドバイスよろしくお願いします。
書籍は「新人プログラマのための」を買おうと思っていますが他にもおすすめがあればお願いします。
0904nobodyさん2011/03/09(水) 15:05:18.92ID:???
教えてあげるから、なんかちょーだい
0905nobodyさん2011/03/09(水) 18:30:54.01ID:???
python
0906nobodyさん2011/03/09(水) 20:26:35.45ID:???
どっちの言語も未経験でよくGAE使う気になったもんだ
0907nobodyさん2011/03/09(水) 23:25:55.44ID:7V71uazC
Google-Sky-Map
http://www.youtube.com/watch?v=3xnKX8xksNg
0908nobodyさん2011/03/10(木) 04:06:53.38ID:79yNqmJl
>>898
えっ!やっぱり ずっと悩んでたのに。。。
0909nobodyさん2011/03/10(木) 04:09:24.32ID:???
ぼっちで開発してるんだけどわからないことが結構ある
みんな会社単位とかで使ってるのか?
0910nobodyさん2011/03/10(木) 09:48:36.24ID:???
ぼっちで開発してるんだけど死にたくなることが結構ある
みんな会社単位とかで使ってるのか?
0911nobodyさん2011/03/10(木) 10:41:49.18ID:???
教えてあげるから、なんかちょーだい
0912nobodyさん2011/03/10(木) 11:09:50.86ID:???
いらな〜い
0913nobodyさん2011/03/10(木) 11:11:07.28ID:???
一人で使ってます。
わからないことはそのつどググって英語サイトとかまで見てます。
0914nobodyさん2011/03/10(木) 15:55:06.40ID:/uspR3SG
jruby on rails 2.3.10 で
NoMethodError (undefined method `getString' for #<Str1:0x9e40d2>)
のエラーがでるんですが、Str1クラスのnewはできるみたいなんですが
メソッドgetStringを呼べません。ソースは
// Str1.java
package com.aaa;
class Str1 {
protected String str;
public Str1(String str) {
this.str = str;
}
public String getString() {
return str;
}
}
#aaa_controller.rbの一部
require 'java'
import 'com.aaa.Str1'
class AaaController < ApplicationController
def aaa
sss = Str1.new("asasas")
p sss.getString
render :text => ""
end
end
0915nobodyさん2011/03/10(木) 15:59:35.51ID:???
Javaスレはこっち
http://hibari.2ch.net/test/read.cgi/php/1267094290/
0916nobodyさん2011/03/10(木) 23:41:14.23ID:???
1つのリクエストにlogging.debug()で10個ぐらいログ出力してるんですが
何気にlogging.debug()使っていい適正回数とかあるんでしょうか?
10回以上使うと重くなるよ的なことってあるんでしょうか?
0917nobodyさん2011/03/11(金) 08:22:28.47ID:???
管理画面のLogsに出てくる
http://uproda.2ch-library.com/351286Yrr/lib351286.png
ってなんで赤文字で出てるんでしょう?どんな意味があるんでしょうか?
レス数が900を超えています。1000を超えると表示できなくなるよ。