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

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

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

JSF (JavaServer Faces)とは、JavaベースのWebアプリケーションフレームワークの一つです。

Java

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

Q&A

解決済

1回答

2778閲覧

JPQLの問い合わせでつまずいています><

zyanpoyo

総合スコア13

JSF

JSF (JavaServer Faces)とは、JavaベースのWebアプリケーションフレームワークの一つです。

Java

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

0グッド

0クリップ

投稿2018/12/28 14:15

こんばんわ

現在JavaEEとJSFを使い、MySQLのテーブルから値を取り出す処理に苦戦しています

JPQLで問い合わせを行い、結果をList型にして返し、それをxhtmlで表示するプログラムです

実行手順
①mana_materialMana.xhtmlの45行目の<h:table>のなかのallメソッドを実行する

②Mana_materialMana.javaクラスのgetAll()を実行する

③EntityDb.javaのgetall()を実行する

ここで③のgetAll()を実行して,DBから問い合わせの結果をListに入れてxhtmlに表示したいのですが、
NullPointerExceptionが出て困っています><

ちなみに、EntityDb.javaのJPQLの問い合わせは成功して、データも取り出せます

かなり初歩的なところでつまずいていると自覚しています
どうか皆様の力を貸してください><

Mana_materialMana.xhtml

JavaEE JSF

1 2 3 <div class="table"> 4 <h:dataTable value="#{mana_materialMana.all}" var="Item" border="1"> 5 <h:column> 6 <f:facet name="header"> 7 <h:outputText value="素材ID"/> 8 </f:facet> 9 <h:outputText value="#{Item.materialid}"/> 10 </h:column> 11 <h:column> 12 <f:facet name="header"> 13 <h:outputText value="素材名"/> 14 </f:facet> 15 <h:outputText value="#{Item.materialname}"/> 16 </h:column> 17 </h:dataTable> 18 </div> 19 20 21 <footer> 22 <h:button value="変更を保存" class="cbtn btn btncolor" /> 23 <h:button value="削除" class="dbtn btn btncolor" /> 24 </footer> 25 26 27 </h:body> 28</html>

Mana_materialMana.java

JavaEE

1package bean; 2 3import entity.MaterialEntity; 4import java.util.LinkedHashMap; 5import java.util.List; 6import java.util.Map; 7import javax.enterprise.context.RequestScoped; 8import javax.inject.Named; 9import javax.persistence.Table; 10import util.EntityDb; 11 12@Named 13@RequestScoped 14 15public class Mana_materialMana { 16 17 18 private Integer city; //選択結果 19 private String word; //検索ワード 20 21 22 private String materialid ; 23 private String materialname ; 24 25 26 EntityDb db; 27 28 public List<MaterialEntity> getAll(){ //全素材データをリストに入れて返す 29 30 return db.getAll(); 31 }

EntityDb.java

Java

1* @author Owner 2 */ 3@Stateless 4public class EntityDb{ 5 @PersistenceContext 6 private EntityManager em; 7 8 public void shopcreate(ShopEntity shopemployee){ //新しい店舗をデータベースに新規登録する 9 em.persist(shopemployee); 10 } 11 12 public void materialcreate(MaterialEntity materialentity){ //新しい素材をデータベースに新規登録する 13 em.persist(materialentity); 14 } 15 16 public List<MaterialEntity> getAll(){ //DBに登録されている素材すべてを表示する 17 return em.createQuery("SELECT c FROM MaterialEntity c").getResultList(); 18 19 } 20 21 22}

MaterialEntity.java

JavaEE

1package entity; 2 3 4 5import java.io.Serializable; 6import java.util.List; 7import java.util.Objects; 8import javax.persistence.Entity; 9import javax.persistence.*; 10import javax.validation.constraints.NotNull; 11 12 13 14 15 16 17@Entity 18@Table(name = "material_table") 19public class MaterialEntity implements Serializable{ 20 21 public static final String Materialupdate = "Materialupdate"; 22 23 @Id @NotNull 24 private String materialid ; //素材ID 25 @NotNull 26 private String materialname ; //素材名 27 @OneToMany(mappedBy = "materialEntity") //materialEntity⇔clothesEntityの双方向関係 28 private List<ClothesEntity> clothesentity; 29 30 public MaterialEntity(){} 31 32 33 public MaterialEntity(String materialid,String materialname){ 34 this.materialid = materialid; 35 this.materialname = materialname; 36 } 37 38 public String getMaterialid() { 39 return materialid; 40 } 41 42 public void setMaterialid(String materialid) { 43 this.materialid = materialid; 44 } 45 46 public String getMaterialname() { 47 return materialname; 48 } 49 50 public void setMaterialname(String materialname) { 51 this.materialname = materialname; 52 } 53 54 55 56 57}
java.lang.NullPointerException at bean.Mana_materialMana.getAll(Mana_materialMana.java:55) 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:498) at javax.el.BeanELResolver.getValue(BeanELResolver.java:363) at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:180) at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:208) at com.sun.el.parser.AstValue.getValue(AstValue.java:140) at com.sun.el.parser.AstValue.getValue(AstValue.java:204) at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:226) at org.jboss.weld.module.web.el.WeldValueExpression.getValue(WeldValueExpression.java:50) at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:97) at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194) at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:181) at javax.faces.component.UIData.getValue(UIData.java:760) at javax.faces.component.UIData.getDataModel(UIData.java:1873) at javax.faces.component.UIData.setRowIndexWithoutRowStatePreserved(UIData.java:503) at javax.faces.component.UIData.setRowIndex(UIData.java:492) at com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:81) at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:564) at javax.faces.component.UIData.encodeBegin(UIData.java:1177) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1667) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1673) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1673) at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:492) at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:194) at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:156) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:126) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:223) at javax.faces.webapp.FacesServlet.executeLifecyle(FacesServlet.java:732) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:475) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1622) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:258) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:654) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:593) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:159) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:371) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:238) at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:516) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:213) at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206) at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180) at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:242) at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201) at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133) at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112) at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:539) at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:593) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:573) at java.lang.Thread.run(Thread.java:745)

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

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

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

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

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

guest

回答1

0

ベストアンサー

ソース拝見いたしました。

Mana_materialMana.javaのEntityDb db宣言では、CDIなどしていないので(インスタンスが空なので)null pointer errorが出ているのではないでしょうか。EntityDb宣言の前に@EJBアノテーションか@Injectアノテーションなど必要なのではないでしょうか。

最近JavaEEから離れているので深く説明できず済みません。

投稿2018/12/28 14:53

編集2018/12/28 14:54
BlueMoon

総合スコア1339

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

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

zyanpoyo

2018/12/28 15:00

BlueMoonさん @EJBをつけて実行してみたところ無事動きました! 2時間以上このエラーで動けず、 全く想像してなかったところからのエラーでびっくりしています お忙しい中、時間を使って回答していただきほんとにありがとうございます>< 本当に助かりました!
BlueMoon

2018/12/28 15:01

良かったです。夜分お疲れ様です^^
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問