build.sbtでwebpayライブラリを適用する際に発生したエラー

158 views
Skip to first unread message

katsuya...@nekonote-software.com

unread,
Jan 28, 2015, 6:43:45 AM1/28/15
to pla...@googlegroups.com
猫の手software 樋口と申します。

Playframework2.2.3で構築中のシステムにwebpayのライブラリを適用しようとしたところ、以下の問題が発生致しました。
hk2-utlisとhk2-locatorのバージョン2.7が無いとのエラー結果がでておりますが、
webpayの開発元に確認したところ、webpayで指定しているバージョンは2.2.0となっているとのことでした。

原因・対応方法などに心当たりのある方がいらっしゃいましたら、アドバイス頂けたらと思います。


○開発元がwebpay単品でdependency-treeを実行した結果
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

○弊社開発環境でのdependency-treeの実行結果
-------------------------------------------------------------------------------------------------------------------------------------------------------
[info]   +-jp.webpay:webpay:2.2.2
[info]   | +-com.fasterxml.jackson.core:jackson-core:2.3.3
[info]   | +-com.fasterxml.jackson.core:jackson-databind:2.3.3
[info]   | | +-com.fasterxml.jackson.core:jackson-annotations:2.3.0
[info]   | | +-com.fasterxml.jackson.core:jackson-core:2.3.3
[info]   | |
[info]   | +-org.glassfish.jersey.core:jersey-client:2.7
[info]   |   +-javax.ws.rs:javax.ws.rs-api:2.0
[info]   |   +-org.glassfish.hk2.external:javax.inject:2.2.0
[info]   |   +-org.glassfish.hk2:hk2-api:2.2.0
[info]   |   | +-org.glassfish.hk2.external:aopalliance-repackaged:2.2.0
[info]   |   | +-org.glassfish.hk2:hk2-utils:2.7 (error: not found)
[info]   |   |
[info]   |   +-org.glassfish.hk2:hk2-locator:2.7 (error: not found)
[info]   |   +-org.glassfish.jersey.core:jersey-common:2.7
[info]   |     +-javax.annotation:javax.annotation-api:1.2
[info]   |     +-javax.ws.rs:javax.ws.rs-api:2.0
[info]   |     +-org.glassfish.hk2.external:javax.inject:2.2.0
[info]   |     +-org.glassfish.hk2:hk2-api:2.2.0
[info]   |     | +-org.glassfish.hk2.external:aopalliance-repackaged:2.2.0
[info]   |     | +-org.glassfish.hk2:hk2-utils:2.7 (error: not found)
[info]   |     |
[info]   |     +-org.glassfish.hk2:hk2-locator:2.7 (error: not found)
[info]   |     +-org.glassfish.hk2:osgi-resource-locator:1.0.1
[info]   |     +-org.glassfish.jersey.bundles.repackaged:jersey-guava:2.7
[info]   |
-------------------------------------------------------------------------------------------------------------------------------------------------------

○plugin.sbt
-------------------------------------------------------------------------------------------------------------------------------------------------------
// Comment to get more information during initialization
logLevel := Level.Warn

// The Typesafe repository
resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"

// Use the Play sbt plugin for Play projects
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.2.3")

// sbt-dependency-graph
addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.7.4")
-------------------------------------------------------------------------------------------------------------------------------------------------------

○build.sbt
-------------------------------------------------------------------------------------------------------------------------------------------------------
name := "NekonoteForSchool"

version := "1.0-SNAPSHOT"


net.virtualvoid.sbt.graph.Plugin.graphSettings

libraryDependencies ++= Seq(
  javaJdbc,
  javaEbean,
  cache,
  filters,
  "com.sun.mail" % "javax.mail" % "1.5.2",
  "postgresql" % "postgresql" % "9.1-901-1.jdbc4",
  "com.amazonaws" % "aws-java-sdk" % "1.8.9.1",
  "com.itextpdf" % "itextpdf" % "5.5.3",
  "com.itextpdf" % "itext-asian" % "5.2.0",
  "org.fluentd" % "fluent-logger" % "0.3.1",
  "org.apache.commons" % "commons-lang3" % "3.3.2",
  "jp.webpay" % "webpay" % "2.2.2"
)

play.Project.playJavaSettings

mappings in Universal ++= {
  val dataDirectory = baseDirectory(_ / "data").value
  val dataDirectoryLen = dataDirectory.getCanonicalPath.length
  (dataDirectory ** "*").get.map { f: File =>
    f -> ("data/" + f.getCanonicalPath.substring(dataDirectoryLen))
  }
}
-------------------------------------------------------------------------------------------------------------------------------------------------------

Takashi Kawachi

unread,
Jan 28, 2015, 7:20:27 AM1/28/15
to pla...@googlegroups.com
こんばんは。河内です。

手元で試してみたところ、update task はエラー無く完了しました。
試した build.sbt, project/plugins.sbt, project/build.properties を gist におきました。
https://gist.github.com/tkawachi/177f58cc1543da99cba6

sbt のバージョンが古ければ新しくしてみるのはどうでしょうか。

--
このメールは Google グループのグループ「日本Playframeworkユーザー会」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには play_ja+u...@googlegroups.com にメールを送信してください。
このグループに投稿するには pla...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/play_ja からこのグループにアクセスしてください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

katsuya...@nekonote-software.com

unread,
Jan 29, 2015, 3:49:56 AM1/29/15
to pla...@googlegroups.com
ご回答ありがとうございます。

build.propertiesに「sbt.version=0.13.7」を追記してplayコマンドを実行したところ、エラーが発生しました。
エラー内容と、記述ファイルはgitに上げていますのでご確認ください。

調べたところ、sbt.scala.versionを2.10.4にアップグレードすることで解消できるそうなのですが、
sbt.scala.versionのアップグレードはどのように行えばよいでしょうか。

○github



2015年1月28日水曜日 21時20分27秒 UTC+9 Takashi Kawachi:

Kenji Yoshida

unread,
Jan 29, 2015, 4:30:52 AM1/29/15
to pla...@googlegroups.com
> 調べたところ、sbt.scala.versionを2.10.4にアップグレードすることで解消できるそう

というのは、どこの情報でしょうか?


まず、エラー内容見る限り、異なるversionのScalaが混ざってます。
おそらく、ローカルにインストールされてるplayのversionと、plugins.sbtで設定してるplayのversionが違います。
ローカルにインストールされてるplayのversionを確認してみてください。


あと、もしgithubに置いた通りのディレクトリ構成でコマンドを実行したのなら、
そもそもbuild.propertiesやplugins.sbtの置き場所が間違っています





2015年1月29日 17:49 <katsuya...@nekonote-software.com>:

katsuya...@nekonote-software.com

unread,
Jan 29, 2015, 10:17:21 AM1/29/15
to pla...@googlegroups.com
2015年1月29日木曜日 18時30分52秒 UTC+9 Kenji Yoshida:
> 調べたところ、sbt.scala.versionを2.10.4にアップグレードすることで解消できるそう

というのは、どこの情報でしょうか?


下記URLの、下から4つめにある回答を参照しました。
https://github.com/sbt/sbt/issues/1739

 

まず、エラー内容見る限り、異なるversionのScalaが混ざってます。
おそらく、ローカルにインストールされてるplayのversionと、plugins.sbtで設定してるplayのversionが違います。
ローカルにインストールされてるplayのversionを確認してみてください。  

確認方法がこれであっているかはわかりませんが、以下の結果がでました。
結論としてバージョンは2.2.3でしたので、plugins.sbtの記述と一致していました。
/*************************************************************************/
C:\play\play-2.2.3\project>play help
       _
 _ __ | | __ _ _  _
| '_ \| |/ _' | || |
|  __/|_|\____|\__ /
|_|            |__/

play 2.2.3 built with Scala 2.10.3 (running Java 1.8.0_25), http://www.playframe
Welcome to Play 2.2.3!

These commands are available:
-----------------------------
license            Display licensing informations.
new [directory]    Create a new Play application in the specified directory.

You can also browse the complete documentation at http://www.playframework.com.

/*************************************************************************/
 

あと、もしgithubに置いた通りのディレクトリ構成でコマンドを実行したのなら、
そもそもbuild.propertiesやplugins.sbtの置き場所が間違っています



いえ、実際のディレクトリ構成ではありません。
githubのものは、設定ファイル類のみを抜き出してアップロードしたものです。


○追記
インストールしているplayframeworkのバージョンチェックをしていて気が付いたのですが、play2.2.3はjava8で動いているのでしょうか。
開発環境のjdkが1.7.0_55なのですが、これが原因である可能性はありますでしょうか。

Kenji Yoshida

unread,
Jan 29, 2015, 12:01:04 PM1/29/15
to pla...@googlegroups.com
javaのversionはおそらく関係ありません。

そのsbtのissueに書いてあるように、sbtのversionが違う(ことにより、scalaのversionが違う)ことが原因である可能性が高いので、build.propertiesに記述されてるsbtのversionを0.13.0に下げる(もしくは一旦build.propertiesなしで起動させてみる)、などを試してみてください



2015年1月30日金曜日、<katsuya...@nekonote-software.com>さんは書きました:

katsuya...@nekonote-software.com

unread,
Jan 30, 2015, 12:46:05 AM1/30/15
to pla...@googlegroups.com


2015年1月30日金曜日 2時01分04秒 UTC+9 Kenji Yoshida:
javaのversionはおそらく関係ありません。

そのsbtのissueに書いてあるように、sbtのversionが違う(ことにより、scalaのversionが違う)ことが原因である可能性が高いので、build.propertiesに記述されてるsbtのversionを0.13.0に下げる(もしくは一旦build.propertiesなしで起動させてみる)、などを試してみてください

sbtのバージョンを0.13.0に引き下げるとplayコマンドは実行できるのですが、この場合、
一番最初に投稿してる目的(webpayライブラリの適用)が果たせなくなってしまいます。

sbtが0.13.7であればwebpayライブラリを問題なく取り込めたとご報告くださった方がいらっしゃいましたので、
できれば0.13.7で実行したいと思っています。

playframeworkを2.3系に更新するしかないでしょうか。

 


2015年1月30日金曜日、<katsuya-hig...@nekonote-software.com>さんは書きました:
このグループから退会し、グループからのメールの配信を停止するには play_ja+unsubscribe@googlegroups.com にメールを送信してください。

Kenji Yoshida

unread,
Jan 30, 2015, 1:41:04 AM1/30/15
to pla...@googlegroups.com
「sbtが0.13.7だからwebpayライブラリを問題なく取り込めた」あたりの因果関係は不明(個人的にはそれが原因ではないと思う)ですが、


- もし、sbt0.13.7試すなら、playコマンド使わずにsbt直接使う(playコマンドは、sbtを内部的に呼び出してるだけなので、それで動くはず)
- そもそも依存ライブラリが取り込めない件は、キャッシュがダメになってることが原因な可能性があるので、
- ホームディレクトリ/.ivy2 を消してやり直す
- play自体のインストールをやり直す
- 同じ条件で他のPCで試してみる


などをしてみると直る可能性があるとおもいます



2015年1月30日 14:46 <katsuya...@nekonote-software.com>:
>
>
> 2015年1月30日金曜日 2時01分04秒 UTC+9 Kenji Yoshida:
>>
>> javaのversionはおそらく関係ありません。
>>
>>
>> そのsbtのissueに書いてあるように、sbtのversionが違う(ことにより、scalaのversionが違う)ことが原因である可能性が高いので、build.propertiesに記述されてるsbtのversionを0.13.0に下げる(もしくは一旦build.propertiesなしで起動させてみる)、などを試してみてください
>>
> sbtのバージョンを0.13.0に引き下げるとplayコマンドは実行できるのですが、この場合、
> 一番最初に投稿してる目的(webpayライブラリの適用)が果たせなくなってしまいます。
>
> sbtが0.13.7であればwebpayライブラリを問題なく取り込めたとご報告くださった方がいらっしゃいましたので、
> できれば0.13.7で実行したいと思っています。
>
> playframeworkを2.3系に更新するしかないでしょうか。
>
>
>>
>>
>>
>> 2015年1月30日金曜日、<katsuya...@nekonote-software.com>さんは書きました:

katsuya...@nekonote-software.com

unread,
Jan 30, 2015, 8:57:58 AM1/30/15
to pla...@googlegroups.com

頂いたアドバイスに対する実験結果は下記のようになっています。
結論として、やはりうまくいきませんでした。


○結果
----------------------------------------------------------------------------------------------------------------------------------------------- 


- もし、sbt0.13.7試すなら、playコマンド使わずにsbt直接使う(playコマンドは、sbtを内部的に呼び出してるだけなので、それで動くはず) 

sbt0.13.7を単品でインストールし、sbtで直接実行してみたのですが、やはり起動しませんでした。
ここが問題となっているわけではないようです。


- そもそも依存ライブラリが取り込めない件は、キャッシュがダメになってることが原因な可能性があるので、 
  - ホームディレクトリ/.ivy2 を消してやり直す 
こちらは/.ivy2を見つけ出せなかったため、試せませんでした。
 

  - play自体のインストールをやり直す 
新規にplay2.2.3をインストールしてwebpayライブラリの適用を試しましたが、最初の投稿と同様のエラーが発生致しました。
 

  - 同じ条件で他のPCで試してみる 
環境的に同様のPCが無いため、試せませんでした。


-----------------------------------------------------------------------------------------------------------------------------------------------



2015年1月30日金曜日 15時41分04秒 UTC+9 Kenji Yoshida:
「sbtが0.13.7だからwebpayライブラリを問題なく取り込めた」あたりの因果関係は不明(個人的にはそれが原因ではないと思う)ですが、


- もし、sbt0.13.7試すなら、playコマンド使わずにsbt直接使う(playコマンドは、sbtを内部的に呼び出してるだけなので、それで動くはず)  
- そもそも依存ライブラリが取り込めない件は、キャッシュがダメになってることが原因な可能性があるので、
  - ホームディレクトリ/.ivy2 を消してやり直す
  - play自体のインストールをやり直す
  - 同じ条件で他のPCで試してみる


などをしてみると直る可能性があるとおもいます



2015年1月30日 14:46  <katsuya...@nekonote-software.com>:
>
>
> 2015年1月30日金曜日 2時01分04秒 UTC+9 Kenji Yoshida:
>>
>> javaのversionはおそらく関係ありません。
>>
>>
>> そのsbtのissueに書いてあるように、sbtのversionが違う(ことにより、scalaのversionが違う)ことが原因である可能性が高いので、build.propertiesに記述されてるsbtのversionを0.13.0に下げる(もしくは一旦build.propertiesなしで起動させてみる)、などを試してみてください
>>
> sbtのバージョンを0.13.0に引き下げるとplayコマンドは実行できるのですが、この場合、
> 一番最初に投稿してる目的(webpayライブラリの適用)が果たせなくなってしまいます。
>
> sbtが0.13.7であればwebpayライブラリを問題なく取り込めたとご報告くださった方がいらっしゃいましたので、
> できれば0.13.7で実行したいと思っています。
>
> playframeworkを2.3系に更新するしかないでしょうか。
>
>
>>
>>
>>
>> 2015年1月30日金曜日、<katsuya-hig...@nekonote-software.com>さんは書きました:

樋口勝也

unread,
Feb 3, 2015, 12:15:38 AM2/3/15
to pla...@googlegroups.com
Takashi Kawachi様、 Kenji Yoshida様、 色々なご意見を頂きまして、ありがとうございました。

あれから色々と行った結果、playframeworkのバージョンを2.2.3から2.3.6に更新することで
うまくライブラリを取り込めるようになりました。

2.2.3と2.3.6の差異がどこにあるのか調べないと根本的な原因はつかめませんが、
ひとまずは解決ということになります。

ありがとうございました!

2015年1月30日金曜日 22時57分58秒 UTC+9 樋口勝也:
Reply all
Reply to author
Forward
0 new messages