🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Eclipse

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Q&A

2回答

10313閲覧

eclipse HTTPステータス 500 – Internal Server Error 実行エラー について

touto

総合スコア12

Eclipse

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

0グッド

0クリップ

投稿2019/09/09 11:58

メッセージボードアプリケーションを作成しており、
DBへの問い合わせを実行する予定で、その問い合わせ結果をgetResultList() メソッドを使ってリスト形式で取得。
DBに保存されたデータをHibernateを使用して自動的にMessage クラスのオブジェクトにして、格納しようと思っており、
http://localhost:8080/message_board/index にアクセスをし、動作確認をしてみたところ、このようなエラーが表示されてしまいました。

本当は0と表示されていればいいのですが。
スタックトレースの直接的な原因を調べてみたのですが、あまり理解できておらず。
Eclipse など初心者なのですが、
しっかりと自身で不明点を調べ、解決できるよう今後なりたいので、
どのような手順で考え、解決すべきかご教示お願いいたします。

Java

1//コントローラー 2 3 4package controllers; 5 6 7import java.io.IOException; 8import java.util.List; 9 10import javax.persistence.EntityManager; 11import javax.servlet.ServletException; 12import javax.servlet.annotation.WebServlet; 13import javax.servlet.http.HttpServlet; 14import javax.servlet.http.HttpServletRequest; 15import javax.servlet.http.HttpServletResponse; 16 17import models.Message; 18import utils.DBUtil; 19 20@WebServlet("/index") 21public class IndexServlet extends HttpServlet { 22 private static final long serialVersionUID = 1L; 23 24 public IndexServlet() { 25 super(); 26 // TODO Auto-generated constructor stub 27 } 28 29 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 30 EntityManager em = DBUtil.createEntityManager(); 31 32 List<Message> messages = em.createNamedQuery("getAllMessages", Message.class) 33 .getResultList(); 34 response.getWriter().append(Integer.valueOf(messages.size()).toString()); 35 36 em.close(); 37 } 38 39} 40

Java

1package models; 2 3import java.sql.Timestamp; 4 5import javax.persistence.Column; 6import javax.persistence.Entity; 7import javax.persistence.GeneratedValue; 8import javax.persistence.GenerationType; 9import javax.persistence.Id; 10import javax.persistence.NamedQueries; 11import javax.persistence.NamedQuery; 12import javax.persistence.Table; 13 14@Entity 15@NamedQueries({ 16 @NamedQuery( 17 name = "getAllMessages", 18 query = "SELECT m FROM Message AS m ORDER BY m.id DESC" 19 ) 20}) 21@Table(name = "messages") 22public class Message { 23 @Id 24 @Column(name = "id") 25 @GeneratedValue(strategy = GenerationType.IDENTITY) 26 private Integer id; 27 28 @Column(name = "title", length = 255, nullable = false) 29 private String title; 30 31 @Column(name = "content", length = 255, nullable = false) 32 private String content; 33 34 @Column(name = "created_at", nullable = false) 35 private Timestamp created_at; 36 37 @Column(name = "updated_at", nullable = false) 38 private Timestamp updated_at; 39 40 public Integer getId() { 41 return id; 42 } 43 44 public void setId(Integer id) { 45 this.id = id; 46 } 47 48 public String getTitle() { 49 return title; 50 } 51 52 public void setTitle(String title) { 53 this.title = title; 54 } 55 56 public String getContent() { 57 return content; 58 } 59 60 public void setContent(String content) { 61 this.content = content; 62 } 63 64 public Timestamp getCreated_at() { 65 return created_at; 66 } 67 68 public void setCreated_at(Timestamp created_at) { 69 this.created_at = created_at; 70 } 71 72 public Timestamp getUpdated_at() { 73 return updated_at; 74 } 75 76 public void setUpdated_at(Timestamp updated_at) { 77 this.updated_at = updated_at; 78 } 79 80 81}

Java

1package utils; 2 3import javax.persistence.EntityManager; 4import javax.persistence.EntityManagerFactory; 5import javax.persistence.Persistence; 6 7public class DBUtil { 8 private static final String PERSISTENCE_UNIT_NAME = "message_board"; 9 private static EntityManagerFactory emf; 10 11 public static EntityManager createEntityManager() { 12 return _getEntityManagerFactory().createEntityManager(); 13 } 14 15 private static EntityManagerFactory _getEntityManagerFactory() { 16 if(emf == null) { 17 emf = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME); 18 } 19 20 return emf; 21 } 22}
HTTPステータス 500 – Internal Server Error タイプ 例外報告 メッセージ サーブレットの実行により例外を投げました 説明 サーバーは予期しない条件に遭遇しました。それはリクエストの実行を妨げます。 例外 javax.servlet.ServletException: サーブレットの実行により例外を投げました org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 根本原因 java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException org.hibernate.boot.spi.XmlMappingBinderAccess.<init>(XmlMappingBinderAccess.java:43) org.hibernate.boot.MetadataSources.<init>(MetadataSources.java:87) org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:209) org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:171) org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:76) org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilder(HibernatePersistenceProvider.java:181) org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:129) org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:71) org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:52) javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55) javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39) utils.DBUtil._getEntityManagerFactory(DBUtil.java:17) utils.DBUtil.createEntityManager(DBUtil.java:12) controllers.IndexServlet.doGet(IndexServlet.java:38) javax.servlet.http.HttpServlet.service(HttpServlet.java:634) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 根本原因 java.lang.ClassNotFoundException: javax.xml.bind.JAXBException org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365) org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188) org.hibernate.boot.spi.XmlMappingBinderAccess.<init>(XmlMappingBinderAccess.java:43) org.hibernate.boot.MetadataSources.<init>(MetadataSources.java:87) org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:209) org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:171) org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:76) org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilder(HibernatePersistenceProvider.java:181) org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:129) org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:71) org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:52) javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55) javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39) utils.DBUtil._getEntityManagerFactory(DBUtil.java:17) utils.DBUtil.createEntityManager(DBUtil.java:12) controllers.IndexServlet.doGet(IndexServlet.java:38) javax.servlet.http.HttpServlet.service(HttpServlet.java:634) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 注意 原因のすべてのスタックトレースは、サーバのログに記録されています Apache Tomcat/9.0.21

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

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

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

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

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

guest

回答2

0

ご指導ありがとうございます。

自身でなにが問題か検索してみたところ、
Javaのアップデートが問題と考え、
下記コードを依存関係に加えて実行したところ、

●javax.xml.bind
jaxb-api
2.3.0

●com.sun.xml.bind
jaxb-core
2.3.0

●com.sun.xml.bind
jaxb-impl
2.3.0

次はスタックトレースにてこのような表示が出てきました。
Hibernateの環境構築が上手くいっていないと考え、検索をかけてみたところ、
https://codeday.me/jp/qa/20190323/437221.html

↑上記ウェブサイト例が自分には合っているかなと考えたのですが、
どのようなステップで私の作業に組み込めばいいか上手く理解できておらず、
ご教示いただきたく存じます。。。。

タイプ 例外報告 メッセージ [PersistenceUnit: message_board] Unable to build Hibernate SessionFactory 説明 サーバーは予期しない条件に遭遇しました。それはリクエストの実行を妨げます。 例外 javax.persistence.PersistenceException: [PersistenceUnit: message_board] Unable to build Hibernate SessionFactory org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:970) org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:895) org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:58) javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55) javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39) utils.DBUtil._getEntityManagerFactory(DBUtil.java:17) utils.DBUtil.createEntityManager(DBUtil.java:12) controllers.IndexServlet.doGet(IndexServlet.java:30) javax.servlet.http.HttpServlet.service(HttpServlet.java:634) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

投稿2019/09/10 23:48

touto

総合スコア12

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

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

0

こんにちは。

javax.xml.bind.JAXBExceptionが出力されていますね。
上記の例外をググってみると、同様のエラーが出ていて、解決方法の記事も出ていると思います。
まずはそちらを確認されては如何でしょうか?

調べ方という点ですが、やはり最初は発生した例外やエラーメッセージで検索してみて
同様の事象が発生している記事を探してみて、自身の環境と照らし合わせ、
解決していくという道筋がいいと思います。
ただ、安直にコピペするのではなく、なぜその解決方法で解決できるのか?という意識をしておくと
より良いと思います。

投稿2019/09/09 12:31

knr

総合スコア20

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問