Primeiro projeto com Seam + Tomcat - Ajuda

145 views
Skip to first unread message

marqu...@gmail.com

unread,
Jun 1, 2010, 3:15:12 PM6/1/10
to javasf: JavaServer Faces Group
Colegas,

Criei um projeto com o jboss tools e quando tento executá-lo recebo os
erros abaixo.
Parece-me que ele não encontra o datasource. É isso mesmo? Onde eu
declaro o datasource e o persistence unit?

Muito obrigado,

Marques

SEVERE: Exception sending context initialized event to listener
instance of class org.jboss.seam.servlet.SeamListener
org.jboss.seam.InstantiationException: Could not instantiate Seam
component: entityManagerFactory
at org.jboss.seam.Component.newInstance(Component.java:2144)
at org.jboss.seam.contexts.Contexts.startup(Contexts.java:304)
at org.jboss.seam.contexts.Contexts.startup(Contexts.java:278)
at
org.jboss.seam.contexts.ServletLifecycle.endInitialization(ServletLifecycle.java:
116)
at org.jboss.seam.init.Initialization.init(Initialization.java:740)
at
org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:
36)
at
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:
3843)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:
4342)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:
1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:
1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:
443)
at
org.apache.catalina.core.StandardService.start(StandardService.java:
516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:
710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: javax.persistence.PersistenceException: [PersistenceUnit:
zteste] Unable to build EntityManagerFactory
at
org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:
677)
at
org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:
126)
at
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:
83)
at
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:
60)
at
org.jboss.seam.persistence.EntityManagerFactory.createEntityManagerFactory(EntityManagerFactory.java:
81)
at
org.jboss.seam.persistence.EntityManagerFactory.startup(EntityManagerFactory.java:
50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:
144)
at org.jboss.seam.Component.callComponentMethod(Component.java:2257)
at org.jboss.seam.Component.callCreateMethod(Component.java:2172)
at org.jboss.seam.Component.newInstance(Component.java:2132)
... 20 more
Caused by: org.hibernate.HibernateException: Could not find datasource
at
org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:
79)
at
org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:
137)
at
org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:
29)
at
org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:
89)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:
2101)
at
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:
1325)
at
org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:
867)
at
org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:
669)
... 34 more
Caused by: javax.naming.NameNotFoundException: Name ztesteDatasource
is not bound in this Context
at org.apache.naming.NamingContext.lookup(NamingContext.java:770)
at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
at org.apache.naming.SelectorContext.lookup(SelectorContext.java:137)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at
org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:
75)
... 41 more

David Faulstich

unread,
Jun 1, 2010, 3:41:46 PM6/1/10
to jav...@googlegroups.com
Você tem que configurar tanto o persistence.xml quanto o components.xml para funcionar e criar um seam managed context.
 
persistence.xml fica mais ou menos como:
<?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="mps-arquitetura">
      <provider>org.hibernate.ejb.HibernatePersistence</provider>
      <jta-data-source>java:/PostgresTesteDS</jta-data-source>
      <properties>
         <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
         <!-- property name="hibernate.hbm2ddl.auto" value="update"/ -->
         <property name="hibernate.show_sql" value="true"/>
         <property name="hibernate.format_sql" value="true"/>
         <property name="jboss.entity.manager.factory.jndi.name" value="java:/teste-arquiteturaEntityManagerFactory"/>
      </properties>
   </persistence-unit>
   
</persistence>
 
Components.xml:
 
Adicione a linha:
<persistence:managed-persistence-context name="entityManager" auto-create="true"
                      persistence-unit-jndi-name="java:/teste-arquiteturaEntityManagerFactory"/>
 
 


 

--
Você recebeu essa mensagem por que é membro do "JavaSF: JavaServer Faces Group" em http://groups.google.com/group/javasf
Para postar no grupo envie para jav...@googlegroups.com

Jose Marques Filho

unread,
Jun 1, 2010, 4:01:41 PM6/1/10
to jav...@googlegroups.com

David,

E onde eu especifico o banco de dados que vou acessar?

Obrigado mais uma vez,

Marques

David Faulstich

unread,
Jun 1, 2010, 4:30:03 PM6/1/10
to jav...@googlegroups.com
Se for JBOSS vc deve consigurar um datasource, por exemplo, um postgre-ds.xml que fica no diretório onde fica o ear (normalmente /default/)

<datasources>
    <local-tx-datasource>
        <jndi-name>PostgresTesteDS</jndi-name>
        <connection-url>jdbc:postgresql://localhost/teste</connection-url>
        <driver-class>org.postgresql.Driver</driver-class>
        <user-name>FBI_intend_dbrest</user-name>
        <password>ueps_cia</password>
              <min-pool-size>80</min-pool-size>
           <!-- The maximum connections in a pool/sub-pool -->
              <max-pool-size>90</max-pool-size>
        <!-- sql to call when connection is created
        <new-connection-sql>some arbitrary sql</new-connection-sql>
        -->
        <!-- sql to call on an existing pooled connection when it is obtained from pool
        <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
        -->
    </local-tx-datasource>
</datasources>

2010/6/1 Jose Marques Filho <marqu...@gmail.com>

Thiago Silva

unread,
Jun 1, 2010, 4:33:51 PM6/1/10
to jav...@googlegroups.com
Pode ser no próprio persistence.xml, dentro da tag properties:

            <property name="hibernate.connection.driver_class" value="<Driver>" />
            <property name="hibernate.connection.username" value="usuario" />
            <property name="hibernate.connection.password" value="senha" />
            <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/<NOME_DO_BANCO> />
Thiago Silva Bezerra

Jose Marques Filho

unread,
Jun 2, 2010, 8:35:08 AM6/2/10
to jav...@googlegroups.com
Colegas,

Segui todas as sugestões acima e no entanto qdo rodo o projeto ele não encontra o datasource.
Alguma dica?
Muito obrigado,

Marques

2010/6/1 Thiago Silva <thiag...@gmail.com>

Carlos Antonio Rodrigues

unread,
Jun 2, 2010, 9:00:22 AM6/2/10
to jav...@googlegroups.com
Da uma olhada no ex JPA contido no seam, vc precisa config. um context tb... neste exemplo tem todas as informações.
Eu segui ele e aqui ta funcionando q é uma blza...
[]'s
Carlos

Assis Júnior

unread,
Jun 2, 2010, 8:02:03 PM6/2/10
to jav...@googlegroups.com
Tenta fazer rodar pelo persistence com o o Tiago Silva falou acima. Depois você pode tentar configurar o datasource do tomcat via context.xml ou server.xml
Atenciosamente,
Assis júnior
SCJP 5.0 Certified

David Faulstich

unread,
Jun 4, 2010, 11:23:28 AM6/4/10
to jav...@googlegroups.com
Coloquei um exemplo de uma APP Seam + JbossWS mais voltado a minha realidade disponível para download.

É o meu workspace eclipse.

https://189.10.81.186:8443/infosolo.rar (workspace eclipse)

https://189.10.81.186:8443/teste.backup (banco de dados postgresql - modelo usado pela app, postgresql 8.4.x)

Precisa somente do jdk5 e jboss 4.2.3 e seam 2.1.2.






Em 2 de junho de 2010 10:00, Carlos Antonio Rodrigues <carlos.a...@gmail.com> escreveu:
Reply all
Reply to author
Forward
0 new messages