Estou com um erro quando tento conectar a minha aplicação com mysql segue as configurações e as classes da aplicação assim como o erro
configuração no arquivo standalno.xml do jboss 7.1
<datasource jndi-name="java:/jdbc/K19" pool-name="K19" jta="true" enabled="true" use-java-context="true" use-ccm="true">
<connection-url>jdbc:mysql://localhost:3306/k22_jboss</connection-url>
<driver>com.mysql</driver>
<security>
<user-name>root</user-name>
<password>root</password>
</security>
</datasource>
<driver name="com.mysql" module="com.mysql">
<xa-datasource-class>
com.mysql.jdbc.jdbc2.optional.MysqlXADataSource
</xa-datasource-class>
</driver>
a persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
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_2_0.xsd">
<persistence-unit name="K19" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence </provider>
<jta-data-source>jdbc/K19</jta-data-source>
<class>persistencia.dao.Livro</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
</properties>
</persistence-unit>
</persistence>
a classe Livro
package persistencia.dao;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Livro implements Serializable {
private static final long serialVersionUID = 1L;
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
private String nome;
private Double preco;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Double getPreco() {
return preco;
}
public void setPreco(Double preco) {
this.preco = preco;
}
}
erro encontrado
16:23:24,264 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC00001: Failed to start service jboss.deployment.unit."PersistenciaWeb.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."PersistenciaWeb.war".INSTALL: Failed to process phase INSTALL of deployment "PersistenciaWeb.war"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.7.0_25]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.7.0_25]
at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_25]
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS011047: Component class persistencia.modelo.LivroRepositorio for component LivroRepositorio has errors:
JBAS011440: Can't find a persistence unit named null in deployment "PersistenciaWeb.war"
at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor$1.handle(ModuleJndiBindingProcessor.java:169)
at org.jboss.as.ee.component.ClassDescriptionTraversal.run(ClassDescriptionTraversal.java:54)
at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.processClassConfigurations(ModuleJndiBindingProcessor.java:162)
at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.deploy(ModuleJndiBindingProcessor.java:155)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
... 5 more
16:23:24,398 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS015870: Deploy of deployment "PersistenciaWeb.war" was rolled back with failure message {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"PersistenciaWeb.war\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"PersistenciaWeb.war\".INSTALL: Failed to process phase INSTALL of deployment \"PersistenciaWeb.war\""}}
16:23:24,435 INFO [org.jboss.as.server.deployment] (MSC service thread 1-3) JBAS015877: Stopped deployment PersistenciaWeb.war in 47ms
16:23:24,441 INFO [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774: Service status report
JBAS014777: Services which failed to start: service jboss.deployment.unit."PersistenciaWeb.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."PersistenciaWeb.war".INSTALL: Failed to process phase INSTALL of deployment "PersistenciaWeb.war"
16:23:24,448 ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) {"JBAS014653: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"PersistenciaWeb.war\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"PersistenciaWeb.war\".INSTALL: Failed to process phase INSTALL of deployment \"PersistenciaWeb.war\""}}}}
Não tenho nem ideia de como resolver isso se alguém tiver uma solução desde já agradeço
Veja esta linha
Can't find a persistence unit named null in deployment "PersistenciaWeb.war"
Entende o que ela diz?
Poste a entidade do erro: persistencia.modelo.LivroRepositorio
Segue a entidade do erro
package persistencia.modelo;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;
import persistencia.dao.Livro;
@Stateless
public class LivroRepositorio {
@PersistenceContext
private EntityManager entityManager;
public void adicionar(Livro livro){
this.entityManager.persist(livro);
}
public List<Livro> getLivros(){
TypedQuery<Livro> query = this.entityManager.createQuery("select x from Livro x",Livro.class);
return query.getResultList();
}
public EntityManager getEntityManager() {
return entityManager;
}
public void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}
}
Coloque o unitName no @PersistenceContext
Fiz o que você me falou botei o unitName=“K19” agora o erro é o seguinte
19:17:09,609 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) MSC00001: Failed to start service jboss.deployment.unit."PersistenciaWeb.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."PersistenciaWeb.war".INSTALL: Failed to process phase INSTALL of deployment "PersistenciaWeb.war"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.7.0_25]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.7.0_25]
at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_25]
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS011047: Component class persistencia.modelo.LivroRepositorio for component LivroRepositorio has errors:
JBAS011440: Can't find a persistence unit named K19 in deployment "PersistenciaWeb.war"
at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor$1.handle(ModuleJndiBindingProcessor.java:169)
at org.jboss.as.ee.component.ClassDescriptionTraversal.run(ClassDescriptionTraversal.java:54)
at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.processClassConfigurations(ModuleJndiBindingProcessor.java:162)
at org.jboss.as.ee.component.deployers.ModuleJndiBindingProcessor.deploy(ModuleJndiBindingProcessor.java:155)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
... 5 more
19:17:09,650 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS015870: Deploy of deployment "PersistenciaWeb.war" was rolled back with failure message {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"PersistenciaWeb.war\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"PersistenciaWeb.war\".INSTALL: Failed to process phase INSTALL of deployment \"PersistenciaWeb.war\""}}
19:17:09,657 INFO [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774: Service status report
JBAS014777: Services which failed to start: service jboss.deployment.unit."PersistenciaWeb.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."PersistenciaWeb.war".INSTALL: Failed to process phase INSTALL of deployment "PersistenciaWeb.war"
19:17:09,677 INFO [org.jboss.as.server.deployment] (MSC service thread 1-3) JBAS015877: Stopped deployment PersistenciaWeb.war in 12ms
19:17:09,692 ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) {"JBAS014653: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"PersistenciaWeb.war\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"PersistenciaWeb.war\".INSTALL: Failed to process phase INSTALL of deployment \"PersistenciaWeb.war\""}}}}
Estou com o persistence.xml dentro do META-INF
segue a classe alterada
package persistencia.modelo;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;
import persistencia.dao.Livro;
@Stateless
public class LivroRepositorio {
@PersistenceContext(unitName="K19")
private EntityManager entityManager;
public void adicionar(Livro livro){
this.entityManager.persist(livro);
}
public List<Livro> getLivros(){
TypedQuery<Livro> query = this.entityManager.createQuery("select x from Livro x",Livro.class);
return query.getResultList();
}
public EntityManager getEntityManager() {
return entityManager;
}
public void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}
}
Sinceramente não sei dizer o que está errado, mas creio que ele não está encontrando seu persistence.xml
Como está a estrutura de diretórios do projeto? Tem como printar e upar aqui? Outra coisa, o diretório META-INF em questão deve ser criado na raiz dos fontes.
Segue a estrutura do meu projeto. Realmente ele não encontra o persistence.xml é estranho porque eu acho que está tudo nos locais certos. Eu criei um Dinamic Web Project no eclipse com jsf 2.0
PersistenciaWeb
-src
-persistencia.dao
-Livro.java
-persistencia.modelo
-LivroRepositorio.java
-persistencia.web
-LivroMB.java
-WebContent
-livro.xhtml
-META-INF
-MANIFEST.MF
-persistence.xml
-WEB-INF
-faces-config.xml
-lib
-web.xml
Ai está a estrutura básica realmente já procurei em outros forums e tudo não acho a resposta ta meio complicado esse problema. Obrigado a todos pelas respostas já tem me dado uma clareada no problema pelo menos.
Finalmente consegui depois de muito esforço e pesquisa vlww pela dica drsmachado realmente o meu meta-inf tava em outro diretório dentro de webcontet tinha que estar dentro do src agora ficou assim a organização dos diretórios
PersistenciaWeb
-src
-persistencia.dao
-Livro.java
-persistencia.modelo
-LivroRepositorio.java
-persistencia.web
-LivroMB.java
-META-INF
-persistence.xml
-WebContent
-livro.xhtml
-META-INF
-MANIFEST.MF
-WEB-INF
-faces-config.xml
-lib
-web.xml
Fica ai a dica para quem teve o mesmo problema que o meu flwww e vlww a todos pela ajuda
3 curtidas