Basti Spyra
Grünschnabel
Hallo.
Ich bin am verzweifeln.
Ich muss fürs Studium eine Webanwendung Mit EJB und JSF unter Glassfish entwickeln. Als Datenbank tut MySQL dienst.
Jetzt habe ich bekomme ich aus der Datenbank zwei IDs:
crd.von als auch crd.nach repräsentieren Städte. Nun möchte ich die IDs in die Stadtnamen konvertieren.
Gesagt getan:
Der CityConverter bekommt die ID und soll eine bestehende Funktion in der SessionBean aufrufen, die dazu den Stadtnamen liefert:
Jedoch bekomme ich eine java.lang.NullPointerException beim Aufruf.
Bin ein ziemlicher Java****, hoffe aber auf eure Hilfe
Ich bin am verzweifeln.
Ich muss fürs Studium eine Webanwendung Mit EJB und JSF unter Glassfish entwickeln. Als Datenbank tut MySQL dienst.
Jetzt habe ich bekomme ich aus der Datenbank zwei IDs:
Code:
<h:dataTable value="#{bookingBean.cardByUser}" var="crd">
<h:column>
<f:facet name="header">
<h:outputText value="Von/Nach"/>
</f:facet>
<h:outputText value="#{crd.von}" />
<br />
<h:outputText value="#{crd.nach}" />
</h:column>
...
crd.von als auch crd.nach repräsentieren Städte. Nun möchte ich die IDs in die Stadtnamen konvertieren.
Gesagt getan:
Code:
<h:dataTable value="#{bookingBean.cardByUser}" var="crd">
<h:column>
<f:facet name="header">
<h:outputText value="Von/Nach"/>
</f:facet>
<h:outputText value="#{crd.von}" converter="convertcityid" />
<br />
<h:outputText value="#{crd.nach}" converter="convertcityid" />
</h:column>
Der CityConverter bekommt die ID und soll eine bestehende Funktion in der SessionBean aufrufen, die dazu den Stadtnamen liefert:
Code:
public class CityConverter implements Converter, Serializable
{
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value)
{
return value;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value)
{
int city_id = (Integer)value;
String output = new journeySession().getCityById(city_id);
return output;
}
}
Code:
public class journeySession implements journeySessionRemote
{
@PersistenceContext
protected EntityManager em;
...
@Override
public String getCityById(int city_id)
{
try
{
Query query = em.createNamedQuery("Cities.findByCityId").setParameter("cityId", city_id);
return query.getSingleResult().toString();
}
catch(NoResultException nrex)
{
return "Es konnten keine Einträge gefunden werden.";
}
}
...
}
Jedoch bekomme ich eine java.lang.NullPointerException beim Aufruf.
Code:
Stack Trace
java.lang.NullPointerException
at sessions.journeySession.getCityById(journeySession.java:152) //Aufruf des EntityManagers
at katipo.CityConverter.getAsString(CityConverter.java:25) //Aufruf der journeySession
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getFormattedValue(HtmlBasicRenderer.java:502)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getFormattedValue(HtmlBasicRenderer.java:521)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:340)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:164)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:295)
at com.sun.faces.renderkit.html_basic.TableRenderer.renderRow(TableRenderer.java:380)
at com.sun.faces.renderkit.html_basic.TableRenderer.encodeChildren(TableRenderer.java:161)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1613)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:380)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:126)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:127)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:619)
Bin ein ziemlicher Java****, hoffe aber auf eure Hilfe
