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

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

新規登録して質問してみよう
ただいま回答率
85.49%
Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

0回答

1243閲覧

Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]を解決できません

begin1990

総合スコア31

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2018/08/30 12:11

herokuへwarファイルをプッシュしたのち、ログインをしたところ、

Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

というエラーメッセージが出ました。

イメージ説明

なお、eclipseのJPAコンテンツ/persistence.xmlの接続タブのURLには、

jdbc:mysql://(ドメイン)(データベース名)?reconnect=true&useSSL=false&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8

と入力しています。

試したこと
(ドメイン)と(データベース名)の間に「/」を入れた。
それでも変わりませんでした。

そこで、1点気になった箇所があります。
それは、3個目の「root cause」にある、

java.net.UnknownHostException: us-cdbr-iron-east-01.cleardb.netheroku_0b2bc7c5345dc0a: Name or service not known

の所です。

今回はus-cdbr-iron-east-01.cleardb.netがドメイン名で、heroku_0b2bc7c5345dc0aがデータベースの名前となっています。

また、ログイン後はトップページに飛ぶので、トップページのコードは、

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <c:import url="../layout/app.jsp"> <c:param name="content"> <c:if test="${flush != null}"> <div id="flush_success"> <c:out value="${flush}"></c:out> </div> </c:if> <h2>日報管理システムへようこそ</h2> <h3>【自分の日報 一覧】</h3> <table id="report_list"> <tbody> <tr> <th class="report_name">氏名</th> <th class="report_date">日付</th> <th class="report_title">タイトル</th> <th class="report_action">操作</th> </tr> <c:forEach var="report" items="${reports}" varStatus="status"> <tr class="row${status.count % 2}"> <td class="report_name"><c:out value="${report.employee.name}" /></td> <td class="report_date"><fmt:formatDate value='${report.report_date}' pattern='yyyy-MM-dd' /></td> <td class="report_title">${report.title}</td> <td class="report_action"><a href="<c:url value='/reports/show?id=${report.id}' />">詳細を見る</a></td> </tr> </c:forEach> </tbody> </table> <div id="pagination"> (全 ${reports_count} 件)<br /> <c:forEach var="i" begin="1" end="${((reports_count - 1) / 15) + 1}" step="1"> <c:choose> <c:when test="${i == page}"> <c:out value="${i}" />&nbsp; </c:when> <c:otherwise> <a href="<c:url value='/?page=${i}' />"><c:out value="${i}" /></a>&nbsp; </c:otherwise> </c:choose> </c:forEach> </div> <p><a href="<c:url value='/reports/new' />">新規日報の登録</a></p>ーは </c:param> </c:import>

となっています。

ログインコントローラーは

package controllers.login; import java.io.IOException; import javax.persistence.EntityManager; import javax.persistence.NoResultException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import models.Employee; import utils.DBUtil; import utils.EncryptUtil; /** * Servlet implementation class LoginServlet */ @WebServlet("/login") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public LoginServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setAttribute("_token", request.getSession().getId()); request.setAttribute("hasError", false); if(request.getSession().getAttribute("flush") != null) { request.setAttribute("flush", request.getSession().getAttribute("flush")); request.getSession().removeAttribute("flush"); } RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/views/login/login.jsp"); rd.forward(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Boolean check_result = false; String code = request.getParameter("code"); String plain_pass = request.getParameter("password"); Employee e = null; if(code != null && !code.equals("") && plain_pass != null && !plain_pass.equals("")) { EntityManager em = DBUtil.createEntityManager(); String password = EncryptUtil.getPasswordEncrypt( plain_pass, (String)this.getServletContext().getAttribute("salt") ); try { e = em.createNamedQuery("checkLoginCodeAndPassword", Employee.class) .setParameter("code", code) .setParameter("pass", password) .getSingleResult(); } catch(NoResultException ex) {} em.close(); if(e != null) { check_result = true; } } if(!check_result) { request.setAttribute("_token", request.getSession().getId()); request.setAttribute("hasError", true); RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/views/login/login.jsp"); rd.forward(request, response); } else { request.getSession().setAttribute("login_employee", e); request.getSession().setAttribute("flush", "ログインしました。"); response.sendRedirect(request.getContextPath() + "/"); } } }

トップページコントローラーは

package controllers.toppage; import java.io.IOException; import java.util.List; import javax.persistence.EntityManager; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import models.Employee; import models.Report; import utils.DBUtil; /** * Servlet implementation class TopPageIndexServlet */ @WebServlet("/index.html") public class TopPageIndexServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public TopPageIndexServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { EntityManager em = DBUtil.createEntityManager(); Employee login_employee = (Employee)request.getSession().getAttribute("login_employee"); int page; try{ page = Integer.parseInt(request.getParameter("page")); } catch(Exception e) { page = 1; } List<Report> reports = em.createNamedQuery("getMyAllReports", Report.class) .setParameter("employee", login_employee) .setFirstResult(15 * (page - 1)) .setMaxResults(15) .getResultList(); long reports_count = (long)em.createNamedQuery("getMyReportsCount", Long.class) .setParameter("employee", login_employee) .getSingleResult(); em.close(); request.setAttribute("reports", reports); request.setAttribute("reports_count", reports_count); request.setAttribute("page", page); if(request.getSession().getAttribute("flush") != null) { request.setAttribute("flush", request.getSession().getAttribute("flush")); request.getSession().removeAttribute("flush"); } RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/views/topPage/index.jsp"); rd.forward(request, response); } }

となっています。

どなたか、eclipseとherokuの接続に詳しい方、ご教示下さると幸いです。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問