Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
10
respostas

start tomcat

O tomcat sobe direitinho.Mas da erro 404 quando tento acessar no navegador. Acredito que o problema seja o tomcat, mas configurei como vi no video. Nao sei mais o que fazer.

10 respostas

Oi Vanessa,

Coloca aqui no fórum o seu código de configuração do Spring e seu Controller que está tentando fazer funcionar no navegador.

Abraço

<?xml version="1.0" encoding="UTF-8"?>
<web-app 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_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>contas</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

    <!-- Declaracao do servlet do Spring MVC abaixo-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>
package br.com.caelum.contas.controller;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import br.com.caelum.contas.ConnectionFactory;

@Controller
public class InfraController {

    @RequestMapping("/tabelas")
    public String criaBanco() throws SQLException {
        Connection c = new ConnectionFactory().getConnection();
        PreparedStatement st1 = c.prepareStatement("drop table contas if exists");
        st1.execute();

        PreparedStatement st11 = c.prepareStatement("create table contas (id int identity, descricao varchar(255), valor double, paga boolean, dataPagamento datetime, tipo varchar(20))");
        st11.execute();

        PreparedStatement st2 = c.prepareStatement("drop table usuarios if exists");
        st2.execute();

        PreparedStatement st22 = c.prepareStatement("create table usuarios (login VARCHAR(255),senha VARCHAR(255));");
        st22.execute();

        PreparedStatement st3 = c.prepareStatement("insert into usuarios (login, senha) values ('caelum', 'online');");
        st3.execute();

        c.close();

        return "infra-ok";

    }
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>contas</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

    <!-- Declaracao do servlet do Spring MVC abaixo-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>
package br.com.caelum.contas.controller;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import br.com.caelum.contas.ConnectionFactory;

@Controller
public class InfraController {

    @RequestMapping("/tabelas")
    public String criaBanco() throws SQLException {
        Connection c = new ConnectionFactory().getConnection();
        PreparedStatement st1 = c.prepareStatement("drop table contas if exists");
        st1.execute();

        PreparedStatement st11 = c.prepareStatement("create table contas (id int identity, descricao varchar(255), valor double, paga boolean, dataPagamento datetime, tipo varchar(20))");
        st11.execute();

        PreparedStatement st2 = c.prepareStatement("drop table usuarios if exists");
        st2.execute();

        PreparedStatement st22 = c.prepareStatement("create table usuarios (login VARCHAR(255),senha VARCHAR(255));");
        st22.execute();

        PreparedStatement st3 = c.prepareStatement("insert into usuarios (login, senha) values ('caelum', 'online');");
        st3.execute();

        c.close();

        return "infra-ok";

    }
}

Oi Vanessa, coloca aqui também o aqui /WEB-INF/spring-context.xml. Gostaria de ver se as configurações dele parecem certinhas.

Até o momento essas que você colocou parecem OK.

Outra dúvida, você possui uma página JSP dentro de /WEB-INF/views/infra-ok.jsp?

Abraço

Outra coisa, o 404 acontece quando você acessa: http://localhost:8080/contas/tabelas correto?

Abraço

Oi segue abaixo o codigo que do spring-context.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:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc 
                        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
                        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">

    <context:component-scan base-package="br.com.caelum.contas" />
    <mvc:annotation-driven />

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/" />
        <property name="suffix" value=".jsp" />
    </bean>

</beans>

E sim eu possuo a página infra-ok.jsp dentro do diretório citado...

abs.

Ah e acesso essa url : http://localhost:8080/contas/tabelas

abs

Oi Vanessa,

Uma duvida.. Você está usando a IDE eclipse para este curso? Se sim, após importar o projeto você adicionou as libraries no seu build path? Pois seus arquvios de configuração e seu Controller está tudo ok.

Abs.

Vanessa, na inicialização do tomcat, procure por uma linha que fala: Spring Context Initializer (algo assim), mostrando que o contexto do spring subiu realmente.

Caso não encontre, verifique no servidor se colocou realmente sua aplicação no servidor pela interface do Eclipse

solução!

Gente muito obrigada.. Acabei convertendo o projeto pra maven e mudei estrutura do projeto pra estrutura padrão java web.. Muito obrigada pela ajuda ae.. Agora posso continuar o curso.