Maven resources no classph

8 respostas
Douglas.Mesquita

Aew galera do malz. Bom dia, Boa tarde, Boa noite e Boa madrugada hehehehe. A bronca é a seguinte, estou utilizando o maven no eclipse e pelo que eu vi nos tutoriais os arquivos de configuração fica em src/main/resources só que quando eu pego os meus arquivos de configuração por exemplo hibernate-cfg.xml e o de log4j quando compilo ele da um erro de:

Exception in thread “main” org.hibernate.HibernateException: /hibernate.cfg.xml not found
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).

mais quando eu movo os meus arquivos para sr/main/java ele funciona corretamente xD, ou seja sr/main/resources não está no classpath ? pq quando eu clico com o botão direito ele mostra que o diretoria citado a cima esta no classpath, é preciso fazer alguma alteração a mais ?

8 Respostas

wamaral

Douglas.Mesquita
você se certificou se o maven está compilando/enviando para o jar estes arquivos de configuarações, por favor, poste seu pom.xml para eu verificar.

Douglas.Mesquita

aqui está o meu pom ! xD

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0  
 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.mytutorial</groupId>
	<artifactId>Dking</artifactId>
	<packaging>war</packaging>
	<version>1.0-SNAPSHOT</version>
	<name>Projeto Delivery Online</name>
	<url>http://maven.apache.org</url>
	<build>
		<finalName>Dking</finalName>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>2.0.2</version>
					<configuration>
						<source>1.5</source>
						<target>1.5</target>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-eclipse-plugin</artifactId>
					<version>2.5</version>
					<configuration>
						<downloadSources>false</downloadSources>
						<wtpversion>1.5</wtpversion>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>postgresql</groupId>
			<artifactId>postgresql</artifactId>
			<version>8.1-407.jdbc3</version>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.14</version>
		</dependency>

		<!-- JSF-RI / JSTL / FACELETS / xml-->
		<dependency>
			<groupId>javax.faces</groupId>
			<artifactId>jsf-api</artifactId>
			<version>1.2_02</version>
		</dependency>
		<dependency>
			<groupId>javax.faces</groupId>
			<artifactId>jsf-impl</artifactId>
			<version>1.2-b19</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.1.2</version>
		</dependency>

		<dependency>
			<groupId>com.sun.facelets</groupId>
			<artifactId>jsf-facelets</artifactId>
			<version>1.1.11</version>
		</dependency>

		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.1.2</version>
		</dependency>

		<dependency>
			<groupId>com.sun.el</groupId>
			<artifactId>el-ri</artifactId>
			<version>1.0</version>
		</dependency>

		<dependency>
			<groupId>commons-collections</groupId>
			<artifactId>commons-collections</artifactId>
			<version>3.2.1</version>
		</dependency>

		<dependency>
			<groupId>commons-digester</groupId>
			<artifactId>commons-digester</artifactId>
			<version>2.0</version>
		</dependency>

		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging</artifactId>
			<version>1.1.1</version>
		</dependency>

		<dependency>
			<groupId>commons-beanutils</groupId>
			<artifactId>commons-beanutils</artifactId>
			<version>1.8.0</version>
		</dependency>

		<!-- richfaces -->
		<dependency>
			<groupId>org.richfaces.framework</groupId>
			<artifactId>richfaces-api</artifactId>
			<version>3.3.1-SNAPSHOT</version>
		</dependency>

		<dependency>
			<groupId>org.richfaces.framework</groupId>
			<artifactId>richfaces-impl</artifactId>
			<version>3.3.1-SNAPSHOT</version>
		</dependency>

		<dependency>
			<groupId>org.richfaces.ui</groupId>
			<artifactId>richfaces-ui</artifactId>
			<version>3.3.1-SNAPSHOT</version>
		</dependency>
		<!-- hibernate e persistencia-->
		<!-- HIBERNATE CORE -->
		<dependency>
			<groupId>hibernate</groupId>
			<artifactId>hibernate3</artifactId>
			<version>3.2.4.SP1</version>
		</dependency>
		<!-- HIBERNATE ANNOTATIONS -->

		<dependency>
			<groupId>hibernate-annotations</groupId>
			<artifactId>hibernate-annotations</artifactId>
			<version>3.3.0.GA</version>
		</dependency>
		<dependency>
			<groupId>hibernate-commons-annotations</groupId>
			<artifactId>hibernate-commons-annotations</artifactId>
			<version>3.0.0.GA</version>
		</dependency>
		<!-- HIBERNATE com JPA -->
		<dependency>
			<groupId>javax.persistence</groupId>
			<artifactId>persistence-api</artifactId>
			<version>1.0</version>
		</dependency>
		<!-- HIBERNATE VALIDATOR -->
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-validator</artifactId>
			<version>3.0.0.GA</version>
		</dependency>
		<!-- JTA -->
		<dependency>
			<groupId>javax.transaction</groupId>
			<artifactId>jta</artifactId>
			<version>1.1</version>
		</dependency>

	</dependencies>
</project>
wamaral

ok, coloque este codigo no seu pm.xml dentro da tag build.

<build>

...
 <resources> 
      <resource>
        <directory>src/main/resources</directory>
      </resource>
 </resources>
...
 </build>

onde src/main/resources se encontra os arquivos xml referente ao log4j e hibernate

Douglas.Mesquita

adicionei exatamente isso aew que vc me pediu.

&lt;resource&gt;
	&lt;directory&gt;src/main/resources&lt;/directory&gt;
		&lt;includes&gt;
		         &lt;include&gt;**/*.dtd&lt;/include&gt;
		         &lt;include&gt;**/*.xml&lt;/include&gt;
		         &lt;include&gt;**/*.properties&lt;/include&gt;
		&lt;/includes&gt;
&lt;/resource&gt;

mais ainda continua dando o mesmo erro, será que alem disso é preciso mais alguma coisa ? vlwwww

wamaral

Os arquivos d e configação do hibernate e log4j estão dentro do jar ?
pois pode ser que a forma com que voce está tentado carregar o seu hibernate.cfg.xml de dentro de um… por exemplo, de uma classe HibernateUtil esteja errada,
poderia posta-la para eu analisar?

Douglas.Mesquita

vc pergunta se os arquivos de configuração do hibernate e log4j estao dentro de um jar. Não estão dentro de um jar, eles são arquivos .xml hibernate e log4j .properties, aqui está minha classe hibernateUtil. Creio eu que seja alguma configuração de build path que eu nao sei alterar heheheh

public class HibernateUtil {

	private static SessionFactory factory;

	static {

		Configuration configuration = new AnnotationConfiguration();
		configuration.configure();

		factory = configuration.buildSessionFactory();
	}
	
	/**
	 * Retorna uma frabrica de sessao	
	 * @return
	 */
	public static Session getSession() {

		return factory.openSession();
	}
}

private static ResourceBundle bundle = ResourceBundle.getBundle("messages",
FacesContext.getCurrentInstance().getViewRoot().getLocale());

public static void addErroMessage(String msg) {

msg = bundle.getString(msg);
FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR,
msg, msg);
FacesContext fc = FacesContext.getCurrentInstance();
fc.addMessage(null, facesMsg);
}

public static void addSucessMessage(String msg){

msg = bundle.getString(msg);
FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_INFO,msg,msg);
FacesContext fc = FacesContext.getCurrentInstance();
fc.addMessage("sucessoInfo",facesMsg);
}

[code]

vlwwww

wamaral
Então, uma vez que você esteja usando
Configuration configuration = new AnnotationConfiguration();  
          configuration.configure();
ele está tentando pegar no classepath, ou seja, ele deveria está abaixo de src/ ou usando a estrutura do maven, src/main/resources neste caso, passe para o metodo configure o local correto conforme abaixo:
static {

		AnnotationConfiguration cfg = new AnnotationConfiguration();
		cfg.configure(new File("local do seu arquivo"));

		factory = cfg.buildSessionFactory();
	}
Douglas.Mesquita

vlw cara, muitooo obrigado. Resolvi da seguinte maneira, alem de incluir o src/main/resource no build path inseri a minha pasta src/main/resource/hibernate e src/main/resource/log4j. xDDDDD

ficou assim:

/hibernate
/log4j
/**

Criado 15 de agosto de 2009
Ultima resposta 17 de ago. de 2009
Respostas 8
Participantes 2