WindowsでGrails 2.3.2だとError Forked Grails VM exited with errorで起動しない
Grails 2.3.2でrun-appしたら以下のエラーになった。
現象
| Error Forked Grails VM exited with error | Running Grails application *** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with message transform method call failed at ../../../src/share/instrument/JPLISAgent.c line: 844 Exception in thread "main" | Error Forked Grails VM exited with error
対処
Grails 2.3.2の場合
- 以下をコメントアウト
grails-app\conf\BuildConfig.groovy
grails.project.fork = [ // configure settings for compilation JVM, note that if you alter the Groovy version forked compilation is required // compile: [maxMemory: 256, minMemory: 64, debug: false, maxPerm: 256, daemon:true], // configure settings for the test-app JVM, uses the daemon by default test: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, daemon:true], // configure settings for the run-app JVM run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false], // configure settings for the run-war JVM war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false], // configure settings for the Console UI JVM console: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256] ]
PostgreSQL Studioも Internet Explorerだと使えないという呪い
IEでloginをクリックするとLoading style and images ...で
ぐるぐる回ってログインできない。
Firefox、ChromeでもログインできるのでIE対応にバグがありそう。
http://www.postgresqlstudio.org/support/documentation/supportdocumentationfaq/
Is there a specific browser I need to use PostgreSQL Studio? We haven’t tested across all of the possible browsers, but the GWT supports the following browsers: Firefox Internet Explorer 6, 7, 8, 9 Safari 5, 6 Chromium and Google Chrome Opera latest version We would love to hear feedback on how PostgreSQL Studio works in different environments, so let us know.
あれ?IE9まで?
自分の環境はIE10だ。
でも、IE9でも同じ現象になるというチケットがあるな。
Failed start-up in IE9
こういうツールだと開発者だからIEなんて使うなってことなのかな。
20%高速化されたZenbackのスクリプトコードを試してみた
平均20%+高速化!Zenbackのスクリプトコードが新しくなりました
新旧のZenbackのスクリプトコードで、直近のエントリー4つとGist、アフィリエイト、リンクを貼ってない10/5のエントリー1つで計測してみた。
2013-11-04
2013-11-02
2013-10-28
2013-10-26
2013-10-05
webpagetest
旧スクリプト Load Time | 新スクリプト Load Time | 高速化割合 | ||||
Firxt View | Repeat View | Firxt View | Repeat View | Firxt View | Repeat View | |
2013-11-04 | 16.452s | 13.824s | 16.184s | 13.161s | 1.6% | 4.8% |
2013-11-02 | 20.357s | 16.880s | 20.185s | 16.348s | 0.8% | 3.1% |
2013-10-28 | 17.810s | 14.102s | 17.101s | 14.188s | 4.0% | -0.6% (遅くなった) |
2013-10-26 | 35.567s | 15.453s | 19.351s | 14.476s | 45.6% | 6.3% |
2013-10-05 | 17.393s | 13.682s | 15.442s | 13.247s | 11.2% | 3.1% |
GTmetrix
- デフォルトの設定
- Test Server Region: Vancouver, Canada
- Using: Firefox (Desktop) 14.0.1, Page Speed 1.12.16, YSlow 3.1.7
旧スクリプト Page load time | 新スクリプト Page load time | 高速化割合 | |
2013-11-04 | 7.94s | 6.17s | 22.2% |
2013-11-02 | 10.94s | 10.09s | 7.8% |
2013-10-28 | 10.86s | 7.88s | 27.4% |
2013-10-26 | 7.96s | 8.08s | -1.5% (遅くなった) |
2013-10-05 | 7.11s | 6.97s | 2.0% |
Pingdom Website speed test
- デフォルト設定
旧スクリプトLoad Time | 新スクリプトLoad Time | 高速化割合 | |
2013-11-04 | 11.61s | 4.01s | 65.5% |
2013-11-02 | 8.50.s | 6.66s | 21.6% |
2013-10-28 | 5.63s | 5.71s | -1.4% (遅くなった) |
2013-10-26 | 17.70s | 4.46s | 74.8% |
2013-10-05 | 6.95s | 4.06s | 41.6% |
まとめ
1回しか図らなかったのがまずかったかな。
測定し終わって、同じページで3回測ったら測定値がぶれっぶれ。
でも、一部1%ぐらい遅くなったものもあるが、極端に遅くなったのはないし、
効果はありそう。
それ以上に自分のブログが重さをどうにかしないとダメだ。
いろんなものを貼り過ぎようだ。
amazon 250円クーポンキャンペーンでjenkinsでビルド後に鳴らす効果音を手に入れてみては?
誰でも使える MP3ダウンロード250円クーポンキャンペーンで
250円分のクーポン券がもらえる。
250円分で買えるものとなると1、2曲。
流行りのあまちゃんには興味ないしという人はスルーしてるのではないだろうか。
Jenkinsでビルドしてるなら、ビルド後に効果音として、ドラクエ、スーパーマリオブラザーズなどの
効果音を手に入れてみてはどうだろうか。
スーパー・マリオ・ブラザーズ
参考
jenkinsの設定方法はこちらが詳しい。
Jenkinsでビルド後に音(BGM、SE)を鳴らしてみた
2013年10月 Groovyist/G*のあれやこれや
ブログの秋。
先月よりも倍ぐらいエントリーがあったようだ。
内容もGroovy、Grails、Gradle、G*ワークショップのVert.xもあり。
blog
そろそろPower Assertについてひとこと言っておくか - ぐるぐる~
Bitbucket | The Git solution for professional teams
GitHub - IBM/japan-technology: IBM Related Japanese technical documents - Code Patterns, Learning Path, Tutorials, etc.
[GroovyとProcessing]キーボードとマウスからの入力 - Qiita
ちょっとしたことがGroovy「エラーの出るSSL証明書を無視してHTTPSアクセスをテストする」 - Qiita
本家Grailsユーザガイドを開くと自動的に日本語翻訳にリダイレクトするChrome拡張 - 豆無日記
TDD Boot Camp 横浜 3rd に参加してました #TDDBC - くりにっき
Groovyのちょっとしたこと「マップを使ってオブジェクトの実装」 - Qiita
[GroovyとProcessing]画像を表示する - Qiita
groovyあれこれ: groovyとApache POIでMicrosoft Officeのファイルのプロパティを表示する
groovyあれこれ: groovyとApache POIでPowerpointに角丸四角を描画する
groovyあれこれ: groovyとApache MetaModelでCSVファイルに対してクエリーを実行する
http://qiita.com/i18n/items/72cc2a0c820a8fb0ca72
[GroovyとProcessing]画面のステータスを遷移させる - Qiita
温帯気候: Groovyで色々やってみた テンプレートに関してのメモ
groovyあれこれ: groovyとApache MetaModelでAccessテーブルに対してクエリーを実行する
groovyあれこれ: groovyとApache MetaModelでExcelのシートに対してクエリーを実行する
TDDBC 横浜3rd に参加しました #tddbc - ケロSE
Groovyでカード分配?アルゴリズム - Qiita
SpockでClosureのコールバックをテストする - GeekFactory
groovyあれこれ: groovyとApache MetaModelでRDBのテーブルに対してクエリーを実行する
GradleからPostgreSQL Studioを起動する方法 - Qiita
groovyあれこれ: groovyとApache MetaModelでMongoDBのコレクションに対してクエリーを実行する
http://qiita.com/i18n/items/66d74b4519d4a08edb68
Groovyでカレンダーを生成する方法 - Qiita
Groovy 2.2 で強化された groovysh - Masato Nagai's Blog
groovyあれこれ: groovyとApache MetaModelでXMLファイルに対してクエリーを実行する
一部で話題のIKEAorDEATHをGrailsのコントローラだけで作ってみた - sudo -u grails
[GroovyとProcessing]図形の移動 - Qiita
groovyあれこれ: groovyとApache MetaModelでPOJOのリストに対してクエリーを実行する
TDDBC(TDD Boot Camp)仙台03に参加してきた - marsのメモ
Groovyでtrampolineを使って末尾再帰最適化 - Qiita
antからgradleのタスクを実行する(ベタにexecで) - memo88
groovyあれこれ: groovyとApache MetaModelで集約関数を使用する
groovyあれこれ: groovyとjava-diff-utilsで2つのファイルの違いを表示する
groovyあれこれ: groovyとApache POIを使用してExcelにテキストボックスを描画する
Grailsアプリケーションの構成を理解する(1/4):初心者のためのGroovy/Grails入門 - libro
Grailsアプリケーションの構成を理解する(2/4):初心者のためのGroovy/Grails入門 - libro
Grailsアプリケーションの構成を理解する(3/4):初心者のためのGroovy/Grails入門 - libro
Grailsアプリケーションの構成を理解する(4/4):初心者のためのGroovy/Grails入門 - libro
コントローラーとビューの基本(1/5):初心者のためのGroovy/Grails入門 - libro
コントローラーとビューの基本(2/5):初心者のためのGroovy/Grails入門 - libro
コントローラーとビューの基本(3/5):初心者のためのGroovy/Grails入門 - libro
コントローラーとビューの基本(4/5):初心者のためのGroovy/Grails入門 - libro
コントローラーとビューの基本(5/5):初心者のためのGroovy/Grails入門 - libro
groovyあれこれ: groovyとApache MetaModelでRDBとExcelのデータをJOINしたクエリーを実行する
groovyあれこれ: groovyとApache MetaModelでカラムの型変換を行う
Grails 2.3.1 リリース!2.3系最初のバグフィックス! - leftovers...
[GroovyとProcessing]エンティティを作る - Qiita
GradleでAndroidアプリをビルドする « androidnote
groovyあれこれ: groovyとApache MetaModelでクエリーのソートを使用する
GSPのカスタムタグを使おう(1/4):初心者のためのGroovy/Grails入門 - libro
GSPのカスタムタグを使おう(2/4):初心者のためのGroovy/Grails入門 - libro
GSPのカスタムタグを使おう(3/4):初心者のためのGroovy/Grails入門 - libro
GSPのカスタムタグを使おう(4/4):初心者のためのGroovy/Grails入門 - libro
groovyあれこれ: groovyとApache POIを使用してExcelにデータベース型、ペーパー型、角丸四角を描画する
Gradle でアプリケーションを zip 化する - なんとなくな Developer のメモ
国内注目のWebサービスを支える言語・フレームワーク・アーキテクチャ一覧【2013年版】
GaidenをCMSとして使ってみる - R SATO Weblog
groovyあれこれ: groovyとApache MetaModelでテーブル・カラムを一覧表示する
http://qiita.com/i18n/items/d2e128290d904b8505ff
Groovyのmeta classによるメソッド置き換えとテスト - GeekFactory
Gradle入門 | DevelopersIO
Tim Fox氏、Vert.x 2.0の変更点について語る
GroovyServとGradle Daemonとの違い - 豆無日記
Groovyスクリプトでファイルコピーをやってみる - MofuMofuFarm
JPA(Hibernate)で全文検索する - Qiita
[Grails] プラグインの基本的な使い方 - Qiita
ドメインクラス(Modelクラス)を作ろう!(1/5):初心者のためのGroovy/Grails入門 - libro
ドメインクラス(Modelクラス)を作ろう!(2/5):初心者のためのGroovy/Grails入門 - libro
ドメインクラス(Modelクラス)を作ろう!(3/5):初心者のためのGroovy/Grails入門 - libro
ドメインクラス(Modelクラス)を作ろう!(4/5):初心者のためのGroovy/Grails入門 - libro
ドメインクラス(Modelクラス)を作ろう!(5/5):初心者のためのGroovy/Grails入門 - libro
[Grails] 起動時・終了時になにか処理をしたい場合 - Qiita
http://d.hatena.ne.jp/esmasui/20131024/1382631092
GitHub - IBM/japan-technology: IBM Related Japanese technical documents - Code Patterns, Learning Path, Tutorials, etc.
Gradle初心者がはまったこと、悩んだ事。 - 600000007
Gradle ためしてみる - yamanetoshi's diary
JavaでのHttpClientサンプル - CLOVER🍀
GradleのCoveturaPlugin設定 - Qiita
GitHub - IBM/japan-technology: IBM Related Japanese technical documents - Code Patterns, Learning Path, Tutorials, etc.
Gradle で Build したら UnsatisfiedLinkError - yamanetoshi's diary
GitHub - yamanetoshi/HowToUseGradle: Gradle を使ってパッケージを作るための設定について (OSX 限定)
GroovyでStateモナドを書いてみる - uehaj's blog
「そろそろPower Assertについてひとこと言っておくか」に、SpockのPower Assertならどうだろう?と思って試してみたけど
Groovyの人気が急上昇!!
Gradle でコマンドラインから指定したタスク名を取得する方法
Gradleでzipファイルをダウンロードする
Gradleでzipファイルを解凍する
Gradleで依存関係を設定して2つのタスクを1つにまとめる
Gradleでタスクから別のタスクを呼び出す
Gradeを使って配布されているWarファイルをjetty上で動作させる
GradleからPostgreSQL StudioのWarファイルをダウロードしてJetty上で動作させる
Q
Q&A
Vert.xハンズオン with CRaSH - JGGUG G*ワークショップZ Oct 2013
Vert.xハンズオン with CRaSH - JGGUG G*ワークショップZ Oct 2013 (資料の)まとめ #jggug
リンク切れやおかしなリンク、漏れがあったら、教えてください。
コメント、トラックバック、はてブ、Twitter @orange_clover宛 で、お願いします。
G*エコシステムの代表例
コミュニティ
- JGGUG、日本 Grails/Groovy ユーザーグループ
- @jggug
- @hatena_groovy
- @hatebu_groovy
- @groovybook
イベント・勉強会
- イベントカレンダー
- 次回G*ワークショップZは、11/15(金) Grails 2.3: RESTハンズオン
- G*(Groovy, Grails ..) Advent Calendar 2013
ドキュメント
始めるためのまとめ
書籍
GradleからPostgreSQL StudioのWarファイルをダウロードしてJetty上で動作させる
やりたいこと
Gradleでzipファイルを解凍する
Gradleで依存関係を設定して2つのタスクを1つにまとめる
Gradeを使って配布されているWarファイルをjetty上で動作させる
上記3つをまとめて、GradleからPostgreSQL StudioのWarファイルをダウロードしてJetty上で動作させたい。
JavaでWebアプリを使用してる人なら、なんなくデプロイして動作させることもできるだろうけど、
Warファイルってなに?って人向けにGradleでWar、Servletコンテナ・WebサーバのJettyもダウンロードして
PostgreSQLを動作させる。
使用方法
- gradle deploy 初回のみ
- gradle warRun
動作結果
gradle deploy :downloadZip :unzip :deploy BUILD SUCCESSFUL Total time: 46.576 secs gradle warRun :compileJava UP-TO-DATE :processResources UP-TO-DATE :classes UP-TO-DATE :war SKIPPED :jettyRunWar :warRun BUILD SUCCESSFUL Total time: 1 mins 22.652 secs
以下にアクセス
http://localhost:8080/pgstudio/
なにGradleがない?
Gradleがない環境でも動作できるようにGradleラッパーというものがある。
https://github.com/orangeclover/pgstudio
git cloneするなり、zipをダウンロードするなり。
- gradlew deploy 初回のみ
- gradlew warRun
$ gradlew deploy Downloading http://services.gradle.org/distributions/gradle-1.8-bin.zip .....................................................................
上記のようにgradlewを使用することで、gradle自信もダンロードしてくれる。
なにJavaがない?
OSのパッケージマネージャーなり、Oracleからダウンロードするなりして・・・
Macならjvmってのもあるよ。
JVM the *poor* Java enVironment Manager only for Mac
環境
------------------------------------------------------------ Gradle 1.8 ------------------------------------------------------------ Build time: 2013-09-24 07:32:33 UTC Build number: none Revision: 7970ec3503b4f5767ee1c1c69f8b4186c4763e3d Groovy: 1.8.6 Ant: Apache Ant(TM) version 1.9.2 compiled on July 8 2013 Ivy: 2.2.0 JVM: 1.7.0_45 (Oracle Corporation 24.45-b08) OS: Windows 7 6.1 amd64
添削歓迎
ここ間違ってるよ
こうした方がよくないか?
こういうことなんじゃないかな。
この環境だとこうなるよ
などなど
方法は、コメント、はてブ、Twitter @orange_clover宛 で、お願いします。
Gradeを使って配布されているWarファイルをjetty上で動作させる
やりたいこと
ソース環境をGradleを使ってビルドして、Jettyで起動するのではなく、
配布されてるwarファイルをjettyへデプロイして、起動して、サクッと動作させたい。
warファイルは既に手元にある状態で、ソースからのビルドはしたくない。
「java -jar xxx.war」 で動かせるものもあるけど、
そうなっていないWarファイルを手軽に動かしたい。
jettyでwarファイルのデプロイはどうやる?
リファレンスだと、
warファイルってどこにあったっけ?
samples\webApplication\quickstart で試す。
─build │ ├─classes │ │ └─main │ │ └─org │ │ └─gradle │ │ └─sample │ │ Greeter.class │ │ │ ├─dependency-cache │ ├─libs │ │ quickstart.war ←デプロイしたWarファイル │ │ ---->8 ばっさり 8<---- │ └─war │ MANIFEST.MF │ └─src └─main ├─java │ └─org │ └─gradle │ └─sample │ Greeter.java │ ├─resources │ greeting.txt │ └─webapp index.jsp
libs/XXX.war におけばよさそうだ。
構成
. │ build.gradle │ └─build └─libs webapp-quickstart.war
build.gradle
samples\webApplication\quickstart を真似る
apply plugin: 'war' apply plugin: 'jetty' httpPort = 8080 stopPort = 9451 stopKey = 'foo'
実行
Gradle jettyRunwar :compileJava UP-TO-DATE :processResources UP-TO-DATE :classes UP-TO-DATE :war > Building > :jettyRunWar > Running at http://localhost:8080/DeloyAndRun
実行してるディレクトリ名になってしまってる。
build\libs\DeloyAndRun.war ができてるし。
warファイル名を設定
war { baseName = 'quickstart' archiveName = "webapp-quickstart.war" from 'war' }
実行
gradle jettyRunWar :compileJava UP-TO-DATE :processResources UP-TO-DATE :classes UP-TO-DATE :war > Building > :jettyRunWar > Running at http://localhost:8080/quickstart
結果
あれ??
原因
warファイルが置き換わってる
2013/10/26 16:03 261 webapp-quickstart.war
何が動いてる?
Gradle -i jettyRunWar Starting Build Settings evaluated using empty settings script. Projects loaded. Root project using build file 'C:\workspace\Gradle_SandBox\DeloyAndRun\build.gradle'. Included projects: [root project 'DeloyAndRun'] Evaluating root project 'DeloyAndRun' using build file 'C:\workspace\Gradle_SandBox\DeloyAndRun\build.gradle'. Starting file lock listener thread. All projects evaluated. Selected primary task 'jettyRunWar' Tasks to be executed: [task ':compileJava', task ':processResources', task ':classes', task ':war', task ':jettyRunWar'] :compileJava (Thread[main,5,main]) started. :compileJava Skipping task ':compileJava' as it has no source files. :compileJava UP-TO-DATE :compileJava (Thread[main,5,main]) completed. Took 0.652 secs. :processResources (Thread[main,5,main]) started. :processResources Skipping task ':processResources' as it has no source files. :processResources UP-TO-DATE :processResources (Thread[main,5,main]) completed. Took 0.052 secs. :classes (Thread[main,5,main]) started. :classes Skipping task ':classes' as it has no actions. :classes UP-TO-DATE :classes (Thread[main,5,main]) completed. Took 0.034 secs. :war (Thread[main,5,main]) started. :war Skipping task ':war' as it is up-to-date (took 0.113 secs). :war UP-TO-DATE :war (Thread[main,5,main]) completed. Took 0.521 secs. :jettyRunWar (Thread[main,5,main]) started. :jettyRunWar Executing task ':jettyRunWar' (up-to-date check took 0.001 secs) due to: Task has not declared any outputs. Configuring Jetty for root project 'DeloyAndRun' Logging to Logger[org.mortbay.log] via org.mortbay.log.Slf4jLog Context path = /quickstart Tmp directory = determined at runtime Web defaults = org/mortbay/jetty/webapp/webdefault.xml Web overrides = none Starting jetty 6.1.25 ... jetty-6.1.25 No Transaction manager found - if your webapp requires one, please configure one. Started SelectChannelConnector@0.0.0.0:8080 > Building > :jettyRunWar > Running at http://localhost:8080/quickstart
warタスクが動作してるから、空のwarファイルができるのか。
jettyRunWarタスクはwarタスクに依存してる
Warタスクを実行しないようにすればいいのかだら、-x Warをつける
Gradle jettyRunWar -x War > Building > :jettyRunWar > Running at http://localhost:8080/quickstart
でも、-x Warを付け忘れると、Warファイルが上書きされてしまうので、どうにかしたい。
依存関係でどにかできるか?
warタスクを除外するのはどうする?
15.8.3. タスクの有効化と無効化
これでいけそう。
task warRun {
war.enabled = false
dependsOn jettyRunWar
}
実行結果
Gradle warRun :compileJava UP-TO-DATE :processResources UP-TO-DATE :classes UP-TO-DATE :war SKIPPED > Building > :jettyRunWar > Running at http://localhost:8080/quickstart
環境
------------------------------------------------------------ Gradle 1.8 ------------------------------------------------------------ Build time: 2013-09-24 07:32:33 UTC Build number: none Revision: 7970ec3503b4f5767ee1c1c69f8b4186c4763e3d Groovy: 1.8.6 Ant: Apache Ant(TM) version 1.9.2 compiled on July 8 2013 Ivy: 2.2.0 JVM: 1.7.0_45 (Oracle Corporation 24.45-b08) OS: Windows 7 6.1 amd64
添削歓迎
ここ間違ってるよ
こうした方がよくないか?
こういうことなんじゃないかな。
この環境だとこうなるよ
などなど
方法は、コメント、はてブ、Twitter @orange_clover宛 で、お願いします。