java ee - @Stateless not injected via @Inject in a JSF @ManagedBean -


i trying read horoscope json url , save database , using jsf 2.2.

i getting null pointer exception:

java.lang.nullpointerexception     @ com.horoskop.android.controlor.horoscopebean.savetodayhoroscope(horoscopebean.java:40) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ javax.el.elutil.invokemethod(elutil.java:332) @ javax.el.beanelresolver.invoke(beanelresolver.java:537) @ javax.el.compositeelresolver.invoke(compositeelresolver.java:256) @ com.sun.el.parser.astvalue.getvalue(astvalue.java:136) @ com.sun.el.parser.astvalue.getvalue(astvalue.java:204) @ com.sun.el.valueexpressionimpl.getvalue(valueexpressionimpl.java:226) 

this managedbean code:

@managedbean @applicationscoped public class horoscopebean {   horoscopeparser horoscopeparser;  @inject horoscopeejb horoscopeejb;  public void savetodayhoroscope() throws exception{              horoscopefeed horoscope = gettodayhoroscope();      for(int i=0;i<horoscope.gethoroscope().size();i++){                  day d = new day();         d.settext(horoscope.gethoroscope().get(i).gettxthrs());         horoscopeejb.addtodayhoroscope(d);     } }  public void savelovehoroscope() throws exception{              horoscopefeed horoscope = getlovehoroscope();      for(int i=0;i<horoscope.gethoroscope().size();i++){                  love l = new love();         l.settext(horoscope.gethoroscope().get(i).gettxthrs());         horoscopeejb.addlovehoroscope(l);     } }  public void saveweekhoroscope() throws exception{              horoscopefeed horoscope = getweekhoroscope();      for(int i=0;i<horoscope.gethoroscope().size();i++){                  week w = new week();         w.settext(horoscope.gethoroscope().get(i).gettxthrs());         horoscopeejb.addweekhoroscope(w);     } }  public void savemonthhoroscope() throws exception{              horoscopefeed horoscope = getmonthhoroscope();      for(int i=0;i<horoscope.gethoroscope().size();i++){                  month m = new month();         m.settext(horoscope.gethoroscope().get(i).gettxthrs());         horoscopeejb.addmonthhoroscope(m);     } }  public horoscopefeed gettodayhoroscope() throws exception{     horoscopeparser = new horoscopeparser();      return horoscopeparser.gettodayhoroscope(url); }     public horoscopefeed getweekhoroscope() throws exception{     horoscopeparser = new horoscopeparser();     return horoscopeparser.gettodayhoroscope(url);         }  public horoscopefeed getlovehoroscope() throws exception{     horoscopeparser = new horoscopeparser();     return  horoscopeparser.gettodayhoroscope(url); }   public horoscopefeed getmonthhoroscope() throws exception{     horoscopeparser = new horoscopeparser();     return horoscopeparser.gettodayhoroscope(url); }  

ejb code:

@stateless @localbean public class horoscopeejb {  @persistencecontext entitymanager em;  public void addtodayhoroscope(day day){      boolean ifexist = checkdaily(day.gettext());     if(!ifexist){         em.merge(day);      }  }  public void addlovehoroscope(love love){      boolean ifexist = checklove(love.gettext());     if(!ifexist){         em.merge(love);      } }   public void addweekhoroscope(week week){      boolean ifexist = checkweek(week.gettext());     if(!ifexist){         em.merge(week);      } }  public void addmonthhoroscope(month month){      boolean ifexist = checkmonth(month.gettext());     if(!ifexist){         em.merge(month);      } }  private boolean checkdaily(string text){     list<day> results = em.createquery("select d da d d.text = :text")                     .setparameter("text", text).getresultlist();      if(results.size() > 0){         return true;     } else{         return false;     } }  private boolean checklove(string text){     list<love> results = em.createquery("select k love l l.text = :text")                     .setparameter("text", text).getresultlist();      if(results.size() > 0){         return true;     } else{         return false;     } }  private boolean checkweek(string text){     list<week> results = em.createquery("select w week d w.text = :text")                     .setparameter("text", text).getresultlist();      if(results.size() > 0){         return true;     } else{         return false;     } }   private boolean checkmonth(string text){     list<month> results = em.createquery("select m month m m.text = :text")                     .setparameter("text", text).getresultlist();      if(results.size() > 0){         return true;     } else{         return false;     } } 

}

this horoscope parser code, connect url , read json, , parse it.

public class horoscopeparser {  public horoscopefeed gettodayhoroscope(string url) throws exception{     string content = readurl(url);     gson gson = new gson();     return gson.fromjson(content, horoscopefeed.class); }  public horoscopefeed getlovehoroscope(string url) throws exception{     string content = readurl(url);     gson gson = new gson();     return gson.fromjson(content, horoscopefeed.class); }  public horoscopefeed getweekhoroscope(string url) throws exception{     string content = readurl(url);     gson gson = new gson();     return gson.fromjson(content, horoscopefeed.class); }  public horoscopefeed getmonthhoroscope(string url) throws exception{     string content = readurl(url);     gson gson = new gson();     return gson.fromjson(content, horoscopefeed.class); }  private static string readurl(string urlstring) throws exception { bufferedreader reader = null; try {     url url = new url(urlstring);     reader = new bufferedreader(new inputstreamreader(url.openstream()));     stringbuffer buffer = new stringbuffer();     int read;     char[] chars = new char[1024];     while ((read = reader.read(chars)) != -1)         buffer.append(chars, 0, read);       return buffer.tostring(); } {     if (reader != null)         reader.close(); } 

}

}

update:

if change @ejb instead of @inject error:

 javax.ejb.ejbexception @ com.sun.ejb.containers.ejbcontainertransactionmanager.processsystemexception(ejbcontainertransactionmanager.java:748) @ com.sun.ejb.containers.ejbcontainertransactionmanager.completenewtx(ejbcontainertransactionmanager.java:698) @ com.sun.ejb.containers.ejbcontainertransactionmanager.postinvoketx(ejbcontainertransactionmanager.java:503) @ com.sun.ejb.containers.basecontainer.postinvoketx(basecontainer.java:4566) @ com.sun.ejb.containers.basecontainer.postinvoke(basecontainer.java:2074) @ com.sun.ejb.containers.basecontainer.postinvoke(basecontainer.java:2044) @ com.sun.ejb.containers.ejblocalobjectinvocationhandler.invoke(ejblocalobjectinvocationhandler.java:220) @ com.sun.ejb.containers.ejblocalobjectinvocationhandlerdelegate.invoke(ejblocalobjectinvocationhandlerdelegate.java:88) @ com.sun.proxy.$proxy233.addtodayhoroscope(unknown source) @ com.horoskop.android.controlor.__ejb31_generated__horoscopeejb__intf____bean__.addtodayhoroscope(unknown source) @ com.horoskop.android.controlor.horoscopebean.savetodayhoroscope(horoscopebean.java:44) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ javax.el.elutil.invokemethod(elutil.java:332) @ javax.el.beanelresolver.invoke(beanelresolver.java:537) @ javax.el.compositeelresolver.invoke(compositeelresolver.java:256) @ com.sun.el.parser.astvalue.getvalue(astvalue.java:136) @ com.sun.el.parser.astvalue.getvalue(astvalue.java:204) @ com.sun.el.valueexpressionimpl.getvalue(valueexpressionimpl.java:226) @ org.jboss.weld.el.weldvalueexpression.getvalue(weldvalueexpression.java:50) @ com.sun.faces.facelets.el.eltext$eltextvariable.writetext(eltext.java:238) 

web.xml

 <?xml version="1.0" encoding="utf-8"?>  <web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"> <context-param>     <param-name>javax.faces.project_stage</param-name>     <param-value>development</param-value> </context-param> <servlet>     <servlet-name>faces servlet</servlet-name>     <servlet-class>javax.faces.webapp.facesservlet</servlet-class>     <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping>     <servlet-name>faces servlet</servlet-name>     <url-pattern>/faces/*</url-pattern> </servlet-mapping> <session-config>     <session-timeout>         30     </session-timeout> </session-config> <welcome-file-list>     <welcome-file>faces/index.xhtml</welcome-file> </welcome-file-list> 

okey, found problem.

it syntax typo error in sql query today horoscope.

i wrote this:

"select d da d d.text = :text" 

and should this:

"select d day d d.text = :text" 

Comments

Popular posts from this blog

java - Run spring boot application error: Cannot instantiate interface org.springframework.context.ApplicationListener -

reactjs - React router and this.props.children - how to pass state to this.props.children -

Excel VBA "Microsoft Windows Common Controls 6.0 (SP6)" Location Changes -