質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.69%

PlayFramework2.4からSQLServer2005に接続ができない

受付中

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,404

tkoban

score 6

javaのプログラムを下記環境で構築しようとしていますが、
DBへの接続ができず困っています。
どなたかこの問題にご回答いただければ、幸いです。

play framework2.4

前提・実現したいこと

javaでプログラムを作成
1.使用言語
java1.8

2.使用フレームワーク
play framework2.4
3.DB
SQLServer2005

4.IDE
Eclipse all in one
Version: Mars.2 Release (4.5.2)

発生している問題・エラーメッセージ

play2.4から上記DBに接続しようとするとエラーになる。

エラーメッセージ


C:\pleiades\workspace\NewJyucyu_Play2.4.6>activator -jvm-debug 9999 run 
ACTIVATOR_HOME=C:\pleiades\playframework\activator-1.3.9-minimal
Listening for transport dt_socket at address: 9999
[info] Loading project definition from C:\pleiades\workspace\NewJyucyu_Play2.4.6\project
[info] Set current project to NewJyucyu (in build file:/C:/pleiades/workspace/NewJyucyu_Play2.4.6/)

--- (Running the application, auto-reloading is enabled) ---

[info] p.c.s.NettyServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9000

(Server started, use Ctrl+D to stop and go back to the console...)

Warning: node.js detection failed, sbt will use the Rhino based Trireme JavaScript engine instead to run JavaScript assets compilation, which in some cases may be orders of magnitude slower than using node.js.
[error] p.c.s.n.PlayRequestHandler - Exception caught in Netty
java.lang.NoClassDefFoundError: Could not initialize class play.api.http.DefaultHttpErrorHandler$
    at play.core.server.Server$class.logExceptionAndGetResult$1(Server.scala:45)
    at play.core.server.Server$class.getHandlerFor(Server.scala:65)
    at play.core.server.NettyServer.getHandlerFor(NettyServer.scala:47)
    at play.core.server.netty.PlayRequestHandler.handle(PlayRequestHandler.scala:82)
    at play.core.server.netty.PlayRequestHandler.channelRead(PlayRequestHandler.scala:163)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)
    at com.typesafe.netty.http.HttpStreamsHandler.channelRead(HttpStreamsHandler.java:129)
    at com.typesafe.netty.http.HttpStreamsServerHandler.channelRead(HttpStreamsServerHandler.java:96)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)

該当のソースコード

【play2.4で必要なDB関連設定ファイル】
設定ファイル1. application.conf・・・DB関連、初期化情報設定ファイル

以下設定内容を抜粋

DBコネクションプール設定

 Database Connection Pool

 https://www.playframework.com/documentation/latest/SettingsJDBC

 ~~~~~

 Play doesn't require a JDBC database to run, but you can easily enable one.

 libraryDependencies += jdbc

play.db {
  # The combination of these two settings results in "db.default" as the
  #default JDBC pool:
  config = "db"
  default = "default"

  # Play uses HikariCP as the default connection pool.  You can override
  # settings by changing the prototype:
  prototype {
    Sets a fixed JDBC connection pool size of 50
    hikaricp.maximumPoolSize = 50
  }
}

 JDBC Datasource

 https://www.playframework.com/documentation/latest/JavaDatabase

 https://www.playframework.com/documentation/latest/ScalaDatabase

 ~~~~~

 Once JDBC datasource is set up, you can work with several different

 database options:

 Slick (Scala preferred option): https://www.playframework.com/documentation/latest/PlaySlick

 JPA (Java preferred option): https://playframework.com/documentation/latest/JavaJPA

 EBean: https://playframework.com/documentation/latest/JavaEbean

 Anorm: https://www.playframework.com/documentation/latest/ScalaAnorm

db {
  # You can declare as many datasources as you want.
  # By convention, the default datasource is named default

DB設定情報

    default.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
    default.url="jdbc:jtds:sqlserver:172.31.***.*;databaseName=TEST"
    default.username="sa"
    default.password="c3@12345678"

    default.logStatements=true

  # You can turn on SQL logging for any datasource
  # https://www.playframework.com/documentation/latest/Highlights25#Logging-SQL-statements
  #default.logSql=true
}

設定ファイル2. build.sbt・・・SQLServerドライバの動的取得設定
下記設定はデフォルトに近いですが、
1か所 "net.sourceforge.jtds" % "jtds" % "1.3.1"を追記

name := """テストプロジェクト"""
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayJava)
scalaVersion := "2.11.7"

libraryDependencies ++= Seq(
  javaJdbc,
  cache,
  javaWs,
 "net.sourceforge.jtds" % "jtds" % "1.3.1"
)

試したこと

課題に対してアプローチしたことを記載してください
1.Play framework バージョンを下げる
2.5 ⇒ 2.4 に下げ再テスト

(結果)同じ上記エラー

2.ドライバの変更
jtds-1.3.1.jar ⇔ sqljdbc4.jar(マイクロソフトのサイト)

補足情報(言語/FW/ツール等のバージョンなど)

より詳細な情報
上記にある通り

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

DBのurlに//が洩れてました。
ご協力ありがとうございました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.69%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる