Code Archive Skip to content Google About Google Privacy Terms
iTextはJavaでPDF出力するためのオープンソースライブラリです。 iTextを使用する際は、MPL、LGPLから、いずれかのライセンスを選択することとなっています。 iTextだけでもPDFは作成できますが、 日本語フォントの描画には、iTextAsian.jar(とiTextAsianCmaps.jar)が必要です。 1. SourceForgeのiTextダウンロードのページからiTextをダウンロード。 2. iTextダウンロードのページ「extrajars>ExtraJars1.0」よりiTextAsian.jarとiTextAsianCmaps.jarをダウンロード。 3. iTextAsian.jarとiTextAsianCmaps.jarの拡張子を「.zip」に変更して、解凍ソフトでファイルを解凍する。 4. 各ディレクトリの「com/lowagie」のディレクトリ
※2010/4/23 sessionのクリアについてご指摘頂き、追記しました。Google App Engine for Java(GAE/J)にて、どんなアプリを使う場合でも (自分的に)ほぼ必須となる設定ファイルのまとめ。 ていうか、リファレンス読めばいーんだけどさ 1.sessionを有効にする & クリアの設定をする Javaでsession使わないケースなんてあるのか? appengine-web.xml に 下記を追加 <sessions-enabled>true</sessions-enabled> GAE/Jでsessionを使う場合、このままだとDatastoreにsession情報が残ったままなので定期的にクリアするcronを設定する web.xml に 下記を追加 <servlet> <servlet-name>_ah_sessioncleanup</servlet-
Slim3 1.0.0をリリースしました。 リリースノートはこちら http://sites.google.com/site/slim3appengine/release-notes ダウンロードはこちら http://code.google.com/p/slim3/downloads/list Slim3の主な特徴は次のとおりです。 Global Transactions Faster than JDO/JPA Fast spin-up HOT reloading Type safe query 詳しくはこちらをどうぞ http://slim3.org Seasar2譲りのHOT reloadingやS2JDBC譲りのType safe queryなどもありますが、最大の特徴は、Global Transactionsを実装していること。 http://d.hatena.ne.jp/hig
Google App Engineだと、30秒制限があって長い処理が書きにくいのですが、タスクキューは処理中に例外が発生したり30秒制限にひっかかったりすると自動的に呼び直されるので、これを使って長い処理を実行することができます。 ということは知っていたんだけど、実際どうなのかと思って試してみた。 まずこんなサーブレット書きます。 ※GAE/JはServlet3.0に対応してないので、@WebServletアノテーションは擬似コードだと思ってください。 5秒に一回QueueTestに現在値を記録するという処理を行うループを20回繰り返します。5秒×20=100秒 >> 30秒なので、確実にタイムアウトします。 タスク開始時の値をQueueLogに記録しておきます。 @WebServlet(urlPatterns="/queue/testqueue") public class TestQu
http://code.google.com/intl/ja/appengine/docs/java/config/cron.html#Securing_URLs_for_Cron (要約)cron対象のURLへのアクセスを管理者権限必須とすれば、ユーザからのアクセスを防止できるお! 動かぬ……discussion forumとissue trackerを調べてみる。 Issue 1299: Cron tasks targeting "admin" protected servlets fail (要約)管理者権限必須にしちゃうとcronに失敗するお! ニャー!! ドキュメントに書いてることは実装されてて欲しかった! 弊社製品かよ! 他にも、拙者はIssue 1255: XPathFactory newInstance() fails on App Engine(要約:XPathが使えない
Python æ¦è¦ CGI ç°å¢ ãã¼ã¿ã®æ ¼ç´ æ¦è¦ ã¨ã³ãã£ãã£ã¨ã¢ãã« ãã¼ã¿ã®ä½æãåå¾ãåé¤ ãã¼ã¨ã¨ã³ãã£ã㣠ã°ã«ã¼ã ã¯ã¨ãªã¨ã¤ã³ããã¯ã¹ ãã©ã³ã¶ã¯ã·ã§ã³ åã¨ãããã㣠ã¯ã©ã¹ GQL ãªãã¡ã¬ã³ã¹ ãªãã¡ã¬ã³ã¹ Model Expando PolyModel Property Query GqlQuery ãã¼ é¢æ° ä¾å¤ ãµã¼ãã¹ Memcache æ¦è¦ Memcache ã®
Memcache Java API 概要 高パフォーマンスでスケーラブルな Web アプリケーションでは通常、一部のタスクに、強力な永続性ストレージより前に、あるいはその代わりに分散型インメモリ データ キャッシュを使用します。 App Engine にメモリ キャッシュ サービスが含まれているのはそのためです。 JCache を使用したデータ キャッシュ メモリ キャッシュを使用する場合 キャッシュされたデータの期限切れ 割り当てと制限 JCache を使用したデータ キャッシュ Memcache Java API は、JSR 107 に記述されたドラフト標準である JCache インターフェース(javax.cache)を実装しています。JCache はキャッシュされたデータへのマップのようなインターフェースを提供します。キーを使用し、キャッシュへの値の保存およびキャッシュからの値の取
Scheduled Tasks With Cron for Java The App Engine Cron Service allows you to configure regularly scheduled tasks that operate at defined times or regular intervals. These tasks are commonly known as cron jobs. These cron jobs are automatically triggered by the App Engine Cron Service. For instance, you might use this to send out a report email on a daily basis, to update some cached data every 10
TaskQueueで分散処理した結果をまとめるときは、排他を考慮する必要があります。Datastoreを使う場合なら、単に結果を新規エンティティとして追加したり、エンティティグループの楽観排他を使ったりすればOKです。一方、やっぱりMemcacheでスピーディーに集約したいよ、という場合は、Memcache上で排他を実装する必要があります。以前のエントリにちょろっと書いたMemcacheService#incrementでスピンロックという方法について説明してほしいというコメントをid:miztakaさんよりいただいたので、ここに改めて書きたいと思います。 Memcacheでは排他制御が必要 ご存じのとおり、App Engineはデフォルトで複数のApp Serverによるクラスタが構成されており、またMemcacheサービスはクラスタ全体で共有されるグローバルなキャッシュとして機能します
GAE/Jでwikipediaの検索結果をMemcache APIを利用し検索結果やCachestatisticsを表示してみました。 http://yone098.appspot.com/ JSR107は、どスルーだったのですがこれを機に少し見てみたいと思います。 同じキーワードならMemcacheを使っていて、数倍の速度が体感出来ます。 JCacheの使い方は非常に簡単なので、暇な人は試してみると良いと思います。 Map<Integer, Integer> props = new HashMap<Integer, Integer>(); // cahceのexpire設定 props.put(GCacheFactory.EXPIRATION_DELTA, 3600 * 3); CacheFactory cacheFactory = CacheManager.getInstance().
slim3では、Controllerにて入力チェックを行う[Validators]が用意されています。 使い方については、公式サイトを参考にしてください。 ここで、[Validators]にはSAStrutsの検証用アノテーションにあったような 正規表現による入力チェックが実装されていません。 そこで、[Validators]の入力チェックを拡張します。 作成ファイル 1. チェック処理を行うValidatorクラスを作成します。 MaskValidator.java public class MaskValidator extends AbstractValidator { /** 正規表現パターン */ protected String pattern; /** * コンストラクタ * @param pattern 正規表現パターン */ public MaskValidator(St
先日、友達の会社の勉強会で「初めてのGAE/J開発」というタイトルの発表をさせていただきました。準備不足や時間配分のミスがあったため、後半飛ばしぎみになって申し訳ありませんでした。 GAEの制限ばかりを強調しすぎて逆に使えないような印象をもってしまったかもしれませんが、決してそんなことは無いと思います。(だから、私もいまGAEに注目しているわけですし。)特にBigtableは今までとは違った考え方が必要なので、これまでのRDBのように考えるとうまく行かないのは間違いありせん。(私も何度も悩まされました。いや、今もですが。) しかし、だからといってそれはやり方の問題であって、そのままGAEが使えないという理由にはならないはずです。BigtableにはBigtableのやり方が必ずあるはずです。また、WikipediaやTechCrounchによると、GoogleのたくさんのサービスがBigt
プログラミングや、コンピュータなどの備忘録です。 主にRuby, Java, Linux, 等を扱います。アルゴリズムも扱いたいな。 GAE/Jで開発をしていると、どうしてもXMLを操らなきゃいけないときがあります。開発機でRomeを使って動いたぞと思って本番環境にデプロイしても動作しません。下のような例外が発生してしまいます。 Could not load default SAX parser なんて言われてしまいます。これを解決するにはxercesの次のjarが必要になります。 serializer.jarxercesImpl.jaxercesSamples.jarxml-apis.jar これでも実はまだ足りません。XPathを使おうと思っても、xercesにはXPathのAPIは用意されておらず、 XPathFactory.newInstance() 上のようにするとやはり例外が発
Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode
Slim3の正式リリースは、来年の一月くらいになりそうですが、ドキュメントも最低限のものはそろったので、今の段階のものをPreview版として紹介しておきます。 サイトへは、http://slim3.org でアクセスしてください。 Getting Startedをやり、Slim3 Datastoreのドキュメントを読み、Online demoをみれば、Slim3のことは把握できるようになっています。 Oneline demoからソースも見れるようになっているので、動かしながらソースを確認することができます。Online demoは、IE6で見るとレイアウトが崩れていますが、これはIE6を使うなというメッセージということで。(IE7,8では未確認) Slim3は、Google App Engineに対して最適化されています。 例えば、最近、App Engineで問題になっているのは、spi
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く