2014-11-06 213 views
0

首先,我對我的英語不好感到抱歉。當我從KisiDao類創建一個對象,並嘗試使用它時,我得到錯誤「NullPointerException」。我在這個網站上搜索這個錯誤,但我找不到。注入EJB註釋時發生NullPointerException錯誤

Kisi.java

package model; 

import java.io.Serializable; 

import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 

@Entity 
public class Kisi implements Serializable { 

    private static final long serialVersionUID = -1527914551724665414L; 

    @Id 
    @GeneratedValue(strategy = GenerationType.SEQUENCE) 
    private Integer id; 

    private String adi; 

    private String soyadi; 

    public Integer getId() { 
     return id; 
    } 

    public void setId(Integer id) { 
     this.id = id; 
    } 

    public String getAdi() { 
     return adi; 
    } 

    public void setAdi(String adi) { 
     this.adi = adi; 
    } 

    public String getSoyadi() { 
     return soyadi; 
    } 

    public void setSoyadi(String soyadi) { 
     this.soyadi = soyadi; 
    } 



} 

KisiDao.java

package dao; 

import javax.ejb.Stateless; 
import javax.persistence.EntityManager; 
import javax.persistence.PersistenceContext; 

import model.Kisi; 

@Stateless 
public class KisiDao { 


    @PersistenceContext 
    private EntityManager entityManager; 

    public Kisi KisiKaydet(Kisi kisi) 
    { 
     entityManager.persist(kisi); 
     return kisi; 
    } 
} 

KisiService.java

package service; 

import java.io.Serializable; 

import javax.annotation.PostConstruct; 
import javax.ejb.EJB; 
import javax.faces.bean.ManagedBean; 
import javax.faces.bean.ViewScoped; 

import model.Kisi; 
import dao.KisiDao; 

@ManagedBean(name="kisiService") 
@ViewScoped 
public class KisiService implements Serializable{ 

    private static final long serialVersionUID = -9027472804586886314L; 

    @EJB 
    private KisiDao kisiDao; 

    private Kisi kisi = new Kisi(); 

    public void KisiKaydet() 
    { 
     kisiDao.KisiKaydet(kisi); //NullPointerException here 
    } 
    public Kisi getKisi() { 
     return kisi; 
    } 

    public void setKisi(Kisi kisi) { 
     this.kisi = kisi; 
    } 

} 

這是控制檯日誌。

WARNING: java.lang.NullPointerException 
javax.el.ELException: java.lang.NullPointerException 
    at org.apache.el.parser.AstValue.invoke(AstValue.java:258) 
    at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:277) 
    at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:149) 
    at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88) 
    at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:818) 
    at javax.faces.component.UICommand.broadcast(UICommand.java:300) 
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790) 
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282) 
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1081) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658) 
    at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222) 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566) 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.NullPointerException 
    at service.KisiService.KisiKaydet(KisiService.java:25) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.el.parser.AstValue.invoke(AstValue.java:245) 
    ... 33 more 

回答

2

看起來你使用的是Tomcat。 Tomcat默認不支持EJB,這就是爲什麼它是空的。如果您正在尋找具有EJB支持的輕量級服務器,請查看WebSphere Liberty https://developer.ibm.com/wasdev/

+0

謝謝。我很抱歉我遲到的回覆:) – 2015-04-10 21:16:38