Projeto JavaEE com JSF 2.0 + Hibernate + EJB 3.0 + Glassfish + Primefaces

8 respostas
F

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,

8 Respostas

I

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

F

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:

<dependencies>
		<dependency>
			<groupId>dom4j</groupId>
			<artifactId>dom4j</artifactId>
			<version>1.6.1</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>
			<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>

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?

A

Fiz um teste aqui com o pom abaixo e funcionou.

&lt;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"&gt; &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt; &lt;groupId&gt;br.com.guj&lt;/groupId&gt; &lt;artifactId&gt;JSFHibernateEJBGlassfishPrimefaces&lt;/artifactId&gt; &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt; &lt;packaging&gt;war&lt;/packaging&gt; &lt;name&gt;JSFHibernateEJBGlassfishPrimefaces&lt;/name&gt; &lt;properties&gt; &lt;endorsed.dir&gt;${project.build.directory}/endorsed&lt;/endorsed.dir&gt; &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt; &lt;/properties&gt; &lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;org.primefaces&lt;/groupId&gt; &lt;artifactId&gt;primefaces&lt;/artifactId&gt; &lt;version&gt;3.4.2&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.hibernate&lt;/groupId&gt; &lt;artifactId&gt;hibernate-core&lt;/artifactId&gt; &lt;version&gt;4.1.9.Final&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.hibernate.javax.persistence&lt;/groupId&gt; &lt;artifactId&gt;hibernate-jpa-2.1-api&lt;/artifactId&gt; &lt;version&gt;1.0.0.Draft-7plus&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt;&lt;!--Como está usando glassfish não precisa de importar o EJB nem o JSF ta tudo nesse pacote que já tem no Glassfish--&gt; &lt;groupId&gt;javax&lt;/groupId&gt; &lt;artifactId&gt;javaee-web-api&lt;/artifactId&gt; &lt;version&gt;6.0&lt;/version&gt; &lt;scope&gt;provided&lt;/scope&gt; &lt;/dependency&gt; &lt;/dependencies&gt; &lt;build&gt; &lt;plugins&gt; &lt;plugin&gt; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt; &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt; &lt;version&gt;2.3.2&lt;/version&gt; &lt;configuration&gt; &lt;source&gt;1.6&lt;/source&gt; &lt;target&gt;1.6&lt;/target&gt; &lt;compilerArguments&gt; &lt;endorseddirs&gt;${endorsed.dir}&lt;/endorseddirs&gt; &lt;/compilerArguments&gt; &lt;/configuration&gt; &lt;/plugin&gt; &lt;plugin&gt; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt; &lt;artifactId&gt;maven-war-plugin&lt;/artifactId&gt; &lt;version&gt;2.1.1&lt;/version&gt; &lt;configuration&gt; &lt;failOnMissingWebXml&gt;false&lt;/failOnMissingWebXml&gt; &lt;/configuration&gt; &lt;/plugin&gt; &lt;plugin&gt; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt; &lt;artifactId&gt;maven-dependency-plugin&lt;/artifactId&gt; &lt;version&gt;2.1&lt;/version&gt; &lt;executions&gt; &lt;execution&gt; &lt;phase&gt;validate&lt;/phase&gt; &lt;goals&gt; &lt;goal&gt;copy&lt;/goal&gt; &lt;/goals&gt; &lt;configuration&gt; &lt;outputDirectory&gt;${endorsed.dir}&lt;/outputDirectory&gt; &lt;silent&gt;true&lt;/silent&gt; &lt;artifactItems&gt; &lt;artifactItem&gt; &lt;groupId&gt;javax&lt;/groupId&gt; &lt;artifactId&gt;javaee-endorsed-api&lt;/artifactId&gt; &lt;version&gt;6.0&lt;/version&gt; &lt;type&gt;jar&lt;/type&gt; &lt;/artifactItem&gt; &lt;/artifactItems&gt; &lt;/configuration&gt; &lt;/execution&gt; &lt;/executions&gt; &lt;/plugin&gt; &lt;/plugins&gt; &lt;/build&gt; &lt;repositories&gt; &lt;repository&gt; &lt;id&gt;prime-repo&lt;/id&gt; &lt;name&gt;PrimeFaces Maven Repository&lt;/name&gt; &lt;url&gt;http://repository.primefaces.org&lt;/url&gt; &lt;layout&gt;default&lt;/layout&gt; &lt;/repository&gt; &lt;repository&gt; &lt;id&gt;jboss-repo&lt;/id&gt; &lt;name&gt;JBoss Maven Repository&lt;/name&gt; &lt;url&gt;https://repository.jboss.org/nexus/content/groups/public/&lt;/url&gt; &lt;layout&gt;default&lt;/layout&gt; &lt;/repository&gt; &lt;/repositories&gt; &lt;/project&gt;

F

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.

A

Eu usei o netbeans, mas o que foi gerado pode ser usado no eclipse uma vez que o projeto é maven.

F

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.

R

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.

A

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.

Criado 3 de janeiro de 2013
Ultima resposta 7 de jan. de 2013
Respostas 8
Participantes 4