Could not find datasource

6 respostas
E

Pessoal,

Estou tentando executar a rotina abaixo :

public static void main(String[] args) {
		// TODO Auto-generated method stub
		
  	    EntityManagerFactory factory= Persistence.createEntityManagerFactory("teste");
   	    EntityManager manager= factory.createEntityManager(); 


	}

*************persistence. 

<?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="teste"  transaction-type="JTA">
	<jta-data-source>java:/minhaaplicacao_ds</jta-data-source>
	</persistence-unit>
</persistence>

O erro que esta dando nao esta achando o datasource. alguem pode me ajudar ??

SLF4J: See <a href="http://www.slf4j.org/codes.html#StaticLoggerBinder">http://www.slf4j.org/codes.html#StaticLoggerBinder</a> for further details.

Exception in thread “main” javax.persistence.PersistenceException: [PersistenceUnit: teste] Unable to build EntityManagerFactory

at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:911)

at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:57)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)

at br.com.evandro.main.main.main(main.java:15)

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:143)

at org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:51)

at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:91)

at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2833)

at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2829)

at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1840)

at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:902)

… 4 more

Caused by: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial

at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)

at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307)

at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:344)

at javax.naming.InitialContext.lookup(InitialContext.java:411)

at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:75)

… 11 more

ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2

JDWP exit error AGENT_ERROR_NO_JNI_ENV(183):  […/…/…/src/share/back/util.c:838]

obs. estou usando o JBOSS 7.1

6 Respostas

M

E ai cara, tudo certo?

Então cara, clicando no link do seu stack trace parece que a exceção StaticLoggerBinder ocorre porque, aparentemente não existe uma versão apropriada do SLF4J no seu class path.

Então o que você precisa fazer é baixar e adicionar ao seu class path um e apenas um dos jars abaixo:

slf4j-nop.jar;

slf4j-simple.jar;

slf4j-log4j12.jar;

slf4j-jdk14.jar;

logback-classic.jar.

O link de download sugerido na pagina é esse:
http://www.slf4j.org/download.html

Isso acontece comigo quando baixo o Hibernate e esqueço suas dependências.

Té mais amigo.

E

Tudo blz Mac e vc ?

Entao mas eu adiciono na pasta WEB-INF/lib ???

Obrigado pela dica irmão
entao mas eu adiciono

M

Isso mesmo,

Basta adicionar um dos jars mencionados na WEB-INF/lib.

Em seguida adicione o jar ao seu class path, que pode variar de IDE para IDE.

No Eclipse:

Clique com o botão direito sobre o seu projeto;

Agora localize a opção Build Path e em seguida clique em Configure Build Path;

Na nova janela que se abrirá, localize a aba Libraries e no lado direito clique no botão Add Jars;

Em seguida basta navegar pelo seu projeto até WEB-INF/lib e selecionar o jar.
No NETBeans:

Clique com o botão direito sobre seu projeto;

Em seguida seleciona Propriedades;

Na janela que se abrirá, clique em Bibliotecas no lado esquerdo;

Agora clique em Adicionar JAR/Pasta e navegue pelo seu projeto até WEB-INF/lib e selecionar o jar.

É isso ai.

Té mais.

M

No entanto, você disse que está utilizando JBoss e, se não me engano, ele já vem com o Hibernate como implementação padrão do JPA certo?

E por esse motivo, talvez não seja necessário adicionar os jars do Hibernate ou de suas dependências no class path do projeto, pois poderia causar uma incompatibilidade entre as versões do Hibernate.

Digo isso pois nunca trabalhei com JBoss, apenas com GlassFish que utiliza o EclipseLink como implementação padrão do JPA e, como no GlassFish não é necessário adicionar as dependências do EclipseLink, acredito que com o JBoss o processo seja o mesmo.

E por falar nisso, como está o seu class path?

Valeu e até mais.

E

cara, um feliz natal,

o meu classe path esta assim :

antlr-2.7.6.jar;

common-annotations.jar;

commons-beanutils.jar;

commons-collections-3.1.jar;

commons-digester.jar;

commons-logging.jar;

dom4j-1.6.1.jar;

ejb3-persistence.jar;

hibernate3.jar;

javassist-3.9.0.GA.jar;

jsf-api-2.0.4-b09.jar;

jsf-impl-2.0.4-b09.jar;

jstl-api-1.2.jar;

jstl-impl-1.2.jar;

jstl.jar;

mysql-connector-java-5.1.8-bin.jar;

postgresql-9.0-801.jdbc4.jar;

primefaces-3.3.1.jar;

slf4j-api-1.6.1.jar
E

tentei fazer dessa forma :

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">

  <persistence-unit name="wirelane" transaction-type="resource_local">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
         
    <properties>
      <property name="hibernate.connection.username" value="postgres"/>
      <property name="hibernate.connection.password" value="xavier"/>
      <property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/>
      <property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/postgres"/>
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
   			<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
    </properties>
  </persistence-unit>
</persistence>


	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
	    String path = System.getProperty("java.class.path");
	    
	    System.out.println(path);
  	    EntityManagerFactory factory= Persistence.createEntityManagerFactory("wirelane");
   	    EntityManager manager= factory.createEntityManager();
   	    
       	StringBuffer sbQuery1 = new StringBuffer();
       	sbQuery1.append(" FROM Produto");			
		Query sbQueryaux = manager.createQuery(sbQuery1.toString());	

   	    System.out.println("evandro");
   	    
   	    

/*		  URLClassLoader classLoader = (URLClassLoader)main.class.getClassLoader();
          System.out.println(Arrays.toString(classLoader.getURLs()));*/
	}

porem o erro esta dando :

Exception in thread main java.lang.NoClassDefFoundError: javax/persistence/spi/ProviderUtil

at java.lang.Class.getDeclaredConstructors0(Native Method)

at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)

at java.lang.Class.getConstructor0(Unknown Source)

at java.lang.Class.newInstance0(Unknown Source)

at java.lang.Class.newInstance(Unknown Source)

at javax.persistence.Persistence.findAllProviders(Persistence.java:80)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:49)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)

at br.com.warelane.entidades.main.main(main.java:22)

Caused by: java.lang.ClassNotFoundException: javax.persistence.spi.ProviderUtil

at java.net.URLClassLoader$1.run(Unknown Source)

at java.net.URLClassLoader$1.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

 9 more
Criado 24 de dezembro de 2012
Ultima resposta 25 de dez. de 2012
Respostas 6
Participantes 2