おしりんブログ

新人PGおしりんの色々まとめるよブログ

CSVインポート・エクスポートのこねた

芝桜を見に行きたいおしりんです。
開発中のめもをのこします。

CSVMySQLにインポートする時に文字コードの関係とか何やらでうまく取り込めないことがあるます。

そうならないために、エクスポートする時に区切り文字やら改行文字をちゃんと指定したいと思うます。

エクスポート

SELECT * INTO OUTFILE 'ファイル名' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '' LINES STARTING BY '' TERMINATED BY '\r\n' FROM テーブル名;

★場所指定して権限エラーが出る場合は特に場所指定せずにファイルを作成
ここにできる→C:\ProgramData\MySQL\MySQL Server 5.6\data\DB名

インポート

load data local infile 'ファイル名' into table テーブル名 fields TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '' LINES STARTING BY '' TERMINATED BY '\r\n';

JDK1.7+Gebが動かない

おしさしぶりです。
早いもので気づいたら3年目になっていました、おしりんです。

ここ3日間くらい、ひっさしぶりにはまりました。

そうです、Gebが動かないんです。
Spockは動くのにGebが動かないんです。

テスト開始してブラウザは立ち上がるものの、すぐに落ちるんです。
そしてひたすらVerifyErrorが出続ける・・

はまりにはまった結果、結局自分では解決できませんでしたが、先輩が解決してくれたのでご共有。

JDK1.7でGebが動かない!って人は参考にしてみてください。

・VerifyErrorがどうにも止まらない環境

Java 1.7
Gradle 2.4
Groovy 2.4.4

これでSpockは動くんです。

EclipseJUnitから動かしていたので、Eclipseの環境がおかしいのかなと思い、コマンドプロンプトから「gradle test --tests "テスト名"」で動かしても動かないんです。おかしい。

結局、何が原因だったのかっていうとGebを動かす環境のJavaのバージョンでした。

Gebの実行環境のJavaが1.8じゃないとうまく動かない。
(プロジェクトのコンパイラは1.7でおk)

EclipseからJUnitでGebのテストがこけるっていう人はぜひぜひ以下の設定でお試しあれ。

Preferences > Java > InstalledJREs

JDK1.8を追加

Preferences > Java > InstalledJREs > ExecutionEnvironment

JavaSE-1.7←クリック
Compatible JREsでJDK1.8を選択

これで動くはず!

まとめ!

最新(2016年9月)のGebで書いたテストを動かしたい時は、Javaが1.7以下だと動きません。
Javaのバージョンを8にしませう!

とりいそぎそんな感じでした。

以下、見飽きたエラーをぺたっとしておきます。
goとかtoとか遷移しようとすると落ちる。

java.lang.VerifyError: Bad <init> method call from inside of a branch
Exception Details:
  Location:
    geb/navigator/SearchContextBasedBasicLocator.<init>(Lorg/openqa/selenium/SearchContext;Lgeb/navigator/factory/NavigatorFactory;)V @91: invokespecial
  Reason:
    Error exists in the bytecode
  Bytecode:
    0000000: b800 1e4e 05bd 0004 5903 04bd 0004 5903
    0000010: 2b53 b800 2453 5904 2c53 5910 ff12 02b8
    0000020: 0028 2a5f ab00 0000 0000 005e 0000 0002
    0000030: a8a2 5e9a 0000 001c aca6 0f60 0000 003d
    0000040: 5f5a 5903 3212 2ab8 002e c000 2a5f 5904
    0000050: 3212 30b8 002e c000 305f 57b7 0033 a700
    0000060: 2e5f 5a59 0332 1235 b800 2ec0 0035 5f59
    0000070: 0432 1230 b800 2ec0 0030 5f57 b700 37a7
    0000080: 000d bb00 3959 123b b700 3ebf 57b1     
  Stackmap Table:
    full_frame(@64,{UninitializedThis,Object[#53],Object[#48],Object[#68]},{Object[#70],UninitializedThis})
    full_frame(@97,{UninitializedThis,Object[#53],Object[#48],Object[#68]},{Object[#70],UninitializedThis})
    full_frame(@130,{UninitializedThis,Object[#53],Object[#48],Object[#68]},{Object[#70],UninitializedThis})
    full_frame(@140,{Object[#2],Object[#53],Object[#48],Object[#68]},{Object[#70]})

    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2585)
    at java.lang.Class.getDeclaredConstructors(Class.java:1906)
    at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:49)
    at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:36)
    at geb.navigator.factory.BrowserBackedNavigatorFactory.<init>(BrowserBackedNavigatorFactory.groovy:35)
    at geb.Configuration.createNavigatorFactory(Configuration.groovy:417)
    at geb.Browser.createNavigatorFactory(Browser.groovy:130)
    at geb.Browser.getNavigatorFactory(Browser.groovy:118)
    at geb.Page.init(Page.groovy:131)
    at geb.Browser.createPage(Browser.groovy:875)
    at geb.Browser.to(Browser.groovy:556)
    at geb.Browser.to(Browser.groovy:523)
    at geb.spock.GebSpec.methodMissing(GebSpec.groovy:56)

RESTン教授とJAX-RSの秘宝

(やっつけかん)

RESTfulなWebアプリケーションとは

Restfulとは「ロイ・フィールディング」氏が提唱する
REST原則に従って実装されたもののこと。

簡単にRESTの特徴をあげると

こんな感じの仕様にそって実装したWebアプリケーションのことを
RestfulなWebアプリケーションと呼ぶ。

JAX-RSとは

JavaでRESTfulなWebアプリケーションを開発するとなると、
このJAX-RSの仕様に従いながら実装していくことになる。

しかし、JAX-RSはあくまで単なる「仕様」なので、
実際にJAX-RSの仕様にそって開発をするとなると、
各ベンダーが提供している「JAX-RSの仕様に則ったAPI
を使用しながら開発していくことになる。

JAX-RSの仕様に則ったAPIの例

  • GlassFishが提供している、JAX-RSのリファレンス実装である「Jersey」
  • JBossが提供している「RESTEasy」

参考URL:http://www.opentone.co.jp/news/release/article04/article0401.html