-
1. Re: Seam, problem with EntityManager
hispeedsurfer Jul 2, 2007 3:38 AM (in response to grdzeli_kaci)if you have the following in components.xml
<core:managed-persistence-context name="entityManager" auto-create="true" persistence-unit-jndi-name="java:/TestEntityManagerFactory"/>
you can use@In(create=true) private EntityManager entityManager;
But one question. Why you have managed-bean stuff in faces-config.xml?
This should be handelt from your annotations in your bean, I think! -
2. Re: Seam, problem with EntityManager
g00se24 Jul 2, 2007 4:32 AM (in response to grdzeli_kaci)You don't need
@In(create=true) EntityManager entityManager;
@In should be sufficent
Greets -
3. Re: Seam, problem with EntityManager
grdzeli_kaci Jul 2, 2007 4:38 AM (in response to grdzeli_kaci)"g00se24" wrote:
You don't need@In(create=true) EntityManager entityManager;
@In should be sufficent
Greets
HI ALL,
Thank you very much for your posts, i tried everything but myu problem still appears,
problem is not on first time, i see tabpane and tree component generated from database, all works fine but when i tried to expand tree than an exception occured,
i did not understand what happend :(, why got entitymanager null ?
________________
Regards,
Paata
-
4. Re: Seam, problem with EntityManager
grdzeli_kaci Jul 2, 2007 4:45 AM (in response to grdzeli_kaci)if i remove generate tabpane from database and set simple string, everuthing works fine, tree also work.
-
5. Re: Seam, problem with EntityManager
grdzeli_kaci Jul 2, 2007 7:06 AM (in response to grdzeli_kaci)can anybody help me ?
-
6. Re: Seam, problem with EntityManager
lowecg2004 Jul 4, 2007 9:28 AM (in response to grdzeli_kaci)Have you got an entry in persistence.xml that corresponds to your entity manager factory?
components.xml <core:managed-persistence-context name="entityManager" auto-create="true" persistence-unit-jndi-name="java:/dvdEntityManagerFactory"/> persistence.xml <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> <persistence-unit name="dvdDatabase"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>java:/dvdDatasource</jta-data-source> <properties> <property name="hibernate.hbm2ddl.auto" value="create-drop"/> <property name="hibernate.cache.use_query_cache" value="true"/> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/> <!-- use a file system based index --> <property name="hibernate.search.default.directory_provider" value="org.hibernate.search.store.FSDirectoryProvider"/> <!-- directory where the indexes will be stored --> <property name="hibernate.search.default.indexBase" value="./dvdindexes"/> <!-- Not needed with HA 3.3 --> <property name="hibernate.ejb.event.post-insert" value="org.hibernate.search.event.FullTextIndexEventListener"/> <property name="hibernate.ejb.event.post-update" value="org.hibernate.search.event.FullTextIndexEventListener"/> <property name="hibernate.ejb.event.post-delete" value="org.hibernate.search.event.FullTextIndexEventListener"/> <property name="jboss.entity.manager.factory.jndi.name" value="java:/dvdEntityManagerFactory" /> </properties> </persistence-unit> </persistence>
One other potential trap is that I have just upgraded from Seam 1.2.1 to 2.0b1 and "managed-persistence-context" has been moved from namespace core to persistence. If this is the case, then don't forget to add the persistence namespace to your XML namespace config:
xmlns:persistence="http://jboss.com/products/seam/persistence"
<persistence:managed-persistence-context name="entityManager"
auto-create="true"
persistence-unit-jndi-name="java:/dvdEntityManagerFactory" />
See DVD store example for complete code. -
7. Re: Seam, problem with EntityManager
jkoops Jul 4, 2007 9:47 AM (in response to grdzeli_kaci)One other potential trap is that I have just upgraded from Seam 1.2.1 to 2.0b1 and "managed-persistence-context" has been moved from namespace core to persistence. If this is the case, then don't forget to add the persistence namespace to your XML namespace config:
xmlns:persistence="http://jboss.com/products/seam/persistence"
<persistence:managed-persistence-context name="entityManager"
auto-create="true"
persistence-unit-jndi-name="java:/dvdEntityManagerFactory" />
Please add this to the seam2migration.txt, I spent one day on this. -
8. Re: Seam, problem with EntityManager
grdzeli_kaci Jul 5, 2007 2:23 AM (in response to grdzeli_kaci)hi lowecg2004,
first of all thank you for your post, i tried all versions of seam and jboss application server,
is this so difficult that use seam and richfaces together ???
i already tried this for a week but could not resolve :(
environment :
1. JBoss AS 4.2.0GA
2. Seam 2.0.0.BETA1
3. Richfaces 3.0.1
4.ajax4jsf 1.1.1
here is my example simple dynamic tree generation into seam component :
1.MenuBean.java (Seam Component)@Name("menu") @Scope(ScopeType.SESSION) public class MenuBean{ @In private EntityManager entityManager; private HtmlPanelBar bar = new HtmlPanelBar(); public MenuBean() { } public HtmlPanelBar getBar() { if (bar!=null && bar.getChildren()!=null) { bar.getChildren().clear(); } ArrayList<Menu> arraylist = (ArrayList<Menu>)entityManager.createNamedQuery("Menu.findAll").getResultList(); for (Menu elem : arraylist) { HtmlPanelBarItem item= new HtmlPanelBarItem(); item.setLabel("Blaaaa"); Library library = new Library(); HtmlTree tree = new HtmlTree(); tree.setStyle("width:150px"); tree.setValue(library.getData()); tree.setVar("item"); tree.setNodeFace(library.getType()); Iterator<Artist> itArtists = library.getArtists().values().iterator(); while (itArtists.hasNext()) { Artist artist = (Artist)itArtists.next(); HtmlTreeNode artistNode = new HtmlTreeNode(); artistNode.setType("artist"); HtmlOutputText artistText = new HtmlOutputText(); artistText.setValue(artist.getName()); Iterator<Album> itAlbums = artist.getAlbums(); while (itAlbums.hasNext()) { Album album = (Album) itAlbums.next(); HtmlTreeNode albumNode = new HtmlTreeNode(); albumNode.setType("album"); HtmlOutputText albumText = new HtmlOutputText(); albumText.setValue(album.getTitle()); Iterator<Song> itSongs = album.getSongs(); while (itSongs.hasNext()) { Song song = (Song) itSongs.next(); HtmlTreeNode songNode = new HtmlTreeNode(); songNode.setType("song"); HtmlOutputText songText = new HtmlOutputText(); songText.setValue(song.getTitle()); tree.getChildren().add(songNode); } tree.getChildren().add(albumNode); tree.getChildren().add(artistNode); item.getChildren().add(tree); bar.getChildren().add(item); } } } return bar; } public void setBar(HtmlPanelBar bar) { this.bar = bar; } }
1.Home.xhtml (Presentation Layer)<ui:define name="body"> <h:messages globalOnly="true" styleClass="message"/> <h:form id="bodyForm"> <rich:panel> <f:facet name="header">Welcome!</f:facet> <p>This empty shell application includes:</p> <ul> <li>Ant build script</li> <li>Deployment to JBoss AS</li> <li>Integration testing using TestNG and JBoss Embeddable EJB3</li> <li>EJB 3.0 Seam components</li> <li>Templated Facelets views</li> <li>HSQL (or MySQL) Datasource</li> <li>Default CSS stylesheet</li> <li>Internationalization support</li> </ul> <rich:panelBar binding="#{menu.bar}" width="500" height="600"> </rich:panelBar> </rich:panel> </h:form> </ui:define>
i always get this error :Caused by: org.jboss.seam.RequiredException: In attribute requires non-null value: menu.entityManager at org.jboss.seam.Component.getValueToInject(Component.java:2042) at org.jboss.seam.Component.injectAttributes(Component.java:1481) at org.jboss.seam.Component.inject(Component.java:1302)
i tried to find something into seam code but i could not find anything for this issue,
you told me about configurations lowecg200, here is my configurations :
1.components.XML<?xml version="1.0" encoding="UTF-8"?> <components xmlns="http://jboss.com/products/seam/components" xmlns:core="http://jboss.com/products/seam/core" xmlns:persistence="http://jboss.com/products/seam/persistence" xmlns:drools="http://jboss.com/products/seam/drools" xmlns:security="http://jboss.com/products/seam/security" xmlns:mail="http://jboss.com/products/seam/mail" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.0.xsd http://jboss.com/products/seam/persistence http://jboss.com/products/seam/persistence-2.0.xsd http://jboss.com/products/seam/drools http://jboss.com/products/seam/drools-2.0.xsd http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.0.xsd http://jboss.com/products/seam/mail http://jboss.com/products/seam/mail-2.0.xsd http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.0.xsd"> <core:init debug="@debug@" jndi-pattern="@jndiPattern@"/> <core:manager concurrent-request-timeout="500" conversation-timeout="120000" conversation-id-parameter="cid"/> <persistence:managed-persistence-context name="entityManager" auto-create="true" persistence-unit-jndi-name="java:/NewBillingEntityManagerFactory"/> <drools:rule-base name="securityRules"> <drools:rule-files> <value>/security.drl</value> </drools:rule-files> </drools:rule-base> <security:identity authenticate-method="#{authenticator.authenticate}" security-rules="#{securityRules}"/> <event type="org.jboss.seam.notLoggedIn"> <action expression="#{redirect.captureCurrentView}"/> </event> <event type="org.jboss.seam.postAuthenticate"> <action expression="#{redirect.returnToCapturedView}"/> </event> <mail:mail-session host="localhost" port="2525" username="test" password="test" /> </components>
here is managed-persistence-context defined
2.persistence.xml<?xml version="1.0" encoding="UTF-8"?> <!-- Persistence deployment descriptor for dev profile --> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> <persistence-unit name="NewBilling"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>java:/NewBillingDatasource</jta-data-source> <properties> <property name="hibernate.hbm2ddl.auto" value="validate"/> <property name="hibernate.cache.use_query_cache" value="true"/> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/> <!-- use a file system based index --> <property name="hibernate.search.default.directory_provider" value="org.hibernate.search.store.FSDirectoryProvider"/> <!-- directory where the indexes will be stored --> <property name="hibernate.search.default.indexBase" value="./dvdindexes"/> <!-- Not needed with HA 3.3 --> <property name="hibernate.ejb.event.post-insert" value="org.hibernate.search.event.FullTextIndexEventListener"/> <property name="hibernate.ejb.event.post-update" value="org.hibernate.search.event.FullTextIndexEventListener"/> <property name="hibernate.ejb.event.post-delete" value="org.hibernate.search.event.FullTextIndexEventListener"/> <property name="jboss.entity.manager.factory.jndi.name" value="java:/NewBillingEntityManagerFactory"/> <property name="hibernate.default_schema" value="JITS"/> </properties> </persistence-unit> </persistence>
also here is jndi.name defined correctly.
i also saw dvd example and i could not find difference into configurations.
have you ever tried to use richfaces and seam together ??
and i have one another question also, if i have one ejb interface and seam components which is also bean for component (for example richfaces treenode bean) how i can call ejb component ?? @EJB does not work, i like separated logic : business layer - presentation layer, how i can call ejb component ?
Any idea will be appreciated.
________________________
Regards,
Paata. -
9. Re: Seam, problem with EntityManager
lowecg2004 Jul 5, 2007 3:22 AM (in response to grdzeli_kaci)Hello Paata,
Your code and persistence.xml/components.xml config look okay to me. Do you have an entry in your startup logs that looks like the following?16:53:36,554 INFO [Component] Component: entityManager, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.persistence.ManagedPersistenceContext
If your entityManager was successfully created then you'll have an entry like the one above. Otherwise, you'll not. This will at least tell us if there is a config issue or not.
Have you still got the managed-bean config from your original post hanging around?
I'm using RichFaces without any problems.
As for your EJB3 question - I don't know the answer to this, hopefully someone else can help you here. Maybe you could try making your Seam POJO into a SFSB? As a SFSB you could also try @PersistenceContext for getting at your entityManager?
Could you post your web.xml and faces-config.xml?
Regards,
Chris. -
10. Re: Seam, problem with EntityManager
grdzeli_kaci Jul 5, 2007 8:00 AM (in response to grdzeli_kaci)HI lowecg2004, i saw log and i found this :
04:03:56,515 INFO [Component] Component: org.jboss.seam.core.init, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Init 04:03:56,559 INFO [Initialization] Installing components... 04:03:56,593 INFO [Component] Component: authenticator, scope: EVENT, type: JAVA_BEAN, class: action.com.liliko.billing.businesslayer.beans.session.Authenticator 04:03:56,635 INFO [Component] Component: entityManager, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.persistence.ManagedPersistenceContext 04:03:56,653 INFO [Component] Component: menu, scope: SESSION, type: JAVA_BEAN, class: model.MenuBean
entity manager exist,
here is my web.xml :<?xml version="1.0" ?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <!-- Ajax4jsf --> <context-param> <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name> <param-value>com.sun.facelets.FaceletViewHandler</param-value> </context-param> <context-param> <param-name>org.ajax4jsf.SKIN</param-name> <param-value>blueSky</param-value> </context-param> <!-- Seam --> <listener> <listener-class>org.jboss.seam.servlet.SeamListener</listener-class> </listener> <filter> <filter-name>Seam Filter</filter-name> <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class> </filter> <filter-mapping> <filter-name>Seam Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>Seam Resource Servlet</servlet-name> <servlet-class>org.jboss.seam.servlet.ResourceServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Seam Resource Servlet</servlet-name> <url-pattern>/seam/resource/*</url-pattern> </servlet-mapping> <!-- Facelets development mode (disable in production) --> <context-param> <param-name>facelets.DEVELOPMENT</param-name> <param-value>true</param-value> </context-param> <!-- JSF --> <context-param> <param-name>javax.faces.DEFAULT_SUFFIX</param-name> <param-value>.xhtml</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>*.seam</url-pattern> </servlet-mapping> <security-constraint> <display-name>Restrict raw XHTML Documents</display-name> <web-resource-collection> <web-resource-name>XHTML</web-resource-name> <url-pattern>*.xhtml</url-pattern> </web-resource-collection> <auth-constraint> <role-name>NONE</role-name> </auth-constraint> </security-constraint> </web-app>
and my faces-config.xml<?xml version='1.0' encoding='UTF-8'?> <faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"> <application> <locale-config> <default-locale>en</default-locale> <supported-locale>en</supported-locale> <supported-locale>ka</supported-locale> <supported-locale>de</supported-locale> <supported-locale>fr</supported-locale> </locale-config> <message-bundle>messages</message-bundle> </application> <application> <view-handler>com.sun.facelets.FaceletViewHandler</view-handler> </application> </faces-config>
is this configuration files incorrect ?
i use seam gen fro project creation, i don't understand why this not working :(
_____________
Regards,
Paata -
11. Re: Seam, problem with EntityManager
grdzeli_kaci Jul 5, 2007 8:43 AM (in response to grdzeli_kaci)this files identical with dvd example files,
why this is not working :(, -
12. Re: Seam, problem with EntityManager
grdzeli_kaci Jul 5, 2007 11:58 AM (in response to grdzeli_kaci)i found example which load data from xml file, i use seam 2.0 beta version and richfaces with ajax4jsf, here is another problem, i tried to load xml file into seam component like this :
InputSource ins1 = new InputSource(getClass().getResourceAsStream("data.xml")); Digester digester = new Digester(); Rule rule = new Rule(); final List rulesList = new ArrayList(1); rulesList.add(rule); RulesBase rulesBase = new RulesBase() { protected List lookup(String namespace, String name) { return rulesList; } }; digester.setRules(rulesBase); digester.setNamespaceAware(true); digester.parse(ins1);
but i got an error :java.net.MalformedURLException
i have this fine into my ejb jar file, but i can't read it :(
is there any incorrect ?
__________________
Regards,
Paata. -
13. Re: Seam, problem with EntityManager
jrodri Sep 24, 2007 6:01 PM (in response to grdzeli_kaci)
grdzeli_kaci:
Could you fix the problem?
Could you post the code fixed
Regards
Jaime -
14. Re: Seam, problem with EntityManager
mickknutson Oct 24, 2007 4:41 PM (in response to grdzeli_kaci)"jrodri" wrote:
grdzeli_kaci:
Could you fix the problem?
Could you post the code fixed
Regards
Jaime
Any update you can post here please?