konto usunięte

Temat: Problem z pustą listą... EJB, SEAM, Hibernate

Witajcie.

To jakieś dziwne.
Nie mam już problemów z hibernate,
deploy aplikacji zakończony powodzeniem,
bez błędów,
ale kiedy na stronie próbuję testowo zrobić:


#{klient.imie}


to jest w:

ale jak to wpisuje to edytor posta i tak to wyrzuca gdzieś w
kosmos.

to nic to nie daje. jest pusto zupełnie...

HBManager.java

package org.domain.helloboss.session;

import java.util.List;

import javax.ejb.Remove;
import javax.ejb.Stateful;

import org.domain.helloboss.session.Manager;
import org.hibernate.Session;
import org.jboss.seam.annotations.*;
import org.jboss.seam.annotations.datamodel.DataModel;

import entity.Klient;
import static org.jboss.seam.ScopeType.SESSION;

@Stateful
@Name("manager")
@Scope(SESSION)
public class HBManagerBean implements Manager {

@In ( create=true)
private Session HelloBossData;
@Out
@DataModel
private List klienci;

public List getKlienci() {
return klienci;
}

public void setKlienci(List klienci) {
this.klienci = klienci;
}
@Factory("klienci")
public void findKlienci() {
System.out.println("FindKlienci called");
klienci=HelloBossData.createQuery("from Klient").list();
}
@Destroy @Remove
public void destroy() {}

}


o co chodzi? jboss zadnego błędu nie wyrzuca..

konto usunięte

Temat: Problem z pustą listą... EJB, SEAM, Hibernate

Marek Urbanowicz:
to jest w:

ale jak to wpisuje to edytor posta i tak to wyrzuca gdzieś w kosmos.

to nic to nie daje. jest pusto zupełnie...

Witaj,

Nadużywasz zaimka "to".
Napisz jeszcze raz o co chodzi, bo nic a nic nie zrozumiałem.
Przede wszystkim wklej błąd!

Z pozdrowieniem,
Piotr

konto usunięte

Temat: Problem z pustą listą... EJB, SEAM, Hibernate

Marek Urbanowicz:

package org.domain.helloboss.session;

import java.util.List;

import javax.ejb.Remove;
import javax.ejb.Stateful;

import org.domain.helloboss.session.Manager;
import org.hibernate.Session;
import org.jboss.seam.annotations.*;
import org.jboss.seam.annotations.datamodel.DataModel;

import entity.Klient;
import static org.jboss.seam.ScopeType.SESSION;

@Stateful
@Name("manager")
@Scope(SESSION)[/quote]

@Scope jest z Seama, a podajesz mu SESSION z Hibernate?
Seam ma własne: session scope, conversation scope itd

[quote]public class HBManagerBean implements Manager {
@Out
@DataModel
private List klienci;
...
@Factory("klienci")
public void findKlienci() {
...[/quote]


Po co ten @Out?
W ten sposób nadajesz dwóm właściwościom bean'a nazwę "klienci" - List klienci i @Factory("klienci").

.. chyba, że się mylę :P

konto usunięte

Temat: Problem z pustą listą... EJB, SEAM, Hibernate

to co mam dać do scope ?
to nie jest moim zdaniem session z hibernate. zobacZ:
import static org.jboss.seam.ScopeType.SESSION;

konto usunięte

Temat: Problem z pustą listą... EJB, SEAM, Hibernate

Marek Urbanowicz:
to co mam dać do scope ?
to nie jest moim zdaniem session z hibernate. zobacZ:
import static org.jboss.seam.ScopeType.SESSION;

Mój błąd, nie doczytałem kolejnych linijek :)
ScopeType.SESSION jest ok

konto usunięte

Temat: Problem z pustą listą... EJB, SEAM, Hibernate

to w czym jest problem :(

konto usunięte

Temat: Problem z pustą listą... EJB, SEAM, Hibernate

błąd

org.jboss.seam.InstantiationException: Could not instantiate Seam component: manager
at org.jboss.seam.Component.newInstance(Component.java:1986)
at org.jboss.seam.Component.getInstance(Component.java:1876)
at org.jboss.seam.Component.getInstance(Component.java:1843)
at org.jboss.seam.Component.getInstanceFromFactory(Component.java:1922)
at org.jboss.seam.Component.getInstance(Component.java:1866)
at org.jboss.seam.Component.getInstance(Component.java:1843)
at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:55)
at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:50)
at org.jboss.seam.el.SeamELResolver.resolveBase(SeamELResolver.java:166)
at org.jboss.seam.el.SeamELResolver.getValue(SeamELResolver.java:53)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
at org.jboss.el.parser.AstIdentifier.getValue(AstIdentifier.java:44)
at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
at javax.faces.component.UIData.getValue(UIData.java:608)
at org.ajax4jsf.component.UIDataAdaptor.getValue(UIDataAdaptor.java:1459)
at org.ajax4jsf.component.SequenceDataAdaptor.getDataModel(SequenceDataAdaptor.java:70)
at org.ajax4jsf.component.SequenceDataAdaptor.createDataModel(SequenceDataAdaptor.java:64)
at org.ajax4jsf.component.UIDataAdaptor.getExtendedDataModel(UIDataAdaptor.java:592)
at org.ajax4jsf.component.UIDataAdaptor.walk(UIDataAdaptor.java:994)
at org.richfaces.renderkit.AbstractRowsRenderer.encodeRows(AbstractRowsRenderer.java:107)
at org.richfaces.renderkit.AbstractRowsRenderer.encodeRows(AbstractRowsRenderer.java:92)
at org.richfaces.renderkit.AbstractRowsRenderer.encodeChildren(AbstractRowsRenderer.java:139)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:832)
at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)
at org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)
at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:199)
at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:194)
at org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:121)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:832)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:936)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:942)
at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:109)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.naming.NameNotFoundException: HBManagerBean not bound
at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
at org.jnp.server.NamingServer.getBinding(NamingServer.java:537)
at org.jnp.server.NamingServer.getObject(NamingServer.java:543)
at org.jnp.server.NamingServer.lookup(NamingServer.java:267)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:667)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)
at javax.naming.InitialContext.lookup(Unknown Source)
at org.jboss.seam.Component.instantiateSessionBean(Component.java:1290)
at org.jboss.seam.Component.instantiate(Component.java:1276)
at org.jboss.seam.Component.newInstance(Component.java:1970)
... 76 more


Dodam że znika w momencie usunięcia anotacji @Factory("klienci") ...
czyli wygląda na to, że coś jednak nadal jest problem z sesją hibernate...

W informacji o błędach jako atrybuty aplikacji jest:
HibernateSessionFactory org.jboss.seam.persistence.HibernateSessionFactory@1596ee0
czyli session factory chyba jest zainicjowane, ale może nie inicjowana jest sesja hibernate? dlaczego? bo nie mam pojeciaMarek Urbanowicz edytował(a) ten post dnia 15.01.09 o godzinie 11:57

konto usunięte

Temat: Problem z pustą listą... EJB, SEAM, Hibernate

Piotr Janik:
[quote]public class HBManagerBean implements Manager {
@Out
@DataModel
private List klienci;
...
@Factory("klienci")
public void findKlienci() {
...[/quote]


Po co ten @Out?
W ten sposób nadajesz dwóm właściwościom bean'a nazwę "klienci" - List klienci i @Factory("klienci").

.. chyba, że się mylę :P

Jak wyżej.
Wydaje mi się, że masz dwie właściwości "klienci".

Jeśli używasz innego AS niż JBoss, musisz dać w web.xml referencje do beanów. Ja miałem podobny błąd na glassfishu.

Z pozdrowieniem,
Piotr

konto usunięte

Temat: Problem z pustą listą... EJB, SEAM, Hibernate

używam JBoss...
to co mam zrobić dokładnie?

konto usunięte

Temat: Problem z pustą listą... EJB, SEAM, Hibernate

Marek Urbanowicz:
używam JBoss...
to co mam zrobić dokładnie?

Tego bean'a masz skopanego.
Factory nie potrzebne.
Poczytaj do czego jest Factory.

Dla właściwości "klienci" używasz @DataModel,@Out,@Factory.
Namieszałeś.

Sprawdź przykłady. "Seam booking" będzie dobrym przykładem.

O ile się nie mylę, to metoda findKlienci powinna zwracać obiekt, w tym przypadku jakąś kolekcję, aby @Factory działało.

Według mnie, @DataModel jest najlepszym rozwiązaniem. Sprawdź przykład booking! Jest tam to pokazane.

@Out bym nie używał, nie do tego.

Z pozdrowieniem,
Piotr

konto usunięte

Temat: Problem z pustą listą... EJB, SEAM, Hibernate

zmieniłem bean'a na:

package org.domain.helloboss.session;

import java.util.List;

import javax.ejb.Remove;
import javax.ejb.Stateful;

import org.domain.helloboss.session.HBManager;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.jboss.seam.annotations.*;
import org.jboss.seam.annotations.datamodel.DataModel;

import entity.Klient;
import static org.jboss.seam.ScopeType.SESSION;

@Stateful
@Name("manager")
@Scope(SESSION)
public class HBManagerBean implements HBManager {

@In ( create=true)
private Session HelloBossData;
@DataModel
private List klienci;

public List getKlienci() {
return klienci;
}

public void setKlienci(List klienci) {
this.klienci = klienci;
}
@Factory("klienci")
public void find() {
System.out.println("FindKlienci called");
try
{
klienci = HelloBossData.createQuery("from Klient").list();
}
catch(HibernateException ex)
{
System.out.println("nie udalo sie pobrać listy klientów");
ex.printStackTrace(System.out);
}
}
@Destroy @Remove
public void destroy() {}

}


a taki błąd wywala: Could not instantiate Seam component: manager i dalej Stack Trace:

org.jboss.seam.InstantiationException: Could not instantiate Seam component: manager
at org.jboss.seam.Component.newInstance(Component.java:1986)
at org.jboss.seam.Component.getInstance(Component.java:1876)
at org.jboss.seam.Component.getInstance(Component.java:1843)
at org.jboss.seam.Component.getInstanceFromFactory(Component.java:1922)
at org.jboss.seam.Component.getInstance(Component.java:1866)
at org.jboss.seam.Component.getInstance(Component.java:1843)
at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:55)
at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:50)
at org.jboss.seam.el.SeamELResolver.resolveBase(SeamELResolver.java:166)
at org.jboss.seam.el.SeamELResolver.getValue(SeamELResolver.java:53)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
at org.jboss.el.parser.AstIdentifier.getValue(AstIdentifier.java:44)
at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
at javax.faces.component.UIData.getValue(UIData.java:608)
at org.ajax4jsf.component.UIDataAdaptor.getValue(UIDataAdaptor.java:1459)
at org.ajax4jsf.component.SequenceDataAdaptor.getDataModel(SequenceDataAdaptor.java:70)
at org.ajax4jsf.component.SequenceDataAdaptor.createDataModel(SequenceDataAdaptor.java:64)
at org.ajax4jsf.component.UIDataAdaptor.getExtendedDataModel(UIDataAdaptor.java:592)
at org.ajax4jsf.component.UIDataAdaptor.walk(UIDataAdaptor.java:994)
at org.richfaces.renderkit.AbstractRowsRenderer.encodeRows(AbstractRowsRenderer.java:107)
at org.richfaces.renderkit.AbstractRowsRenderer.encodeRows(AbstractRowsRenderer.java:92)
at org.richfaces.renderkit.AbstractRowsRenderer.encodeChildren(AbstractRowsRenderer.java:139)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:832)
at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)
at org.ajax4jsf.renderkit.RendererBase.renderChildren(RendererBase.java:262)
at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:199)
at org.richfaces.renderkit.html.PanelRenderer.doEncodeChildren(PanelRenderer.java:194)
at org.ajax4jsf.renderkit.RendererBase.encodeChildren(RendererBase.java:121)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:832)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:936)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:942)
at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:109)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.naming.NameNotFoundException: HBManagerBean not bound
at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
at org.jnp.server.NamingServer.getBinding(NamingServer.java:537)
at org.jnp.server.NamingServer.getObject(NamingServer.java:543)
at org.jnp.server.NamingServer.lookup(NamingServer.java:267)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:667)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)
at javax.naming.InitialContext.lookup(Unknown Source)
at org.jboss.seam.Component.instantiateSessionBean(Component.java:1290)
at org.jboss.seam.Component.instantiate(Component.java:1276)
at org.jboss.seam.Component.newInstance(Component.java:1970)


Patrząć na przykłady factory nie musi zwracać obietku, może być void a nawet wszędzie w przykładach jest void...

czy musi być zrobiony interface? wszedziw przykładach jest:
Interface Manager i class ManagerAction a nigdzie nie ma samego beana.

konto usunięte

Temat: Problem z pustą listą... EJB, SEAM, Hibernate

Pokaż jeszcze co masz w jsp.
Nie wiem jak wygląda nawigacja.
Opisz ją.

Dalej używasz DataModel i Factory dla klienci.

Poniżej masz fragment beana z przykładu booking, bo podejrzewam, że do niego nie zaglądnąłeś.


//$Id: HotelSearchingAction.java 5579 2007-06-27 00:06:49Z gavin $
package org.jboss.seam.example.booking;

import java.util.List;

import javax.ejb.Remove;
import javax.ejb.Stateful;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Factory;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.datamodel.DataModel;
import org.jboss.seam.annotations.security.Restrict;

@Stateful
@Name("hotelSearch")
@Scope(ScopeType.SESSION)
@Restrict("#{identity.loggedIn}")
public class HotelSearchingAction implements HotelSearching
{

@PersistenceContext
private EntityManager em;

...

@DataModel
private List hotels;

...
private void queryHotels()
{
hotels = em.createQuery("select h from Hotel h where lower(h.name) like #{pattern} or lower(h.city) like #{pattern} or lower(h.zip) like #{pattern} or lower(h.address) like #{pattern}")
.setMaxResults(pageSize)
.setFirstResult( page * pageSize )
.getResultList();
}

...

@Factory(value="pattern", scope=ScopeType.EVENT)
public String getSearchPattern()
{
return searchString==null ?
"%" : '%' + searchString.toLowerCase().replace('*', '%') + '%';
}


@Remove
public void destroy() {}
}

Z pozdrowieniem,
Piotr

konto usunięte

Temat: Problem z pustą listą... EJB, SEAM, Hibernate

zaglądałem ale nie wykumałem gdzie mam błąd..
robię tak jak jest w książce o Seam..

mój home.xhtml







wklejam home.xhtml i robi się pusta przestrzeń...Marek Urbanowicz edytował(a) ten post dnia 20.01.09 o godzinie 18:38

konto usunięte

Temat: Problem z pustą listą... EJB, SEAM, Hibernate

to zostawić factory a usunąć datamodel?
to jak inicjować listę klientów?

konto usunięte

Temat: Problem z pustą listą... EJB, SEAM, Hibernate

Marek Urbanowicz:
to zostawić factory a usunąć datamodel?
to jak inicjować listę klientów?

Zależy od nawigacji.
Jeśli ta lista klientów ma się zawsze wyświetlać na tej stronie, w tej samej formie, to zostaw @Factory, tyle, że metoda musi zwracać kolekcję, np List, nie może być void. Wywal Wtedy DataModel.

Jeśli będziesz chciał parametryzować to wyszukiwanie z poziomu WWW, to będziesz robił nawigację z formularzem.
SPRAWDZ JAK TGO JEST ZROBIONE W PRZYKLADZIE SEAM BOOKING(JEST W PACZCE SEAM'A).

Z pozdr.,
Piotr

konto usunięte

Temat: Problem z pustą listą... EJB, SEAM, Hibernate

patrzę patrzę i nic...

zmieniłem bean'a.

package org.domain.helloboss.session;

import java.util.List;

import javax.ejb.Remove;
import javax.ejb.Stateful;

import org.domain.helloboss.session.HBManager;
import org.hibernate.Session;
import org.jboss.seam.annotations.*;
import entity.Klient;
import static org.jboss.seam.ScopeType.SESSION;

@Stateful
@Name("manager")
@Scope(SESSION)
public class HBManagerBean implements HBManager {

@In ( create=true)
private Session HelloBossData;
private List klienci;

public List getKlienci() {
return klienci;
}

public void setKlienci(List klienci) {
this.klienci = klienci;
}
@Factory("klienci")
public List find() {
return klienci = HelloBossData.createQuery("from Klient").list();
}
@Destroy @Remove
public void destroy() {}

}


i błąd nadal ten sam...Marek Urbanowicz edytował(a) ten post dnia 20.01.09 o godzinie 19:28

Temat: Problem z pustą listą... EJB, SEAM, Hibernate

Witam
Wydaje mi się ze masz problem z hibernate session factory

components.xml:
sessionFactoryJndiName - java:/HelloBossDB

hibernate.cfg.xml:
session-factory name - HelloBossDBPaweł Bonikowski edytował(a) ten post dnia 21.01.09 o godzinie 03:49

konto usunięte

Temat: Problem z pustą listą... EJB, SEAM, Hibernate

no nei wiem, w przykładach jest w przedrostkiem java:/

Temat: Problem z pustą listą... EJB, SEAM, Hibernate

w hibernate.cfg.xml powinno tez byc:
session-factory name - java/HelloBossDB

a tak jest w Twoim projekcie http://mariaczi.com/gl/helloboss.rar
session-factory name - HelloBossDBPaweł Bonikowski edytował(a) ten post dnia 21.01.09 o godzinie 11:19

konto usunięte

Temat: Problem z pustą listą... EJB, SEAM, Hibernate

to już poprawiłem.
wrzucam nową wersję pliku.
TUTAJ do ściągnięcia

Następna dyskusja:

Spring + hibernate - proble...




Wyślij zaproszenie do