プログラマーとシステムエンジニアのスキルアップサイトIT全般の知識・技術向上のための情報と、システム開発・設計に役立つコンテンツを提供。250pJava7で多くの機能追加が見送られたが、Java8では、大きな機能追加となった。ラムダ式の追加により、プログラムの手法も大きく変わってくる部分も今後は増えてくると思うので、この辺りで最新のJavaの機能を押さえておきたい。この書籍は、Javaの基本を理解している中級者程度以上を対象としているため、余分な初心者向けの解説が無いため、も使えると思う。Java8に関する書籍は他にもいくつか発売されているが、この書籍はJava8の新機能の解説がしっかりされているのはもちろん、Java7での細かな機能追加についてもなされている点が他の書籍との差となり、私はこの書籍を購入した。この書籍でJava7、Java8での機能追加の内容をしっかり押さえておきたい。対応が必要になります。Engine)上で、Twitter連携アプリのサンプルをStruts2.2で作成してみました。Twitter連携には、Twitter4Jというライブラリを利用しています。2.1.6を利用しています。サンプルアプリは、ここを参照してください。パブリックタイムラインまたは、入力したIDのユーザタイムラインを表示します。これらは全て認証の不要なAPIで作成可能になっています。正常に稼働させるまでには、大きく2点障害がありました。ローカル環境で、動作させるまでに必要な対応、そしてデプロイ時のエラーを回避するための対応です。先日のブログ記事で詳細を記述していますので、そちらを参照してください。追加でもう一点対応が必要になりました。action="sample"></s:from>のタグで、フォーム入力の画面を作成する場合にGAEではエラーが発生するようです。原因の詳細は不明なのですが、実行時に以下のエラーが発生します。details.対応方法は、上記で見つからないと言われるクラスをソースフォルダに定義する必要があるようです。詳細は、以下の記事の"Struts2を使うには"の2点目の対応が必要になります。Engine追加するクラスのソースを念のため、以下にも載せておきます。0;}}次に、2点目ですが、ローカルでの実行に問題が無くてもデプロイ時に不明なエラーが発生しました。エラーの内容は、こちらの内容を参照してください。ファイルがパース出来ないという意味合いのエラーの内容です。結局のところ、該当のxmlファイル内のコメントを全て削除することで解決しました。納得はいきませんが、とりあえず動作させる事を優先で対応しました。Configuration、Convention-Plugin)+Twitter連携アプリが完成しました。サンプルのアプリは、ここを参照してください。メソッドを利用しています(いずれも認証不要)今後も、様々なTwitter連携APIのサンプルを作成してみたいと思います。Configuration(アクションマッピング等の設定をファイルに記述しない)ですが、2.0系で使用していた、Codebehindプラグインが非推奨なった。最新のバージョンへの更新および、Codebehindプラグインをやめ、Conventionプラグインへの切換えをおこなってみた。Engine)環境で。時間も結構かかったが、なんとか動作するようになり、Conventionプラグインについても見えてきた。「アクションが見つからない」とのメッセージ。/"Codebehindプラグインを使用していた時にもハマったエラー。その際は次のように、"actionPackages"というパラメータをweb.xmlで設定すれば、指定した名前空間の下にあるアクションクラスを参照してくれるようになった。read)"というエラーも出るようになったりで、Struts2が悪いのか、GAEか、どこがどう悪いかが見当つかなくなった。1点が、Resultのjspファイルが見つからない旨のエラーが発生したこと。"のエラーメッセージ。アクションは実行されたようだだが、ビューファイルが見つからない。結局、順番にひとつづつ試していってわかったこと。/>"でvalueはfalseにする。※これはGAE環境だからかもしれない・・3.GAE環境では、セキュリティマネージャを無効にする必要がある※web.xmlにリスナーを設定してセキュリティマネージャを無効にする。{OgnlRuntime.setSecurityManager(null);}}こんな感じ4.これもGAE環境でのエラーのはず。クラスが見つからない旨のエラー。→xalan関連のクラス。こちらはxalanのライブラリをダウンロードして手動で追加する必要があった。上記の設定で、すべて再起動、再ビルドするとアクションは実行されるようになった。※因みにConventionプラグインでは、web.xmlでの、"actionPackages"パラメータは記述しなくて良く、アクションクラスの格納されたパッケージは自動検出される。→action,actions,struts,struts2の名前のついたパッケージが対象6.ビューファイルが見つからない件Conventionプラグインでは、ビューファイル(jsp等)の配置場所もデフォルトで設定されている。※そりゃ、今までどおりでは、resultのファイルが呼び出されない訳だ。取り急ぎ、jspのビューファイルを、上記場所に移動。以上で、なんとかこれまでどおり、Struts2が動作するようになった。(しかもGAE上で)Conventionプラグインン・・・なかなか癖があり、手ごわかった。これまでは、Conventionプラグインのデフォルトの設定を生かしたが、カスタマイズするには?だけど・・・、方法はあります。struts.xmlファイルに<constant>タグで設定を記述することによって、既定値を変更することが可能です。以下のページで詳しく解説されています。今後、Struts2.2、GAEを連携させてより深いところまで、Struts2を追及していこうと思います。内容Seasar2による現場のノウハウを詰め込んだWeb開発バイブル決定版SAStruts、S2JDBCから周辺プロダクト、携帯Webアプリまで、Seasar2のすべてを徹底解説。Javaベースの国産DIコンテナ「Seasar2」と、Seasar2をベースにしたWebフレームワーク「SAStruts」、データベースアクセスフレームワーク「S2JDBC」の解説書。DIコンテナとしてのSeasar2の基礎から、SAStrutsやS2JDBCといったフレームワークを徹底的に使いこなすために必要となる情報までを一冊にまとめている。ポイントJavaのWeb開発フレームワークとしては定番のひとつとなっているSeasar2。Seasar2は、すでに確立されたフレームワークとして今後大きな機能拡張はされない(もちろん不具合の対応などはきっちりとされている)となっている。DIコンテナ、SAStruts、S2JDBCを利用した開発をおこなうにあたり、安心して利用でき、フレームワークのバージョンアップにおける、大きな互換性の問題もなく利用できそうなので今後学習する内容が、長く活用できると思われる。Seasar2は、国産のフレームワークであることから、日本語のドキュメントや、メーリングリストでのやりとりも活発であることから、学習や、問題の解決のための情報収集も比較的簡単にできる。本書は、「Seasar2徹底入門」となっているが、フレームワークの仕組みという根幹の部分の解説だけではなく、システムの開発における、必要な部分すべてを網羅した形で構成されている。設定情報の外部化、CSVファイル、Excelファイルの操作、携帯Webアプリの開発まで、Seasar2を様々な形で応用できる部分まで触れられている。基本のフレームワーク部分の仕組みの解説についてもう少し厚く解説が欲しかった気もするので、Seasar2のフレームワークの内部に興味がある方は少し物足りないかも。Desire(X06HTII)が発売されました。Android2.1搭載のスマートフォンで、iPhone4に次ぎ、評判は上々のようです。iPhone4の勢いほどではないけど、アプリケーションの開発という点では、より柔軟・オープンであり、今後に期待できます。Desire(X06HTII)は、2010年10月8日には、Andoroid2.2へアップデート可能で、加速度的にiPhoneを凌ぐ勢いとなりそうです。前置きが長くなりましたが、この書籍では、こういった状況を踏まえてかどうか、アプリケーションの開発について、2大スマートフォン(もちろんIPhoneとAndroid)の両方のプログラミングについて書かれた最新の書籍になります。私の場合は、Mac環境、Apple製品を好んで利用しないため、必然的に、Javaでの開発が手軽にできるAndroidとなった訳ですが、スマートフォンの開発については、やはり、iPhone、Android両方の知識について理解する事も大切です。この書籍ではタイトルのとおり、"入門"ではありますが、こうした2大スマートフォンのアプリケーション開発について、両者を比較しながら、体系的に、手軽に学べるという点では、とても有用なバイブルとなると思います。基本的な知識と、技術がしっかり学べると思います。知っておくべき内容がたくさん詰まっていると言えます。開発環境のセットアップポイント2大スマートフォンのアプリ開発が同時にわかる!世界的なブームとなっているiPhone/iPadとAndroidのプログラミングを同時に学びましょう。iPhoneプログラミングの基本、Objective-C、iPadの画面サイズを生かすアプリの作り方、Androidの4大構成要素(Activity,Intent、Service、ContentProvider)、Androidで作る弾幕系シューティングゲームなど、多彩な内容を詰め込みました。iPhone/iPadとAndroidの類似点と相違点を把握しながら学べ、それぞれのOSに対する理解も深まります。補足iPhone/iPadの開発は、通常Mac上での開発となりますが、C#環境でも開発することがが可能なようです(Mono環境)これは、開発の生産性においても、Windowsプログラマにとっても、とても可能性の広がる事だと思います。Appleの対応についても、もっともっとオープンになればうれしいことです。トラックバック(0)twitterと連携するアプリケーション作成のためのAPI群です。OAuthというツイッターの認証機能を利用できる仕組みがあるので、お手軽に、しかもユーザにとっても安心・安全に利用できる仕組みになってる。OAuthを利用するためには、アプリケーションを登録しないといけないので、http://twitter.com/apps上記より、登録します。いう情報を取得できるので、その情報を利用して、ユーザを、twitterの認証ページに誘導し、アプリの利用の同意を頂くと、アプリから、そのユーザができる操作を代行できるようになる。「つい飲み」というWebアプリを作成してみた。"いまなにのんだ?"をコンセプトに、飲んだお酒と"つぶやき"を投稿するアプリ。必要な処理を呼び出す。今回は、Java(Struts2)を利用して、Webアプリケーションを作成した。※twitter4jというOAuthも手軽に利用できるライブラリがあったので。(Twitter)sessionMap.get("twitter");twitter.updateStatus("つぶやきを投稿");}※これでひととおりの操作が可能です。つぶやき以外にも様々な操作がAPIで提供されてます。※携帯からの利用についてですが、twitterの認証機能は、https対応ですが携帯で表示時にtwitterの証明書ではエラーになるようです。携帯からの場合は、HTTPSを、HTTPへ書き換えてあげるとうまくいきます。セキュリティが弱くなるけれど、twitterで通常の携帯ログインもHTTPのようなので、とりあえず問題はないかと...。とりいそぎ最低限のラインで作成してみたので、また機能アップしていきたいと思います。2になった今後も是非とも発展し続けていってほしいと思う。自分自身でもStrtuts2でWebアプリケーションを作っているので、いろいろと情報発信して、Struts2の発展に貢献できればなと思う。Strutsの時よりも、情報源が少なく感じ、なかなか活用しきれていない面があるので、こういった連載が始まるのはありがたい!!記事を見てもらうほうが詳細に理解できますが、さわりだけわかれば良い方は以下を参照してください。2の同期処理を手助けするExecuteAndWaitインターセプタ処理に時間がかかるActionクラスの処理状況を監視し、その結果を自動的に判断するためのExecuteAndWaitインターセプタの使用例を解説。同期処理を実現することが可能になります。具体的な手法としては、ブラウザの自動リフレッシュ機能を利用し、Actionクラス内の時間のかかる処理を、自動で途中中断して、リフレッシュを設定したページを表示。(Actionの実行は継続されセッションに維持される)再度リフレッシュしてサーバにアクセスすると、中断したActionの状況を再度監視できるようになっている。処理中の場合は、再度リフレッシュページへ、処理が完了した場合は完了用のページが表示されるという仕組みです。これらを、上記のExecuteAndWaitインターセプタ(アノテーションの機能)を利用することで設定をおこなうことで、簡単に利用することができます。インターセプタ(汗)まだぜんぜん利用できていないので、実用できるように勉強します。次回もインターセプタの機能についての記事のようです。内容Googleのスケーラビリティを案件で使い切る。活用の秘訣は、「制約」を正しく理解すること。Azureサービスも開始され、クラウドサービスもビジネスだけではなく、個人的な利用についても十分現実的なものになっていきている。Azureも魅力的であるがまだまだ情報も少なく、個人的に試してみるのは、まだ先かなぁと思う。制限を超えることはないと思う。本書では、こういった、サービスの基本的な内容、課金について、導入手順などはもちろん、サービスの各機能の使用方法のポイントを、わかりやすく説明されているので、このサービスの素晴らしさが実感できると思う。触ってみたいという方は、Eclipse環境で導入可能なので以下参照してください。トラックバック(0)2009年9月7日、オープンソース給与・勤怠システム「MosP」のフレームワークとAPIが公開された。略で、「モスプ」と呼ぶ。Webアプリケーションであり、Strutsと同様にMVCアーキテクチャをとる構造となっている。備えており、データベースにアクセスするためのクラスとしてDaoとDtoクラスがある。Excel帳票作成クラスがある。OpenOfficeまたはExeclで作成したテンプレートに値を埋め込んで帳票を作成できる。ドキュメントとして、アプリケーションの作成方法を記述した「MosPフレームワーク手順書」と、APIのドキュメントが用意されている。Communityを開設されており、情報を入手することができる。意見は分かれるだろうが、オープンソースでどのように、給与システムや勤怠管理システムが作られているかは技術者としては気になるところです。Java」が2009年4月に遂に公式発表された。(最初の言語としてにPythonが2008年に公開されています)スクリプト言語ではなく、JavaのWebコンテナ上でのバイトコードでの動作が提供されるのは驚きです(もちろんセキュリティ上の制限はあるようです)JSP、Servletはもちろん、JavaVMで動作することから、JRuby、Jython、Groovy、Scala、Quercusなどを利用して、各種スクリプト言語も動作させることができそうです。Java」を利用するまで進めてみたいと思います。アカウント※インストール・取得方法は割愛します。