2014年7月29日火曜日

rubyのgem installでmysql2のエラーにはまった時の対応

このモジュール使ってくださいとローカルで入れるgemライブラリを渡されてたので、
bundleで入れようとしてエラーではまったときにやった対応です。

まずはGemfileを書いて、bundle installを実行。
# /opt/sample/ruby/bin/bundle install --path vendor/bundle
fatal: Not a git repository (or any of the parent directories): .git
Fetching gem metadata from https://rubygems.org/.......
Fetching additional metadata from https://rubygems.org/..
Resolving dependencies...
Using json (1.8.1)
Installing mini_portile (0.6.0)
Building nokogiri using packaged libraries.
Building libxml2-2.8.0 for nokogiri with the following patches applied:
 - 0001-Fix-parser-local-buffers-size-problems.patch
 - 0002-Fix-entities-local-buffers-size-problems.patch
 - 0003-Fix-an-error-in-previous-commit.patch
 - 0004-Fix-potential-out-of-bound-access.patch
 - 0005-Detect-excessive-entities-expansion-upon-replacement.patch
 - 0006-Do-not-fetch-external-parsed-entities.patch
 - 0007-Enforce-XML_PARSER_EOF-state-handling-through-the-pa.patch
 - 0008-Improve-handling-of-xmlStopParser.patch
 - 0009-Fix-a-couple-of-return-without-value.patch
 - 0010-Keep-non-significant-blanks-node-in-HTML-parser.patch
 - 0011-Do-not-fetch-external-parameter-entities.patch
************************************************************************
IMPORTANT!  Nokogiri builds and uses a packaged version of libxml2.
 
If this is a concern for you and you want to use the system library
instead, abort this installation process and reinstall nokogiri as
follows:
 
    gem install nokogiri -- --use-system-libraries
 
If you are using Bundler, tell it to use the option:
 
    bundle config build.nokogiri --use-system-libraries
    bundle install
 
However, note that nokogiri does not necessarily support all versions
of libxml2.
 
For example, libxml2-2.9.0 and higher are currently known to be broken
and thus unsupported by nokogiri, due to compatibility problems and
XPath optimization bugs.
************************************************************************
Building libxslt-1.1.28 for nokogiri with the following patches applied:
 - 0001-Adding-doc-update-related-to-1.1.28.patch
 - 0002-Fix-a-couple-of-places-where-f-printf-parameters-wer.patch
 - 0003-Initialize-pseudo-random-number-generator-with-curre.patch
 - 0004-EXSLT-function-str-replace-is-broken-as-is.patch
 - 0006-Fix-str-padding-to-work-with-UTF-8-strings.patch
 - 0007-Separate-function-for-predicate-matching-in-patterns.patch
 - 0008-Fix-direct-pattern-matching.patch
 - 0009-Fix-certain-patterns-with-predicates.patch
 - 0010-Fix-handling-of-UTF-8-strings-in-EXSLT-crypto-module.patch
 - 0013-Memory-leak-in-xsltCompileIdKeyPattern-error-path.patch
 - 0014-Fix-for-bug-436589.patch
 - 0015-Fix-mkdir-for-mingw.patch
************************************************************************
IMPORTANT!  Nokogiri builds and uses a packaged version of libxslt.
 
If this is a concern for you and you want to use the system library
instead, abort this installation process and reinstall nokogiri as
follows:
 
    gem install nokogiri -- --use-system-libraries
 
If you are using Bundler, tell it to use the option:
 
    bundle config build.nokogiri --use-system-libraries
    bundle install
************************************************************************
Installing nokogiri (1.6.3.rc3)
Installing aws-sdk (1.49.0)
Installing httpclient (2.4.0)
 
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
 
    /opt/sample/ruby/bin/ruby extconf.rb 
checking for ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
-----
Using mysql_config at /usr/bin/mysql_config
-----
checking for mysql.h... yes
checking for errmsg.h... yes
checking for mysqld_error.h... yes
-----
Setting libpath to /usr/lib64
-----
creating Makefile
 
make "DESTDIR=" clean
 
make "DESTDIR="
compiling mysql2_ext.c
compiling result.c
compiling infile.c
compiling client.c
linking shared-object mysql2/mysql2.so
/usr/bin/ld: cannot find -lmysqlclient
collect2: ld はステータス 1 で終了しました
make: *** [mysql2.so] エラー 1
 
make failed, exit code 2
 
Gem files will remain installed in /opt/sample/ruby/lib64/ruby/gems/2.1.0/gems/mysql2-0.3.16 for inspection.
Results logged to /opt/sample/ruby/lib64/ruby/gems/2.1.0/extensions/x86_64-linux/2.1.0-static/mysql2-0.3.16/gem_make.out
An error occurred while installing mysql2 (0.3.16), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.3.16'` succeeds before bundling.
nokogiriもいろいろエラー出てるけど、とりあえずインストールできているので今回はスルー。
mysql2がインストールできずにエラーになりました。
エラー内容を見てみると、`gem install mysql2 -v '0.3.16'`を実行してみろって書いてあります。
で実行してみたところ、やはりエラーとなります。
さらにエラー内容を見ていったところ、
「ld はステータス 1 で終了しました」というメッセージが出ています。
どうやらldでlibmysqlclientが見れてないようです。

libmysqlclientが実際に存在してないのかを確認します。
入れてあるRPMはこんな感じ。(RPMは独自に用意したものですが、名前通りのものをインストールしてます。)
# yum list installed|grep MySQL
MySQL-client.x86_64     5.6.14-1.el6    @sample
MySQL-devel.x86_64      5.6.14-1.el6    @sample
MySQL-shared-compat.x86_64      5.6.14-1.el6    @sample
perl-DBD-MySQL.x86_64   4.013-3.el6     @base
ライブラリを確認。
# ldconfig -p|grep my
 libmysqlclient_r.so.16 (libc6,x86-64) => /usr/lib64/libmysqlclient_r.so.16
 libmysqlclient_r.so.15 (libc6,x86-64) => /usr/lib64/libmysqlclient_r.so.15
 libmysqlclient_r.so.14 (libc6,x86-64) => /usr/lib64/libmysqlclient_r.so.14
 libmysqlclient_r.so.12 (libc6,x86-64) => /usr/lib64/libmysqlclient_r.so.12
 libmysqlclient.so.16 (libc6,x86-64) => /usr/lib64/libmysqlclient.so.16
 libmysqlclient.so.15 (libc6,x86-64) => /usr/lib64/libmysqlclient.so.15
 libmysqlclient.so.14 (libc6,x86-64) => /usr/lib64/libmysqlclient.so.14
 libmysqlclient.so.12 (libc6,x86-64) => /usr/lib64/libmysqlclient.so.12
シンボリックリンクの状態も確認。
libmysqlclient.soが存在してないですね。
# ls -al /usr/lib64/libmys*
lrwxrwxrwx 1 root root      24  5月 26 17:27 2014 /usr/lib64/libmysqlclient.so.12 -> libmysqlclient.so.12.0.0
-rwxr-xr-x 1 root root  253888  9月 11 12:12 2013 /usr/lib64/libmysqlclient.so.12.0.0
lrwxrwxrwx 1 root root      24  5月 26 17:27 2014 /usr/lib64/libmysqlclient.so.14 -> libmysqlclient.so.14.0.0
-rwxr-xr-x 1 root root 1242088  9月 11 12:12 2013 /usr/lib64/libmysqlclient.so.14.0.0
lrwxrwxrwx 1 root root      24  5月 26 17:27 2014 /usr/lib64/libmysqlclient.so.15 -> libmysqlclient.so.15.0.0
-rwxr-xr-x 1 root root 2101416  9月 11 12:12 2013 /usr/lib64/libmysqlclient.so.15.0.0
lrwxrwxrwx 1 root root      24  5月 26 17:27 2014 /usr/lib64/libmysqlclient.so.16 -> libmysqlclient.so.16.0.0
-rwxr-xr-x 1 root root 2131920  9月 11 12:12 2013 /usr/lib64/libmysqlclient.so.16.0.0
lrwxrwxrwx 1 root root      26  5月 26 17:27 2014 /usr/lib64/libmysqlclient_r.so.12 -> libmysqlclient_r.so.12.0.0
-rwxr-xr-x 1 root root  262312  9月 11 12:12 2013 /usr/lib64/libmysqlclient_r.so.12.0.0
lrwxrwxrwx 1 root root      26  5月 26 17:27 2014 /usr/lib64/libmysqlclient_r.so.14 -> libmysqlclient_r.so.14.0.0
-rwxr-xr-x 1 root root 1253992  9月 11 12:12 2013 /usr/lib64/libmysqlclient_r.so.14.0.0
lrwxrwxrwx 1 root root      26  5月 26 17:27 2014 /usr/lib64/libmysqlclient_r.so.15 -> libmysqlclient_r.so.15.0.0
-rwxr-xr-x 1 root root 2110184  9月 11 12:12 2013 /usr/lib64/libmysqlclient_r.so.15.0.0
lrwxrwxrwx 1 root root      26  5月 26 17:27 2014 /usr/lib64/libmysqlclient_r.so.16 -> libmysqlclient_r.so.16.0.0
-rwxr-xr-x 1 root root 2110184  9月 11 12:12 2013 /usr/lib64/libmysqlclient_r.so.16.0.0

調べていくと、インストールされている「MySQL-shared-compat.x86_64」はmysqlの旧バージョンと接続するためのもので、
MySQL5.6からは「MySQL-shared.x86_64」を入れないといけないようです。
ということで入れてみました。
# yum list installed|grep MySQL
MySQL-client.x86_64     5.6.14-1.el6    @sample                                
MySQL-devel.x86_64      5.6.14-1.el6    @sample                                
MySQL-shared.x86_64     5.6.14-1.el6    @sample                                
MySQL-shared-compat.x86_64     5.6.14-1.el6    @sample
perl-DBD-MySQL.x86_64   4.013-3.el6     @base 

そして、再度bundle installを実行。
# /opt/sample/ruby/bin/bundle install --path vendor/bundle
fatal: Not a git repository (or any of the parent directories): .git
Fetching gem metadata from https://rubygems.org/.......
Fetching additional metadata from https://rubygems.org/..
Resolving dependencies...
Using json (1.8.1)
Using mini_portile (0.6.0)
Using nokogiri (1.6.3.rc3)
Using aws-sdk (1.49.0)
Using httpclient (2.4.0)
Installing mysql2 (0.3.16)
Installing mysql2-cs-bind (0.0.6)
Installing net-ping (1.7.4)
Installing parallel (1.1.2)
Installing thor (0.19.1)
 
Using bundler (1.5.3)
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
ちゃんとインストールできました。
gemだけでは完結しないので、ちゃんと構築しないといけないですね。


参考URL
http://d.hatena.ne.jp/cou929_la/20080718/1216391301
http://y-ken.hatenablog.com/entry/inside-of-libmysqlclient-with-mysql-shared-compat

2014年7月25日金曜日

javaのcryptでエラーが出たときの対応

新しいプロジェクトをcheckoutしてきて動かしたらこんなエラーが出ました。
Caused by: java.security.InvalidKeyException: Illegal key size
 at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1034)
 at javax.crypto.Cipher.implInit(Cipher.java:800)
 at javax.crypto.Cipher.chooseProvider(Cipher.java:859)
 at javax.crypto.Cipher.init(Cipher.java:1370)
 at javax.crypto.Cipher.init(Cipher.java:1301)

調べてみると、policyファイルを入れかえる必要があるらしい。
http://www.oracle.com/technetwork/java/javase/downloads/index.html
ここにあるJava Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files for JDK/JRE バージョン
のやつをダウンロードしてくる。
その中のlocal_policy.jarとUS_export_policy.jarを配置するとよいらしい。
配置場所はjavaのインストール先のjre/lib/security/配下。
自分がMacに入れた時は以下のパスでした。
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/jre/lib/security/


参考URL
http://pieceofnostalgy.blogspot.jp/2012/01/java-256bitaes.html

2014年7月15日火曜日

GitHub実践入門を読了

今更ですが、GitHub実践入門を読みました。
gitの使い方からチームでの開発フローまで取り扱っていて、
これから導入しようってチームはまず読んだ方がよい本かなと思います。
もうすでに使ってる場合は、ところどころ知識が補完されてくかなって感じですかね。
自分的に読んでてメモったやつをいくつか。

・リモートのfeature-Dブランチをチェックアウトする
git checkout -b feature-D origin/feature-D

・ワークツリーと最新コミットの差分を確認する
git diff HEAD

・GitHub上のソースの特定の行の色を変える
URLの末尾に「#L10」の形で行を指定する
ex:https://github.com/syakasyaka/Hello-World/blob/master/hello_world.txt#L2

・比較するときに空白の差分を非表示にする
URLの末尾に「?w=l」をつける
つけないとき:https://github.com/syakasyaka/sample/compare/branchetest
つけたとき:https://github.com/syakasyaka/sample/compare/branchetest?w=l


GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS .../技術評論社

¥2,786
Amazon.co.jp

2014年7月13日日曜日

eclipseでjboss動かした時にいろいろエラー出たやつの対応

今度はjboss使ってるアプリを見ることになったので、eclipseで動かせるようにしてみたところ
いろいろエラー出てはまったのでそのときのメモ。

環境
java1.8
eclipse4.4 luna
jboss5.1.0.GA (homebrewで入れたやつ)

まず最初に出たエラーがこれ。
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
14:00:17,868 INFO  [ServerImpl] Starting JBoss (Microcontainer)...
14:00:17,873 INFO  [ServerImpl] Release ID: JBoss [The Oracle] 5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221053)
14:00:17,873 INFO  [ServerImpl] Bootstrap URL: null
14:00:17,873 INFO  [ServerImpl] Home Dir: /usr/local/Cellar/jboss-as5/5.1.0GA/libexec
14:00:17,873 INFO  [ServerImpl] Home URL: file:/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/
14:00:17,873 INFO  [ServerImpl] Library URL: file:/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/lib/
14:00:17,875 INFO  [ServerImpl] Patch URL: null
14:00:17,875 INFO  [ServerImpl] Common Base URL: file:/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/common/
14:00:17,875 INFO  [ServerImpl] Common Library URL: file:/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/common/lib/
14:00:17,875 INFO  [ServerImpl] Server Name: default
14:00:17,875 INFO  [ServerImpl] Server Base Dir: /usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server
14:00:17,876 INFO  [ServerImpl] Server Base URL: file:/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/
14:00:17,876 INFO  [ServerImpl] Server Config URL: file:/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/conf/
14:00:17,876 INFO  [ServerImpl] Server Home Dir: /usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default
14:00:17,876 INFO  [ServerImpl] Server Home URL: file:/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/
14:00:17,876 INFO  [ServerImpl] Server Data Dir: /usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/data
14:00:17,876 INFO  [ServerImpl] Server Library URL: file:/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/lib/
14:00:17,876 INFO  [ServerImpl] Server Log Dir: /usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/log
14:00:17,876 INFO  [ServerImpl] Server Native Dir: /usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/tmp/native
14:00:17,877 INFO  [ServerImpl] Server Temp Dir: /usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/tmp
14:00:17,877 INFO  [ServerImpl] Server Temp Deploy Dir: /usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/tmp/deploy
14:00:18,518 INFO  [ServerImpl] Starting Microcontainer, bootstrapURL=file:/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/conf/bootstrap.xml
14:00:18,982 INFO  [VFSCacheFactory] Initializing VFSCache [org.jboss.virtual.plugins.cache.CombinedVFSCache]
14:00:18,985 INFO  [VFSCacheFactory] Using VFSCache [CombinedVFSCache[real-cache: null]]
14:00:19,166 INFO  [CopyMechanism] VFS temp dir: /usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/tmp
14:00:19,166 INFO  [ZipEntryContext] VFS force nested jars copy-mode is enabled.
14:00:19,842 INFO  [ServerInfo] Java version: 1.8.0_05,Oracle Corporation
14:00:19,842 INFO  [ServerInfo] Java Runtime: Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
14:00:19,842 INFO  [ServerInfo] Java VM: Java HotSpot(TM) 64-Bit Server VM 25.5-b02,Oracle Corporation
14:00:19,842 INFO  [ServerInfo] OS-System: Mac OS X 10.9.4,x86_64
14:00:19,846 INFO  [ServerInfo] VM arguments: -Dprogram.name=JBossTools: JBoss AS 5.1 -Xms256m -Xmx768m -XX:MaxPermSize=256m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.endorsed.dirs=/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/lib/endorsed -Dfile.encoding=UTF-8 
14:00:19,878 INFO  [JMXKernel] Legacy JMX core initialized
14:00:20,696 ERROR [AbstractKernelController] Error installing to Instantiated: name=AttachmentStore state=Described
java.lang.IllegalArgumentException: Wrong arguments. new for target java.lang.reflect.Constructor expected=[java.net.URI] actual=[java.io.File]
 at org.jboss.reflect.plugins.introspection.ReflectionUtils.handleErrors(ReflectionUtils.java:395)
 at org.jboss.reflect.plugins.introspection.ReflectionUtils.newInstance(ReflectionUtils.java:153)
 at org.jboss.reflect.plugins.introspection.ReflectConstructorInfoImpl.newInstance(ReflectConstructorInfoImpl.java:106)
 at org.jboss.joinpoint.plugins.BasicConstructorJoinPoint.dispatch(BasicConstructorJoinPoint.java:80)
 at org.jboss.aop.microcontainer.integration.AOPConstructorJoinpoint.createTarget(AOPConstructorJoinpoint.java:282)
 at org.jboss.aop.microcontainer.integration.AOPConstructorJoinpoint.dispatch(AOPConstructorJoinpoint.java:103)
 at org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:241)
 at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:47)
 at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:109)
 at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:70)
 at org.jboss.kernel.plugins.dependency.InstantiateAction.installActionInternal(InstantiateAction.java:66)
 at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54)
 at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42)
 at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
 at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
 at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
 at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
 at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
 at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
 at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
 at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
 at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:774)
 at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:540)
 at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.deployBean(AbstractKernelDeployer.java:319)
 at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.deployBeans(AbstractKernelDeployer.java:297)
 at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.deploy(AbstractKernelDeployer.java:130)
 at org.jboss.kernel.plugins.deployment.BasicKernelDeployer.deploy(BasicKernelDeployer.java:76)
 at org.jboss.bootstrap.microcontainer.TempBasicXMLDeployer.deploy(TempBasicXMLDeployer.java:91)
 at org.jboss.bootstrap.microcontainer.TempBasicXMLDeployer.deploy(TempBasicXMLDeployer.java:161)
 at org.jboss.bootstrap.microcontainer.ServerImpl.doStart(ServerImpl.java:138)
 at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:450)
 at org.jboss.Main.boot(Main.java:221)
 at org.jboss.Main$1.run(Main.java:556)
 at java.lang.Thread.run(Thread.java:745)
Failed to boot JBoss:
java.lang.IllegalStateException: Incompletely deployed:
 
DEPLOYMENTS IN ERROR:
  Deployment "AttachmentStore" is in error due to: java.lang.IllegalArgumentException: Wrong arguments. new for target java.lang.reflect.Constructor expected=[java.net.URI] actual=[java.io.File]
 
DEPLOYMENTS MISSING DEPENDENCIES:
  Deployment "ProfileServiceDeployer" is missing the following dependencies:
    Dependency "AttachmentStore" (should be in state "Installed", but is actually in state "**ERROR**")
  Deployment "ProfileService" is missing the following dependencies:
    Dependency "jboss.kernel:service=KernelController" (should be in state "Installed", but is actually in state "**ERROR**")
    Dependency "ProfileServiceDeployer" (should be in state "Installed", but is actually in state "Instantiated")
  Deployment "ProfileServiceBootstrap" is missing the following dependencies:
    Dependency "ProfileService" (should be in state "Installed", but is actually in state "Instantiated")
    Dependency "jboss.kernel:service=Kernel" (should be in state "Installed", but is actually in state "**ERROR**")
  Deployment "ProfileServicePersistenceDeployer" is missing the following dependencies:
    Dependency "AttachmentStore" (should be in state "Installed", but is actually in state "**ERROR**")
 
 at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.internalValidate(AbstractKernelDeployer.java:278)
 at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.validate(AbstractKernelDeployer.java:174)
 at org.jboss.bootstrap.microcontainer.ServerImpl.doStart(ServerImpl.java:142)
 at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:450)
 at org.jboss.Main.boot(Main.java:221)
 at org.jboss.Main$1.run(Main.java:556)
 at java.lang.Thread.run(Thread.java:745)
14:00:20,983 INFO  [ServerImpl] Runtime shutdown hook called, forceHalt: true
14:00:20,986 INFO  [ServerImpl] Shutdown complete
Shutdown complete
Halting VM

このファイルに
/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/conf/bootstrap/profile.xml
以下の部分があるので、
そこのパラメーターに「 class="java.io.File"」を追加する必要がある。
最終こんな感じになります。


次に出てきたエラーがこれ。
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
15:29:01,852 INFO  [ServerImpl] Starting JBoss (Microcontainer)...
15:29:01,853 INFO  [ServerImpl] Release ID: JBoss [The Oracle] 5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221053)
15:29:01,853 INFO  [ServerImpl] Bootstrap URL: null
15:29:01,853 INFO  [ServerImpl] Home Dir: /usr/local/Cellar/jboss-as5/5.1.0GA/libexec
15:29:01,854 INFO  [ServerImpl] Home URL: file:/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/
15:29:01,854 INFO  [ServerImpl] Library URL: file:/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/lib/
15:29:01,854 INFO  [ServerImpl] Patch URL: null
15:29:01,854 INFO  [ServerImpl] Common Base URL: file:/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/common/
15:29:01,855 INFO  [ServerImpl] Common Library URL: file:/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/common/lib/
15:29:01,855 INFO  [ServerImpl] Server Name: default
15:29:01,855 INFO  [ServerImpl] Server Base Dir: /usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server
15:29:01,855 INFO  [ServerImpl] Server Base URL: file:/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/
15:29:01,855 INFO  [ServerImpl] Server Config URL: file:/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/conf/
15:29:01,855 INFO  [ServerImpl] Server Home Dir: /usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default
15:29:01,855 INFO  [ServerImpl] Server Home URL: file:/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/
15:29:01,855 INFO  [ServerImpl] Server Data Dir: /usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/data
15:29:01,856 INFO  [ServerImpl] Server Library URL: file:/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/lib/
15:29:01,856 INFO  [ServerImpl] Server Log Dir: /usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/log
15:29:01,856 INFO  [ServerImpl] Server Native Dir: /usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/tmp/native
15:29:01,856 INFO  [ServerImpl] Server Temp Dir: /usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/tmp
15:29:01,856 INFO  [ServerImpl] Server Temp Deploy Dir: /usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/tmp/deploy
15:29:02,258 INFO  [ServerImpl] Starting Microcontainer, bootstrapURL=file:/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/conf/bootstrap.xml
15:29:02,572 INFO  [VFSCacheFactory] Initializing VFSCache [org.jboss.virtual.plugins.cache.CombinedVFSCache]
15:29:02,574 INFO  [VFSCacheFactory] Using VFSCache [CombinedVFSCache[real-cache: null]]
15:29:02,712 INFO  [CopyMechanism] VFS temp dir: /usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/tmp
15:29:02,712 INFO  [ZipEntryContext] VFS force nested jars copy-mode is enabled.
15:29:03,285 INFO  [ServerInfo] Java version: 1.8.0_05,Oracle Corporation
15:29:03,286 INFO  [ServerInfo] Java Runtime: Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
15:29:03,286 INFO  [ServerInfo] Java VM: Java HotSpot(TM) 64-Bit Server VM 25.5-b02,Oracle Corporation
15:29:03,286 INFO  [ServerInfo] OS-System: Mac OS X 10.9.4,x86_64
15:29:03,287 INFO  [ServerInfo] VM arguments: -Dprogram.name=JBossTools: JBoss AS 5.1 -Xms256m -Xmx768m -XX:MaxPermSize=256m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.endorsed.dirs=/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/lib/endorsed -Dfile.encoding=UTF-8 
15:29:03,316 INFO  [JMXKernel] Legacy JMX core initialized
15:29:04,187 INFO  [ProfileServiceBootstrap] Loading profile: ProfileKey@1323780[domain=default, server=default, name=default]
15:29:04,564 ERROR [AbstractKernelController] Error installing to Parse: name=vfsfile:/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/conf/jboss-service.xml state=Not Installed mode=Manual requiredState=Parse
org.jboss.deployers.spi.DeploymentException: Error creating managed object for vfsfile:/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/conf/jboss-service.xml
 at org.jboss.deployers.spi.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:49)
 at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:362)
 at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:322)
 at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:294)
 at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.deploy(AbstractParsingDeployerWithOutput.java:234)
 at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
 at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
 at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
 at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
 at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
 at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
 at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
 at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
 at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
 at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
 at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
 at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
 at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702)
 at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
 at org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:70)
 at org.jboss.system.server.profileservice.repository.AbstractProfileAction.install(AbstractProfileAction.java:53)
 at org.jboss.system.server.profileservice.repository.AbstractProfileService.install(AbstractProfileService.java:361)
 at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
 at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
 at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
 at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
 at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
 at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
 at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
 at org.jboss.system.server.profileservice.repository.AbstractProfileService.activateProfile(AbstractProfileService.java:306)
 at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:271)
 at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461)
 at org.jboss.Main.boot(Main.java:221)
 at org.jboss.Main$1.run(Main.java:556)
 at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.FileNotFoundException: lib doesn't exist. (rootURI: file:/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/lib, file: /usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/lib)
 at org.jboss.virtual.plugins.context.file.FileSystemContext.getRoot(FileSystemContext.java:220)
 at org.jboss.virtual.plugins.registry.DefaultVFSRegistry.getFile(DefaultVFSRegistry.java:106)
 at org.jboss.virtual.plugins.registry.DefaultVFSRegistry.getFile(DefaultVFSRegistry.java:140)
 at org.jboss.virtual.VFS.getRoot(VFS.java:264)
 at org.jboss.system.deployers.SARDeployer.processXMLClasspath(SARDeployer.java:140)
 at org.jboss.system.deployers.SARDeployer.parse(SARDeployer.java:89)
 at org.jboss.system.deployers.SARDeployer.parse(SARDeployer.java:58)
 at org.jboss.deployers.vfs.spi.deployer.JAXPDeployer.parse(JAXPDeployer.java:190)
 at org.jboss.deployers.vfs.spi.deployer.AbstractVFSParsingDeployer.parseAndInit(AbstractVFSParsingDeployer.java:256)
 at org.jboss.deployers.vfs.spi.deployer.AbstractVFSParsingDeployer.parse(AbstractVFSParsingDeployer.java:239)
 at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:355)
 ... 33 more

これは内容の通りで、ディレクトリがないので作ればよいみたい。
$ mkdir -p /usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/lib

次のエラーがこれ。
2014-07-04 09:55:19,357 INFO  [org.hibernate.connection.ConnectionProviderFactory] (HDScanner) Initializing connection provider: org.hibernate.ejb.connection.InjectedDataSourceConne
ctionProvider
2014-07-04 09:55:19,362 INFO  [org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider] (HDScanner) Using provided datasource
2014-07-04 09:55:19,371 WARN  [org.jboss.resource.connectionmanager.JBossManagedConnectionPool] (HDScanner) Throwable while attempting to get a new connection: null
org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (org.jboss.resource.JBossResourceException: Apparently wrong driver class specified for U
RL: class: com.mysql.jdbc.Driver, url: jdbc:mysql://localhost:3306/test)
        at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:225)
        at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:195)
        at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventListener(InternalManagedConnectionPool.java:633)
        at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:267)
        at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:622)
        at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:404)
        at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:381)
        at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:496)
        at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:941)
        at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:89)
        at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:46)
        at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:111)
        at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2101)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1325)
        at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
        at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
        at jp.co.nri.uniid.seam.persistence.UniidHibernatePersistence.createContainerEntityManagerFactory(UniidHibernatePersistence.java:48)
        at org.jboss.jpa.deployment.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:301)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:483)
        at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:59)
        at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:150)
        at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66)
        at org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:241)
        at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:47)
        at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:109)
        at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:70)
        at org.jboss.kernel.plugins.dependency.LifecycleAction.installActionInternal(LifecycleAction.java:221)
        at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54)
        at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42)
        at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
        at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
        at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
        at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
        at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
        at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
        at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
        at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
        at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
        at org.jboss.system.ServiceController.start(ServiceController.java:460)
        at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:163)
        at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:99)
        at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46)
        at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
        at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
        at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
        at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
        at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
        at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178)
        at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
        at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
        at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
        at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
        at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
        at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
        at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
        at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702)
        at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
        at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:362)
        at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:255)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
Caused by: org.jboss.resource.JBossResourceException: Apparently wrong driver class specified for URL: class: com.mysql.jdbc.Driver, url: jdbc:mysql://localhost:3306/test
        at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.getDriver(LocalManagedConnectionFactory.java:492)
        at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:206)
        ... 72 more

JDBCドライバをWEB-INF/libの下に置いていたけれどもそれじゃ駄目なようで、
以下に置いてあげないといけないようです。
/usr/local/Cellar/jboss-as5/5.1.0GA/libexec/server/default/lib/

ここまでやってとりあえず動かせるようになりました。

参考URL
http://stackoverflow.com/questions/2489106/error-starting-jboss-server
http://stackoverflow.com/questions/15960130/jboss-5-1-ga-deployment-error-illegalargumentexception
https://community.jboss.org/thread/149389?tstart=0
https://community.jboss.org/thread/141824

2014年7月7日月曜日

titanium studioのandroidシミュレータでエラーが出る

titaniumのandroidシミュレータを起動するとコンソールに以下のエラーが出た。
The current timeout is set to 120000 ms
You can increase this timeout by running: titanium config android.emulatorStartTimeout 
[ERROR] :  Application failed to launch
[ERROR] Application Installer abnormal process termination. Process exit value was 1

titanium studioのTerminal上で以下のコマンドを実施すると解決しました。

まずは現在の状況を確認
$ ti config
android.sdkPath        = "/Users/user/Library/android-sdk-macosx"
app.workspace          = ""
cli.colors             = true
cli.completion         = false
cli.failOnWrongSDK     = false
cli.httpProxyServer    = ""
cli.ignoreDirs         = "^(\\.svn|_svn|\\.git|\\.hg|\\.?[Cc][Vv][Ss]|\\.bzr|\\$RECYCLE\\.BIN)$"
cli.ignoreFiles        = "^(\\.gitignore|\\.npmignore|\\.cvsignore|\\.DS_Store|\\._.*|[Tt]humbs.db|\\.vspscc|\\.vssscc|\\.sublime-proj
ect|\\.sublime-workspace|\\.project|\\.tmproj)$"
cli.logLevel           = "trace"
cli.progressBars       = true
cli.prompt             = true
cli.rejectUnauthorized = true
cli.width              = 100
paths.commands         = []
paths.hooks            = []
paths.modules          = []
paths.plugins          = []
paths.sdks             = []
user.locale            = "en_US"

タイムアウト値を設定する。
ある程度長ければ大丈夫そう。
$ ti config android.emulatorStartTimeout 600000
android.emulatorStartTimeout saved

設定されたタイムアウト値を確認。ちゃんと設定が入っている。
$ ti config
android.emulatorStartTimeout = "600000"
android.sdkPath              = "/Users/user/Library/android-sdk-macosx"
app.workspace                = ""
cli.colors                   = true
cli.completion               = false
cli.failOnWrongSDK           = false
cli.httpProxyServer          = ""
cli.ignoreDirs               = "^(\\.svn|_svn|\\.git|\\.hg|\\.?[Cc][Vv][Ss]|\\.bzr|\\$RECYCLE\\.BIN)$"
cli.ignoreFiles              = "^(\\.gitignore|\\.npmignore|\\.cvsignore|\\.DS_Store|\\._.*|[Tt]humbs.db|\\.vspscc|\\.vssscc|\\.sublim
e-project|\\.sublime-workspace|\\.project|\\.tmproj)$"
cli.logLevel                 = "trace"
cli.progressBars             = true
cli.prompt                   = true
cli.rejectUnauthorized       = true
cli.width                    = 100
paths.commands               = []
paths.hooks                  = []
paths.modules                = []
paths.plugins                = []
paths.sdks                   = []
user.locale                  = "en_US"

設定後はエラーにならずにちゃんと起動しました。
一回実行するとその設定はその後も保存されているみたいです。

参考URL
http://titanium-mobile.jimdo.com/titanium-studio%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8Bandroid%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA/%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%82%92%E3%81%A4%E3%81%8F%E3%82%8B%E3%81%B9%E3%81%97/
https://sites.google.com/site/jagniigata/article/workshop/tiworkshop-doc/for-mac
http://blog.foolprooflabs.com/2014/02/first-step-appcelerator-titanium/
https://jira.appcelerator.org/browse/TIMOB-17000

2014年7月6日日曜日

perlのAmon2でリクエストパラメータをすべて取得する

またperlです。
今度はAmon2っていうやつを使うことになったのですが、
画面に入力されたすべてのリクエストパラメータを1個ずつ指定せずに取りたかったので調べました。

入力フィールドはこんな感じ。



















取得の仕方はこれで取れます。
my @params2 = $c->req->param;

ただ、そのまま使おうとすると、先頭の値だけだったり配列としてしか取れないようです。
$c->log->info(@params2); # -> rate_2_3_0
$c->log->info(\@params2); # -> ARRAY(0x2708608)

ループでまわすとすべてのnameが取れました。
nameさえ取れればvalueも取れるのでやれそうです。
foreach my $var(@params2){
 $c->log->info($var);
}

結果
rate_2_3_0
rate_3_2_2
rate_3_1_0
rate_3_2_0
rate_3_3_3
rate_1_1_1
rate_2_1_0
rate_2_3_3
rate_2_2_0
rate_2_1_1
rate_1_1_0
rate_1_3_0
rate_3_3_0
rate_2_2_2
rate_3_1_1
rate_1_3_3
rate_1_2_0
rate_1_2_2
XSRF-TOKEN


参考URL
http://search.cpan.org/~miyagawa/Plack-1.0030/lib/Plack/Request.pm
http://www.perlplus.jp/perl/array/index11.html

2014年7月1日火曜日

perlをplenvで入れて、cpanmでモジュール入れてみた

前回前々回とperlのモジュールをcpanで入れてきました。
最近はrbenvのようにplenvというものでバージョンの管理とかやるそうです。
なので、plenvでcpanm使ってモジュールを入れてみました。

まずはchefのレシピを探してみたところ、あっさりと見つかりました。
https://github.com/kentaro/chef-plenv

まずはplenvとcpanmを入れました。
plenv_install "5.16.3" do
  user   "user"
  action :install
end
 
plenv_global "5.16.3" do
  user   "user"
  action :run
end
 
%w[
  Carton
].each do |mod|
  plenv_cpanm mod do
    user    "user"
    version "5.16.3"
    options "--force"
    action  :install
  end
end

続いてcpanfileに必要なモジュールを記述して、以下を実行します。
$ plenv exec carton install --deployment

モジュールを入れてみたので早速実行してみます。
$ perl test.pl
Can't locate Net/Hadoop/WebHDFS.pm in @INC (@INC contains: /home/user/app/lib/perl/Sample/../../../lib/perl /home/user/app/lib/perl /home/user/.plenv/versions/5.16.3/lib/perl5/site_perl/5.16.3/x86_64-linux /home/user/.plenv/versions/5.16.3/lib/perl5/site_perl/5.16.3 /home/user/.plenv/versions/5.16.3/lib/perl5/5.16.3/x86_64-linux /home/user/.plenv/versions/5.16.3/lib/perl5/5.16.3 .) at /home/user/app/lib/perl/Sample/WebHDFS.pm line 11.
BEGIN failed--compilation aborted at /home/user/app/lib/perl/Sample/WebHDFS.pm line 11.
Compilation failed in require at test.pl line 2.
BEGIN failed--compilation aborted at test.pl line 2.

どうやらcpanmで入れたモジュールが読み込めてないようです。
実行方法を調べてみたところ、以下のように実行すればよいようです。
$ carton exec perl test.pl


参考URL
https://github.com/kentaro/chef-plenv
http://gihyo.jp/dev/serial/01/perl-hackers-hub/002103
http://blog.papix.net/entry/2013/06/04/081554
http://tech-mr-myself.hatenablog.com/entry/2013/05/29/175716