E ai galera, blz!?
De todas as tecs citadas no tópico estou usando a última release estável de todas.
Criei um projeto do zero, eu um pc novo.
Instalação do Java, Jdk, variáveis de ambiente, tudo ok.
Instalação do m2e no eclipse, Ok!
Escrevi o pom com todas as dependências, ajustei os arquivos: web.xml, faces-config.xml, applicationContext.xml e o persistence.xml.
Criei beans e managed beans básicos, apenas para testar o fluxo do sisteminha…
A aplicação está ok, sem erros ou warnings.
Clean e Install no Maven, ok!
Na hora de subir a aplicação no meu tomcat (7, add ao eclipse) acontece o seguinte erro:
Advertência: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Projeto' did not find a matching property.
Jan 23, 2013 9:35:59 AM org.apache.catalina.core.StandardContext listenerStart
Grave: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener
at java.lang.ClassLoader.findBootstrapClass(Native Method)
...
Eu pesquisei muito galera!
Quase um dia inteiro e não consegui resolver essa joça…
Quais dúvidas/questões levantei após pesquisar:
- As dependências do Maven não estão subindo junto com a aplicação e consequentemente elas não são encontradas no diretório da aplicação dentro do Tomcat…?
- Instalando Maven através do plugin (m2e) eu sou obrigado a instalar o maven (.zip) na máquina? Se não: Devo criar a variável de ambiente M2_HOME? Se sim: Apontar para qual diretório?
- Criando um novo projeto através do Maven(m2e) ele não cria o settings.xml (User Settings), eu acredito que devo criá-lo manualmente, mas qual o conteúdo desse arquivo? Encontrei muitos exemplos mas apenas de seu “esqueleto”, qual deve ser o conteúdo básico desse arquivo? Eu o criei, mas ele não tem valores no momento…
- Devo copiar todos os jars baixados pelo Maven no diretório lib do Tomcat? (Estou usando uma instância dentro do eclipse, no caso ele usa as libs do próprio m2, correto?)
Entendo que o erro diz qual o problema por si só, mas acredito ter feito todas as configurações necessárias para que ele não deixasse de encontrar nada… Mas pelo visto, falta algo!
Espero que possam me ajudar…
Conteúdo dos arquivos:
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID">
<display-name>Projeto</display-name>
<!-- Configuracao do Spring -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Configuracao DO JSF -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
</web-app>
faces-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<application>
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
</application>
</faces-config>
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<!-- Anotações usadas pelo Spring -->
<context:annotation-config />
<!-- Beans anotados -->
<context:component-scan base-package="br.com.projeto.service,br.com.projeto.dao" />
<!-- Transações com annotations -->
<tx:annotation-driven />
<!-- Configuracao do Banco de Dados -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/projetodb" />
<property name="username" value="root" />
<property name="password" value="admin" />
</bean>
<!-- Configuracao do Hibernate -->
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="projetodb" />
<property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="databasePlatform" value="org.hibernate.dialect.MySQLDialect" />
<property name="showSql" value="true" />
</bean>
</property>
</bean>
<!-- Gerente de transacoes do Spring -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
</beans>
persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence:persistence version="2.0"
xmlns:persistence="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:persistence-unit name="projetodb"/>
</persistence:persistence>
pom.xml
<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>br.com.projeto</groupId>
<artifactId>Projeto</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>Projeto Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<org.springframework.version>3.0.6.RELEASE</org.springframework.version>
</properties>
<dependencies>
...
</dependencies>
<build>
<finalName>Projeto</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.0</version>
<configuration>
<targetJdk>1.6</targetJdk>
</configuration>
</plugin>
</plugins>
</build>
</project>
settings.xml
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
</settings>
Abraços!
