2011/07/28
2011/07/16
Google App EngineのJava版のチュートリアルを試してみました。
今までGoogle App Engineは、Python版しか使ったことがなかったので、Java版を使ってみました。下記の構成で試してみます。
・Windows7 Home
・Eclipse 3.7.0 Indigo
・Google Plugin for Eclipse
Google Plugin for Eclipseをインストールすれば、Google App Engine Java SDKも一緒にインストールされます。
Google App Engine java プロジェクトの作成
http://code.google.com/intl/ja/appengine/docs/java/gettingstarted/creating.html
の内容に従って、チュートリアルを進めます。
「JSP の使用」のところでエラーが出ました。
JSP の使用
http://code.google.com/intl/ja/appengine/docs/java/gettingstarted/usingjsps.html
/intl/ja/guestbook.jspにアクセスできません。というエラーです。調べてみると、チュートリアルのソースが間違っているようです。
SignGuestbookServlet.javaを修正
resp.sendRedirect("/intl/ja/guestbook.jsp"); を resp.sendRedirect("/guestbook.jsp"); に修正
上記の問題は解決しました。その後のチュートリアルの内容は、問題なく動作できるのですが、「実行」をすると、「必要なプロジェクトでエラー」とのアラートが表示されます。ソースを確認すると、guestbook.jspに赤い×マークが付いています。アラートの内容を確認すると
型の安全性: Object から List
とのメッセージでした。このメッセージを調べると、下記のサイトの記載を見つけました。
「未検査キャスト」という警告が出たら
http://d.hatena.ne.jp/makiyamakoji/20090303/p1
「この警告に対する根本的な解決策はありません。」とのことなので、このままにしておきます。
アプリケーションのアップロードをします。
アプリケーションのアップロード
http://code.google.com/intl/ja/appengine/docs/java/gettingstarted/uploading.html
Eclipseのツールバーの[App Engine の配備(Deploy App Engine)] ボタンを使うと簡単にデプロイできました。
今まで、Pythonで作っていたアプリケーションIDを設定して、バージョンを一つ上げてアップしてみました。My Applicationsの管理画面のVersionsのページにて、アップしたVersion2をDefaultに設定すれば、問題なく動作しました。Google App Engine Java版は、Eclipseのプラグインを使えば、Eclipseがほぼ必要な作業はしてくれるので、簡単に出来る感じがしました。
http://vivo-red.appspot.com/guestbook.jsp
Google App Engineのサイトをみると、「Go」でもApp Engineの開発ができるようです。まだ、Google App Engineの日本語対応ページには、その記述はありませんが、下記にその記述がありました。
Google App Engine Getting Started: Go
http://code.google.com/intl/ja/appengine/docs/go/gettingstarted/
ラベル:
eclipse,
Google App Engine,
Java
2011/07/10
マップ上にコメント付きで画像を配置できるGoogle App EngineアプリのIEでの表示不具合を修正しました。
マップ上にコメント付きで画像を配置できるGoogle App EngineアプリのIEでの表示不具合を修正しました。このアプリのIEでの表示調整をしていなかったので修正してみました。まだ不具合は残っていますが、大まかなところは表示できるようになりました。
地名と共に画像をアップすると、マップ上にコメント付きで画像を配置できるGoogle App Engineアプリを試してみました
http://vivo-design.blogspot.com/2011/07/google-app-engine.html
IETesterを使って表示を確認しました。IE5.5はGoogle Mapsの表示に不具合が残っています。IE6、IE7、IE8は問題なく表示されました。
IE9に関しては、IETesterで確認するとクラッシュしてしまうので、IE9単体で確認しました。問題ないようです。
このアプリを作成する際、IEでの表示不具合を修正する際、毎回のDeploy(デプロイ)時に、Googleアカウントとパスワードを入力するのが面倒でした。下記のサイトで、毎回のGoogleアカウントとパスワードの入力を不要にする方法を教えていただきました。
GAEサーバーにバッチで簡単デプロイ!
http://bit.ly/ozF72q
初回起動時だけ、Googleアカウントとパスワードの入力は必要ですが、それ以降は、パソコンを終了するまでは入力不要になります。バッチファイルをクリックするだけで、デプロイが完了するのでとても楽になりました。ありがとうございます。
ラベル:
Google App Engine,
Google Maps
2011/07/09
JavaのウェブアプリケーションフレームワークSpring Frameworkを試してみます。
SAStrutsの次に、JavaのウェブアプリケーションフレームワークSpring Frameworkを試してみます。Spring Framework 3.1を試します。SAStrutsについては、沢山の情報がありましたが、それに比べて、Spring Frameworkは日本語での情報が少ないように感じました。
SAStrutsと同様に、Eclipseプラグインを入れて、チュートリアル的なコンテンツがあれば、Spring Frameworkがどのようなものか分かると思います。しかし、SAStrutsでは、簡単に用意できた環境が、Spring Frameworkではなかなか用意できませんでした。
下記のサイトの記述を参考にSpringIDEプラグインを導入しました。
Springフレームワーク
http://w.livedoor.jp/w2u_dev/d/Spring%A5%D5%A5%EC%A1%BC%A5%E0%A5%EF%A1%BC%A5%AF
しかし、下記のエラーが出ます。
1 つ以上の必須項目が見つからないため、インストールを完了できません。 Software being installed: SpringSource Tool Suite Runtime Error Analysis Support 2.6.0.201103161000-RELEASE (com.springsource.sts.runtimeerroranalysis.feature.group 2.6.0.201103161000-RELEASE) Missing requirement: SpringSource Tool Suite Runtime Error Analysis Support 2.6.0.201103161000-RELEASE (com.springsource.sts.runtimeerroranalysis.feature.group 2.6.0.201103161000-RELEASE) requires 'com.atlassian.connector.eclipse.jira.feature.group 0.0.0' but it could not be found
エラーメッセージから判断して、下記のプラグインをインストールしてみました。
http://download.eclipse.org/tools/ajdt/37/update
http://update.atlassian.com/atlassian-eclipse-plugin/e3.6/
さらに、色々調べてみると、SpringSource Tools Suite(STS)というものがあることが分かりました。エラーメッセージの中にも「SpringSource Tool Suite Runtime Error」という言葉があるので、SpringSource Tools Suite(STS)をインストールしました。
すると、SpringIDEプラグインのCoreだけはインストールすることが出来ました。
Eclipseの新規プロジェクトの選択肢の中にSpring関連のプロジェクトが用意されました。その中にSpringSource Tools Suiteもインストールされていました。
しかし、この後、チュートリアル的なコンテンツがどこにあるのかが分かりません。
Springの公式サイトにサンプルらしきものが公開されているので、これを試す方法から調べてみます。
https://src.springframework.org/svn/spring-samples/
2011/07/07
JavaのウェブアプリケーションフレームワークのSAStrutsを試してみました。
JavaのウェブアプリケーションフレームワークのSAStrutsを試してみました。
Javaのウェブアプリケーションフレームワークの比較を下記のページで教えていただきました。
Javaフレームワークの比較検討資料公開
http://d.hatena.ne.jp/t_yano/20081118/1227008018
このページの内容を拝見して、他のサイトも調べてみて、SAStruts、Spring Framework、Google Guiceなどに興味が出て来ました。どれも面白いそうです。どれも言葉ぐらいは聞いたことはありましたが、内容については、まったく知りませんでした。
この中から、まず、SAStrutsを試してます。Javaのウェブアプリケーションフレームワークとしては、Strutsはまだまだよく使われているとの情報をあちこちで見ました。SAStrutsは、Strutsを使いやすくしたものとの記述がありました。
Windows 7 で、SAStrutsの動く環境を用意します。
一番簡単に環境を用意するために、下記のパッケージを利用します。
Eclipse 3.7.0 Indigo Windows 32bit ベース / Pleiades All in One 3.7.0.v20110704
http://mergedoc.sourceforge.jp/
Eclipseが既に日本語化されていて、Tomcatも入っているので簡単です。
ダウンロードして解凍した「pleiades-e3.7-ultimate-jre_20110704」---「eclipse」フォルダの中にある「eclipse.exe」を起動します。
下記のページを参考に、eclipseにSAStrutsのプラグインをインストールします。
eclipseにSAStrutsのプラグインをインストール
http://ichitcltk.hustle.ne.jp/gudon/modules/pico_rd/index.php?content_id=2
次に、Super Agile Strutsチュートリアルの「sa-struts-tutorial-1.0.4-sp8.zip」をダウンロードします。
Super Agile Struts - Download
http://sastruts.seasar.org/download.html
次に、ダウンロードした「sa-struts-tutorial-1.0.4-sp8.zip」をセットアップします。
チュートリアルのセットアップ
http://ichitcltk.hustle.ne.jp/gudon/modules/pico_rd/index.php?content_id=3
「sa-struts-tutorial」プロジェクトのsrc/main/java/を展開して「tutorial.action」パッケージのIndexAction.javaを選択、 マウスの右クリックメニューより「SAStruts」→「サーバで表示」を選択します。
チュートリアルのトップページが表示されました。
プログラムも正常に動作しました。「足し算」プログラムを元に、引き算に修正してみました。
2011/07/04
地名と共に画像をアップすると、マップ上にコメント付きで画像を配置できるGoogle App Engineアプリを試してみました
地名と共に画像をアップすると、マップ上にコメント付きで画像を配置できるGoogle App Engineアプリを試してみました。
Google App Engine と Maps で作ったWebアプリのソースを公開されている方がいました。面白そうなソースなので、設置をして試してみました。このような動くサンプルを見せていただけると、とても良くGoogle App Engineの構造が分かります。感謝!
自分のアカウントでアップしてみました。Pythonの部分は1点のみ修正をしています。見栄えについては変更しました。
My Photo in Google Maps on GAE
http://vivo-map.appspot.com/maps
Pythonのソースの修正した部分について。ローカルで動作テストをすると、ジオコーディングは正常に動作するのですが、サーバ上に上げると、緯度経度の取得が出来ない現象がありました。サーバ上で何が起きているのかをステータスコードで確認をすると、「google.maps.GeocoderStatus.OVER_QUERY_LIMIT」というステータスを取得していることが分かりました。これは、「使用制限回数の上限を超えたことを示している」そうです。ローカルからのリクエストは問題なく、サーバからのリクエストで問題が起きるのが、よく分かりません。
ジオコーディングをしている下記の部分を変更してみました。
class PostPage(webapp.RequestHandler): def getGeometory(self, place): url = u"http://maps.google.com/maps/api/geocode/xml?address=%s&sensor=false" % urllib.quote(place.encode('utf8')) result = urlfetch.fetch(url) lat = 35.6895060 # 東京 lng = 139.6917010 # 東京 if result.status_code == 200: doc = xml.dom.minidom.parseString(result.content) if doc.getElementsByTagName('status').item(0).childNodes[0].data == "OK": lat = doc.getElementsByTagName('lat').item(0).childNodes[0].data lng = doc.getElementsByTagName('lng').item(0).childNodes[0].data return db.GeoPt(lat, lng)
Pythonのgooglemapsモジュールを使った検索にしてみました。内部では同じことをしているのだから、ダメかと思いましたが、サーバ上でも動作をしました。
# モジュールを追加 from googlemaps import GoogleMaps class PostPage(webapp.RequestHandler): def getGeometory(self, place): gmaps = GoogleMaps() address = place.encode('utf8') lat, lng = gmaps.address_to_latlng(address) return db.GeoPt(lat, lng)
でたらめな場所(地名/駅名/〒)の情報でも、何かしらの場所の緯度経度に変換をして地図にポイントをします。
下記の記事のソースを使わせていただきました。
Google App Engine と Maps でWebアプリ作ってみた
http://sakitake4.blogspot.com/2011/04/google-app-engine-maps-web.html?spref=tw
ありがとうございました。
ラベル:
Google App Engine,
Google Maps,
Python
登録:
投稿 (Atom)
人気の投稿 (過去 30 日間)
-
昨日申し込みをしていた Evernote API Keyが送られてきていました。 早速、Pythonのサンプルコードに「consumer key」「consumer secret」を設定して試してみました。evernote-api-1.17/lib/python の階層...
-
MacBook Airを仕事でプロジェクターに接続ことがあり、どのようにすれば、切り替えが出来るのかを調べました。忘れやすいので、備忘録として記録。 Windowsノートパソコンにプロジェクターを繋げて、プロジェクターに出力を切り替える時には、ファンクションキ...
-
本日 2010/11/07 山陽新幹線ふれあいデーに行ってきました。岡山新幹線車両基地が一般公開されました。岡山新幹線車両基地は、博多総合車両所 岡山支所というのが正式な名称のようです。いつも外から新幹線を眺めていましたが、車両基地に入るのは初めてでした。 朝、大安寺駅に...
-
MacBook Airでプロジェクターに接続をして、出力を切り替える方法 に続いて、iPad miniをプロジェクターに接続する方法を記録しておきます。 iPad miniでは、外部機器との接続は、Lightningコネクタで行います。Lightningコネクタに接続で...
-
Google Map API helper app for Djangoを利用してみたかったのですが、helperの使い方が良く分かっていないようです。Djangoの仕組みの細部まで理解するには、「Djangoドキュメント」が大変分かりやすいのですが、それでも、何かアプリを...
-
前回の 『「放射線で遺伝子が傷つく理由」を子どもに分かりやすく説明するには その1』 の続き 遺伝子(DNA)の詳細をみていきます。遺伝子を拡大して確認すると、下記の図のような構造になっています。 遺伝子(DNA)とは、生物の遺伝情報を持っています。人の細...
-
2015/08/25に、備北オートビレッジにキャンプに行ってきました。備北オートビレッジには、岡山市から、高速道路の岡山道、中国縦貫道を通って、ゆっくり休憩を取りながらも、2時間ちょっとで到着します。 備北オートビレッジ http://www.bihoku-park.go...
-
前回の投稿の流れで、android-scripting「SL4A」をインストールしてみました。 android-scripting SL4A のサイトに表示されているQRコードをHT-03Aのバーコードスキャナーで読み込んで、「sl4a_r3.apk」をインストー...
-
App Inventor for Android のチュートリアルをやってみました。「Quiz Me (クイズのアプリ)」 Quiz Me 大リーグに関するトリビアに答えるクイズアプリを作成するチュートリアルです。答えを入力して、「Submit」を押すと、「corre...
-
Bloggerでブログを書いてきましたが、主に書くブログを静的サイトジャネレーターでの運用に変更をします。 Bloggerも使いやすいブログなのですが、管理画面にアクセスして、一記事ごと書く運用が、億劫になってきました。静的サイトジャネレーターで運用をすれば、すべてのページ...