Boa tarde, o meu problema é o seguinte: criei um projeto pra utilizar o seam (Seam Web Project) no eclipse (juno) através do jboss tools. E esse projeto cria uma aplicação default pra testar a configuração.
Até aí tá tudo certo. Mas começo a ter problema quando mapeio as minhas classe no arquivo persistence.xml.
Dá o erro abaixo:
Session event listener threw exception
org.jboss.seam.InstantiationException: Could not instantiate Seam component: hibernateSessionFactory
at org.jboss.seam.Component.newInstance(Component.java:2170)
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.Lifecycle.beginSession(Lifecycle.java:233)
at org.jboss.seam.contexts.ServletLifecycle.beginSession(ServletLifecycle.java:182)
at org.jboss.seam.servlet.SeamListener.sessionCreated(SeamListener.java:46)
at org.apache.catalina.session.StandardSession.tellNew(StandardSession.java:397)
at org.apache.catalina.session.StandardSession.setId(StandardSession.java:369)
at org.apache.catalina.session.ManagerBase.createSession(ManagerBase.java:829)
at org.apache.catalina.session.StandardManager.createSession(StandardManager.java:291)
at org.apache.catalina.connector.Request.doGetSession(Request.java:2367)
at org.apache.catalina.connector.Request.getSession(Request.java:2094)
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:833)
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:844)
at org.jboss.seam.web.IdentityRequestWrapper.<init>(IdentityRequestWrapper.java:23)
at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90)
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:206)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53)
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:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Caused by: org.hibernate.MappingException: Unable to load class declared as <mapping class="br.mt.indea.syspesca.entity.ULE"/> in the configuration:
at org.hibernate.cfg.AnnotationConfiguration.parseMappingElement(AnnotationConfiguration.java:650)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1589)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1568)
at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:1047)
at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:64)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1542)
at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:1035)
at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:64)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1462)
at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:1017)
at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:64)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1448)
at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:1011)
at org.jboss.seam.persistence.HibernateSessionFactory.createSessionFactory(HibernateSessionFactory.java:120)
at org.jboss.seam.persistence.HibernateSessionFactory.startup(HibernateSessionFactory.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
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:2275)
at org.jboss.seam.Component.callCreateMethod(Component.java:2198)
at org.jboss.seam.Component.newInstance(Component.java:2158)
... 54 more
Caused by: java.lang.ClassNotFoundException: br.mt.indea.syspesca.entity.ULE from BaseClassLoader@1a30756a{VFSClassLoaderPolicy@636c8f94{... (omiti o resto porque não cabe no post)
Alguém sabe o motivo?
Desde já, obrigado.
Tá no seu stack:
"Incapaz de carregar classe declarada como "
Sim, eu vi isso. Mas não consigo entender o porque. A classe existe no deploy. O arquivo .class dela está no war.
Quando eu uso a classe sem mapear ela, funciona normal. Aí quando eu mapeio ela, dá problema
Verifique se o caminho da classe está especificado corretamente.
Tente fazer um clean no JBoss.
O caminho está certo sim, já verifiquei um monte de vezes.
Já dei clean no jboss, deletei ele, reiniciei eclipse, pc. Baixei o jboss de novo. Baixei outra versão. E o problema continua…
Posta mais do seu stacktrace, principalmente se tiver algo de Caused by e deployment error
Posta seu persistence.xml
Igor, segue abaixo outro erro que apareceu agora, diferente do primeiro, não sei dizer por qual motivo mudou:
Caused by: java.lang.ClassNotFoundException: br.mt.indea.syspesca.entity.ULE from BaseClassLoader@1fc8504d{VFSClassLoaderPolicy@180fff88{name=vfsfile:/C:/Users/leonardo.assis/Desktop/Ambiente/Servers/jboss-5.1.0.GA/server/default/conf/jboss-service.xml domain=ClassLoaderDomain@64cbbd03{name=DefaultDomain parentPolicy=BEFORE parent=org.jboss.bootstrap.NoAnnotationURLClassLoader@6f77e5d4} roots=[MemoryContextHandler@1112622607[path= context=vfsmemory://a1j462-nwtwtw-hjri7brv-1-hjri7elt-7 real=vfsmemory://a1j462-nwtwtw-hjri7brv-1-hjri7elt-7], DelegatingHandler@1708041420[path=mysql-connector-java-5.1.25-bin.jar context=file:/C:/Users/leonardo.assis/Desktop/Ambiente/Servers/jboss-5.1.0.GA/server/default/lib/ real=file:/C:/Users/leonardo.assis/Desktop/Ambiente/Servers/jboss-5.1.0.GA/server/default/lib/mysql-connector-java-5.1.25-bin.jar], .................... (omitido porque era grande demais pra caber aqui: era uma descrição das libs do projeto)
at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:448)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:135)
at org.hibernate.ejb.Ejb3Configuration.classForName(Ejb3Configuration.java:1009)
at org.hibernate.ejb.Ejb3Configuration.addNamedAnnotatedClasses(Ejb3Configuration.java:1081)
... 58 more
15:34:18,002 INFO [TomcatDeployment] deploy, ctxPath=/syspesca
15:34:18,062 INFO [config] Initializing Mojarra (1.2_12-b01-FCS) for context '/syspesca'
15:34:18,930 INFO [ServletContextListener] Welcome to Seam 2.2.2.Final
15:34:20,737 WARN [Component] Component class should be serializable: hibernateSessionFactory
15:34:20,868 WARN [PersistentPermissionResolver] no permission store available - please install a PermissionStore with the name 'org.jboss.seam.security.jpaPermissionStore' if persistent permissions are required.
15:34:20,957 WARN [HDScanner] Failed to process changes
org.jboss.deployers.client.spi.IncompleteDeploymentException: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):
DEPLOYMENTS IN ERROR:
Deployment "persistence.unit:unitName=#syspesca" is in error due to the following reason(s): java.lang.ClassNotFoundException: br.mt.indea.syspesca.entity.ULE from BaseClassLoader@1fc8504d{VFSClassLoaderPolicy@180fff88{name=vfsfile:/C:/Users/leonardo.assis/Desktop/Ambiente/Servers/jboss-5.1.0.GA/server/default/conf/jboss-service.xml domain=ClassLoaderDomain@64cbbd03{name=DefaultDomain parentPolicy=BEFORE parent=org.jboss.bootstrap.NoAnnotationURLClassLoader@6f77e5d4} roots=[MemoryContextHandler@1112622607[path= context=vfsmemory://a1j462-nwtwtw-hjri7brv-1-hjri7elt-7 real=vfsmemory://a1j462-nwtwtw-hjri7brv-1-hjri7elt-7], .................... (omitido porque era grande demais pra caber aqui: era uma descrição das libs do projeto)
at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:993)
at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:939)
at org.jboss.deployers.plugins.main.MainDeployerImpl.checkComplete(MainDeployerImpl.java:873)
at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.checkComplete(MainDeployerAdapter.java:128)
at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:369)
at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:255)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source)
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Segue abaixo o meu 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="syspesca" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/syspescaDatasource</jta-data-source>
<class>br.mt.indea.syspesca.entity.ULE</class>
<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:/syspescaEntityManagerFactory"/>
</properties>
</persistence-unit>
</persistence>
Mas você está usando SessionFactory ou EntityManager?
Sua configuração no XML é para EntityManager, mas sua exceção diz que não foi possivel instanciar a SessionFactory. Fiquei confuso.
E como você está executando a aplicação? Pela IDE ou está gerando um .war e adicionando no Jboss?
Eu estava tentando utilizar os dois na verdade. Tanto que criei o arquivo hibernate.cfg.xml
Nos meus testes aqui descobri o porque dos dois stacktrace diferentes que postei aqui.
O primeiro aconteceu porque tentei mapear a classe no hibernate.cfg.xml.
O segundo aconteceu porque tentei mapear a classe no persistence.xml.
[quote=gnomo333]Eu estava tentando utilizar os dois na verdade. Tanto que criei o arquivo hibernate.cfg.xml
Nos meus testes aqui descobri o porque dos dois stacktrace diferentes que postei aqui.
O primeiro aconteceu porque tentei mapear a classe no hibernate.cfg.xml.
O segundo aconteceu porque tentei mapear a classe no persistence.xml.[/quote]
Tem que usar um ou outro, os 2 juntos não rola, até porque o código fonte ou vai trabalhar com Objetos Session (hibernate) ou EntityManager (JPA).
Mas você resolveu problema?
hummm entendi. Achei que eu ia precisar das duas configurações, caso precisasse fazer queries utilizando apenas jpa lá na frente. Não resolvi o problema não.
Eu até tentei mudar tudo só pra utilizar a session do hibernate, mas o wizard do eclipse gerou tudo para o entity manager e criou uma configuração que até então eu não conhecia…
romarcio, eu ainda não resolvi o meu problema…
[quote=gnomo333]hummm entendi. Achei que eu ia precisar das duas configurações, caso precisasse fazer queries utilizando apenas jpa lá na frente. Não resolvi o problema não.
Eu até tentei mudar tudo só pra utilizar a session do hibernate, mas o wizard do eclipse gerou tudo para o entity manager e criou uma configuração que até então eu não conhecia…
romarcio, eu ainda não resolvi o meu problema…[/quote]
Vou te passar 2 tutoriais um com JPA e outro com HIbernate, da uma olhada neles e escolhe qual você prefere usar:
Utilizando Swing com JPA/Hibernate
Utilizando Swing com Hibernate (SessionFactory)
Opa, vlw velho, vou dar uma olhada.
Eu já trabalho com o hibernate a um tempo, mas comecei a pouco usando o seam. Já utilizei inclusive com o próprio seam. Mas sempre entrei no meio do projeto e nunca precisei iniciar um projeto. E agora que precisei, não estou dando conta.
[quote=gnomo333]Opa, vlw velho, vou dar uma olhada.
Eu já trabalho com o hibernate a um tempo, mas comecei a pouco usando o seam. Já utilizei inclusive com o próprio seam. Mas sempre entrei no meio do projeto e nunca precisei iniciar um projeto. E agora que precisei, não estou dando conta. [/quote]
Nunca usei o JBoss Seam também, não sei bem como funciona as coisas com ele. Talvez você precise buscar um tutorial mais focado nisso.