Olá pessoal,
estou desenvolvendo um projeto Java com as tecnologiasJSF 2.0 + Hibernate + EJB 3.0 + Glassfish + Primefaces e estou com muitos problema para rodar o projeto.
Não estou conseguindo identificar as dependências necessárias declarar no pom.xml,
já usei um archetype sugerido pelo eclipse chamado weld-jsf-jee que me traz a estrutura perfeita que desejo, mas o seu pom.xml ainda assim vem com erro de compilação,
já tentei de várias maneiras mas ainda estou sem solução. Gostaria de saber se alguém poderia ajudar.
Att,
Quando quiser algum jar, entra nesse site http://mvnrepository.com/ e seja feliz.
Digita o que vc quer, que lá gera o comando certinho para colocar no pom.xml
Para mim não ta sendo tão fácil encontrar todas as dependências.
Tenho o arquivo pom.xml com as dependencies a seguir:
[code]
dom4j
dom4j
1.6.1
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.1.9.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.0.Draft-7plus</version>
</dependency>
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.5.6-Final</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>javax.faces-api</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>javax.ejb</groupId>
<artifactId>ejb-api</artifactId>
<version>3.0</version>
</dependency>
</dependencies>[/code]
e ainda assim quando tento jogar e iniciar no meu servidor local, me deparo com a seguinte excessão:
cannot Deploy maven-sem-archetype
Deployment Error for module: maven-sem-archetype: Error occurred during deployment: Exception while preparing the app : java.lang.ClassNotFoundException: org.hibernate.ejb.HibernatePersistence. Please see server.log for more details.
Alguém sabe me informar se estou com as dependencias corretas do hibernate?
Fiz um teste aqui com o pom abaixo e funcionou.
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.guj</groupId>
<artifactId>JSFHibernateEJBGlassfishPrimefaces</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>JSFHibernateEJBGlassfishPrimefaces</name>
<properties>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.1.9.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.0.Draft-7plus</version>
</dependency>
<dependency><!--Como está usando glassfish não precisa de importar o EJB nem o JSF ta tudo nesse pacote que já tem no Glassfish-->
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>${endorsed.dir}</outputDirectory>
<silent>true</silent>
<artifactItems>
<artifactItem>
<groupId>javax</groupId>
<artifactId>javaee-endorsed-api</artifactId>
<version>6.0</version>
<type>jar</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>prime-repo</id>
<name>PrimeFaces Maven Repository</name>
<url>http://repository.primefaces.org</url>
<layout>default</layout>
</repository>
<repository>
<id>jboss-repo</id>
<name>JBoss Maven Repository</name>
<url>https://repository.jboss.org/nexus/content/groups/public/</url>
<layout>default</layout>
</repository>
</repositories>
</project>
AmauriSpPoa, como vc fez para criar a estrutura do projeto?
Estou usando um archetype que o eclipse me sugere, mas o pom.xml dele já vem com vários erros e não consigo concertar.
Eu usei o netbeans, mas o que foi gerado pode ser usado no eclipse uma vez que o projeto é maven.
Você me sugere criar dois módulos: web + ejb para essa abordagem ou é mais fácil trabalhar em um projeto só?
Criei um projeto Maven via a seguinte linha de comando:
mvn archetype:generate -DgroupId=br.com.pactotecnologia -DartifactId=projeto-maven-piloto-siscg -DarchetypeArtifactId=maven-archetype-quickstart
mas quando importo ele para o eclipse para que possa fazer o deploy no servidor, preciso converter ele para um projeto Web Dinamico. Daí isso gera vários problemas.
Voce pode usar o demoiselle, estou comecando a usar e ate agora tem me agradado. Ele tem umas facilidades em relacao a configuracao de dependencias.
Criar dois módulos, depende do tamanho do seu sistema e se o modulo ejb vai ser utilizado por mais de um modulo também, se não for o caso deixa tudo em um modulo só.
Agora em relação a criar os projetos via archetype eu não sou muito fã, pois o ideal é você saber do que se trata cada linha no seu pom, depois você precisa adicionar uma lib nova, ou alterar alguma configuração e pode não saber nem por onde começar.