Dúvida para criação do projeto web com o Maven / Spring e Hibernate

8 respostas Resolvido
ewertonvd

Boa tarde pessoal!!!
Preciso MUITO da ajuda de alguém, por favor me ajudem !!!

Eu tenho um projeto “Maven”, e mais dois módulos um “quickstart” e um “webapp”…

Eu consegui consegui configurar o Maven, pra usar o Spring… Adicionei as dependencias no pom.xml do Spring, do Hibernate…

Eu criei um formulário.jsp, dentro do módulo “webapp”, na pasta src\main\webapp\WEB-INF\jsp COM:

Cadastro de Produtos


Nome:
Descricao :
Eu acesso o http://localhost:8080 => Mostra a página de configuração do Tomcat normalmente - Tudo OK.

Eu acesso o http://localhost:8080/nomeDoModuloWeb => Mostra a msg Hello World! - Tudo OK.

Agora se eu tento acessar a página Eu acesso o http://localhost:8080/nomeDoModuloWeb/formulario => Gera erro 500

Aonde e como eu tenho que mapear meu .jsp ?

Eu criei minha classe “modelo” - produto no módulo “quickstart”… Mas não consigo incluir as anotações… @Entity, etc…

8 Respostas

Paulo_Silveira

Sem a stack trace do erro 500 a gente nao tem como te ajudar Ewerton…

ewertonvd

No browser:

HTTP Status 500 - Error instantiating servlet class org.springframework.web.service.DispatcherServlet


type Exception report

message Error instantiating servlet class org.springframework.web.service.DispatcherServlet

description The server encountered an internal error that prevented it from fulfilling this request.

exception
javax.servlet.ServletException: Error instantiating servlet class org.springframework.web.service.DispatcherServlet
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
	org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521)
	org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096)
	org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674)
	org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
	org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
	java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	java.lang.Thread.run(Unknown Source)


root cause
java.lang.ClassNotFoundException: org.springframework.web.service.DispatcherServlet
	org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
	org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
	org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521)
	org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096)
	org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674)
	org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
	org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
	java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	java.lang.Thread.run(Unknown Source)


note The full stack trace of the root cause is available in the Apache Tomcat/8.0.30 logs.


Apache Tomcat/8.0.30

No console:

mar 11, 2016 4:43:50 PM org.apache.catalina.core.ApplicationContext log
INFORMAÇÕES: Marking servlet spring mvc as unavailable
mar 11, 2016 4:43:50 PM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Allocate exception for servlet spring mvc
java.lang.ClassNotFoundException: org.springframework.web.service.DispatcherServlet
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
	at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:520)
	at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:501)
	at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:120)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1095)
	at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:817)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Unknown Source)
Lfbdsan

Ta faltando algum jar ai… posta se pom.xml

ewertonvd

pom.xml do módulo web:

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.nomeDaEmpresa</groupId>
    <artifactId>nomeDoProjeto-test</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <groupId>org.nomeDaEmpresa</groupId>
  <artifactId>fiveware-test-web</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <name>nomeDaEmpresa-test-web Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
     
  </dependencies>
  <build>
    <finalName>nomeDaEmpresa-test-web</finalName>
  </build>
  <dependencyManagement>
  	<dependencies>
<!--   	DEPENDÊNCIAS NECESSÁRIAS PARA UTILIZAR O SPRING -->
  		<dependency>
  			<groupId>org.springframework</groupId>
  			<artifactId>spring-core</artifactId>
  			<version>4.2.5</version>
  		</dependency>
  		
    	<dependency>
      		<groupId>org.springframework</groupId>
      		<artifactId>spring-web</artifactId>
      		<version>4.2.5</version>
    	</dependency>

    	<dependency>
      		<groupId>org.springframework</groupId>
      		<artifactId>spring-webmvc</artifactId>
      		<version>4.2.5</version>
    	</dependency>   
<!--    FIM DAS DEPENDÊNCIAS NECESSÁRIAS PARA UTILIZAR O SPRING  -->

<!--    DEPENDÊNCIA PARA O DRIVER DE CONEXÃO DO MYSQL -->
    	<dependency>
    	    <groupId>mysql</groupId>
        	<artifactId>mysql-connector-java</artifactId>
        	<version>5.1.38</version>
	    </dependency>
<!--    FIM DA DEPENDÊNCIA PARA O DRIVER DE CONEXÃO DO MYSQL -->

<!--    DEPENDÊNCIAS BÁSICAS PARA RODAR O HIBERNATE-->
		<dependency>
			<groupId>antlr</groupId>
			<artifactId>antlr</artifactId>
			<version>3.0ea8</version>
		</dependency>
		
		<dependency>
			<groupId>dom4j</groupId>
			<artifactId>dom4j</artifactId>
			<version>1.6.1</version>
		</dependency>
		
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>5.1.0.Final</version>
		</dependency>
		
		<dependency>
			<groupId>org.hibernate.javax.persistence</groupId>
			<artifactId>hibernate-jpa-2.0-api</artifactId>
			<version>1.0.1.Final</version>
		</dependency>
		
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-validator</artifactId>
			<version>5.2.4.Final</version>
		</dependency>
		<dependency>
		
		<groupId>jta</groupId>
			<artifactId>jta</artifactId>
			<version>1.0.1b</version>
		</dependency>
		
		<dependency>
			<groupId>javax.validation</groupId>
			<artifactId>validation-api</artifactId>
			<version>1.1.0.Final</version>
		</dependency>
<!--    FIM DAS DEPENDÊNCIAS BÁSICAS PARA RODAR O HIBERNATE-->

		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>3.0-alpha-1</version>
		</dependency>

  </dependencies>
  </dependencyManagement>
</project>

*Obrigado!!

K

Olá @ewertonvd

  • Além das dependências como já citado, sugiro dar uma verificada no seu web.xml.

  • Esse ClassNotFound parece estar ocorrendo por erro de config lá.
    java.lang.ClassNotFoundException: org.springframework.web.service.DispatcherServlet, pois a classe mais comum costuma ser org.springframework.web.servlet.DispatcherServlet, atente para o pequeno detalhe diferente ali no nome qualificado da classe nas palavras ‘service’ e ‘servlet’

Tenta ajustar dessa forma, corrigindo seu servlet-class lá no web.xml:

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

ewertonvd

Bom dia Kookaz!!

Já está assim no web.xml


Eu importei o projeto, criei os módulos (um quickstart e outro webapp), configurei o Maven pra usar o Spring, e adicionei as dependências do Spring e do Hibernate no pom.xml do “Projeto Maven”…

Criei um formulario.jsp no módulo webapp, na pasta src/main/webapp/WEB-INF/views (que é o padrão dos .jsp no Spring)

Criei a classe modelo “Produto”, criei o ProdutoController e fiz o mapeamento com o @RequestMapping.

Quando eu clico com o direito no projeto e estolho Run on Server, carrega normalmente a tela do index.jsp (Hello World!)

Mas quando eu digito /nomeQueEstaNoRequestMapping, gera erro 404, e a msg no console:

mar 13, 2016 11:45:37 PM org.springframework.web.servlet.PageNotFound noHandlerFound
ADVERTÊNCIA: No mapping found for HTTP request with URI [/fiveware-test-web/form] in DispatcherServlet with name 'spring mvc'

Está faltando algum mapeamento, ele está errado… Ou está faltando alguma dependencia no pom.xml ??

Obrigado pela atenção!! Um abraço!!

Lfbdsan

Estou passando pelo mesmo problema…em im novo projeto dev ser algo na versão do Spring

ewertonvd
Solucao aceita

Criado 11 de março de 2016
Ultima resposta 15 de mar. de 2016
Respostas 8
Participantes 4