Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Leonardo Sandrini

Método post retorna response code 400 no Android com Volley Singleton

Recommended Posts

Eu criei duas classes customizadas de acordo com o que foi orientado por meu professor para fazer a requisição no servidor, mas estou recebendo um retorno 400 e não consigo descobrir a razão. Pesquisando, vi que pode ser algo relacionado ao cabeçalho, mas não sei como enviá-lo na minha requisição JSon customizada.

Este é o código do meu do meu código customizado para requisição de JsonObject:

package com.example.sandrini.pokeagenda;

import com.android.volley.AuthFailureError;
import com.android.volley.Response;
import com.android.volley.RetryPolicy;
import com.android.volley.toolbox.JsonObjectRequest;

import org.json.JSONObject;

import java.util.HashMap;
import java.util.Map;

public class CustomJSONObjectRequest extends JsonObjectRequest {

    public CustomJSONObjectRequest(int method, String url, JSONObject jsonRequest,
                                   Response.Listener<JSONObject> listener,
                                   Response.ErrorListener errorListener) {
        super(method, url, jsonRequest, listener, errorListener);
    }

    @Override
    public Map<String, String> getHeaders() throws AuthFailureError {
        HashMap<String, String> headers = new HashMap<>();
        headers.put("Content-Type", "application/json; charset=utf-8");
        return headers;
    }

    @Override
    public RetryPolicy getRetryPolicy() {
        return super.getRetryPolicy();
    }
}

Este é o código da minha Request Queue:

package com.example.sandrini.pokeagenda;

import android.content.Context;

import com.android.volley.Cache;
import com.android.volley.Network;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.BasicNetwork;
import com.android.volley.toolbox.DiskBasedCache;
import com.android.volley.toolbox.HurlStack;

public class CustomVolleyRequestQueue {

private static CustomVolleyRequestQueue mInstance;
private static Context mCtx;
private RequestQueue mRequestQueue;

private CustomVolleyRequestQueue(Context context) {
    //recebe o contexto da aplicação
    //Assim a fila dura o ciclo de vida do app
    mCtx = context;
    mRequestQueue = getRequestQueue();
}

public static synchronized CustomVolleyRequestQueue getmInstance(Context context) {
    if (mInstance == null) {
        mInstance = new CustomVolleyRequestQueue(context);
    }
    //retorna uma instância da fila
    return mInstance;
}

public RequestQueue getRequestQueue() {
    if (mRequestQueue == null) {
        //Cache 10MB
        Cache cache = new DiskBasedCache(mCtx.getCacheDir(), 10 *1024);
        Network network = new BasicNetwork(new HurlStack());
        mRequestQueue = new RequestQueue(cache, network);
        mRequestQueue.start();
    }
    return mRequestQueue;
}
}

Este é o código da Activity onde estou tentando fazer a requisição:

package com.example.sandrini.pokeagenda;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Toast;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonRequest;
import com.google.gson.Gson;

import org.json.JSONException;
import org.json.JSONObject;

import java.util.EmptyStackException;

public class CreateUserActivity extends AppCompatActivity implements Response.Listener, Response.ErrorListener {
    private static final String REQUEST_TAG = "CreateUser";
    Trainer trainer = new Trainer();
    EditText loginCreateInput, emailCreateInput, pwdCreateInput;
    Button createUserButton;
    private RequestQueue mQueue;
    JsonRequest jsonRequest;
    ProgressBar progressBarCreateUser;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_create_user);

        loginCreateInput = (EditText) findViewById(R.id.login_create_input);
        emailCreateInput = (EditText) findViewById(R.id.email_create_input);
        pwdCreateInput = (EditText) findViewById(R.id.pwd_create_input);
        createUserButton = (Button) findViewById(R.id.create_user_button);
        progressBarCreateUser = (ProgressBar) findViewById(R.id.progress_bar_create_user);

        progressBarCreateUser.setVisibility(View.INVISIBLE);
    }

    @Override
    protected void onStart() {
        super.onStart();

        createUserButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (loginCreateInput.getText().toString().equals("")) {
                    Toast.makeText(getApplicationContext(), "Please, set a login", Toast.LENGTH_SHORT).show();
                } else if (emailCreateInput.getText().toString().equals("")) {
                    Toast.makeText(getApplicationContext(), "Please, set an email", Toast.LENGTH_SHORT).show();
                } else if (pwdCreateInput.getText().toString().equals("")) {
                    Toast.makeText(getApplicationContext(), "Please, set a password", Toast.LENGTH_SHORT).show();
                } else {
                    String url = "http://192.168.25.6:8081/PokedexWS/webresources/pokews/poke/insert/trainer";
                    /*trainer.setUsername(loginCreateInput.getText().toString());
                    trainer.setEmail(emailCreateInput.getText().toString());
                    trainer.setPassword(pwdCreateInput.getText().toString());*/
                    trainer.setUsername("gato");
                    trainer.setEmail("gato");
                    trainer.setPassword("gato");

                    try {
                        JSONObject jsonObject;
                        Gson gson = new Gson();
                        String trainerToGson = gson.toJson(trainer);
                        jsonObject = new JSONObject(trainerToGson);
                        //String trainerToGson = "{\"username\":"+ "\"" + trainer.getUsername()+ "\"" + "," +
                        //"\"email\":"+ "\"" + trainer.getEmail() + "\"" + "," +
                        //"\"username\":"+ "\"" + trainer.getPassword()+ "\"" + "}";
                        //createUserButton.setText(trainerToGson);


                        mQueue = CustomVolleyRequestQueue.getmInstance(CreateUserActivity.this.getApplicationContext()).getRequestQueue();
                        jsonRequest = new CustomJSONObjectRequest(Request.Method.POST, url, jsonObject,
                                CreateUserActivity.this, CreateUserActivity.this);
                        jsonRequest.getHeaders();
                        mQueue.add(jsonRequest);
                        progressBarCreateUser.setVisibility(View.VISIBLE);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        });

    }

    @Override
    protected void onStop() {
        super.onStop();
        if(mQueue != null) {
            mQueue.cancelAll(REQUEST_TAG);
        }
    }



    @Override
    public void onErrorResponse(VolleyError error) {
        progressBarCreateUser.setVisibility(View.INVISIBLE);
        Toast.makeText(getApplicationContext(), "Register failed", Toast.LENGTH_LONG).show();
        Log.e("erro400", error.getMessage().toString());
        Log.e("erro400", error.getCause().toString());
        Log.e("erro400", error.getStackTrace().toString());
    }

    @Override
    public void onResponse(Object trainerObject) {
        progressBarCreateUser.setVisibility(View.INVISIBLE);
        Toast.makeText(getApplicationContext(), "Registered successfully", Toast.LENGTH_LONG).show();
                Intent intent = new Intent(CreateUserActivity.this, WelcomeTrainerActivity.class);
                startActivity(intent);
                finish();
    }
}

Este é o meu Web Service:

package ws;

import com.google.gson.Gson;
import dao.PokemonDAO;
import dao.TrainerDAO;
import java.util.ArrayList;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.Produces;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PUT;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.MediaType;
import model.Pokemon;
import model.Trainer;

/**
 * REST Web Service
 *
 * @author sandrini
 */
@Path("pokews")
public class PokedexWebService {

    PokemonDAO pokemonDAO = new PokemonDAO();
    TrainerDAO trainerDAO = new TrainerDAO();

    @Context
    private UriInfo context;

    /**
     * Creates a new instance of PokedexWebService
     */
    public PokedexWebService() {
    }

    /**
     * Retrieves representation of an instance of teste.GenericResource
     * @return an instance of java.lang.String
     */
    @GET
    @Produces(MediaType.APPLICATION_XML)
    public String getXml() {
        //TODO return proper representation object
        throw new UnsupportedOperationException();
    }

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @Path("poke/list")
    public ArrayList<Pokemon> pokeList() {
        return pokemonDAO.listPokemon();
    }

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @Path("poke/fetch/{id}")
    public Pokemon pokeFetch(@PathParam("id") int id) {
        return pokemonDAO.fetchPokemon(id);
    }

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @Path("poke/isFavorite/{id}")
    public String pokeIsFavorite(@PathParam("id") int id) {
        return pokemonDAO.isFavorite(id);
    }

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @Path("poke/login/{login}/{pwd}")
    public Trainer pokelogin(@PathParam("login") String login, @PathParam("pwd") String pwd) {
        return trainerDAO.authUser(login, pwd);
    }

    @DELETE
    @Path("poke/delete/{id}")
    public boolean delete(@PathParam("id")int id) {
        return pokemonDAO.deletePokemon(id);
    }

    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    @Path("poke/insert")
    public boolean pokeInsert(String content) {
        Gson gson = new Gson();
        Pokemon pokemon = (Pokemon) gson.fromJson(content, Pokemon.class);
        return pokemonDAO.insertPokemon(pokemon);
    }

    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    @Path("poke/insert/trainer")
    public boolean trainerInsert(String content) {
        Gson gson = new Gson();
        Trainer trainer = (Trainer) gson.fromJson(content, Trainer.class);
        return trainerDAO.insertTrainer(trainer);
    }

    @PUT
    @Consumes(MediaType.APPLICATION_JSON)
    @Path("poke/update")
    public boolean pokeUpdate(String content) {
        Gson gson = new Gson();
        Pokemon pokemon = (Pokemon) gson.fromJson(content, Pokemon.class);
        return pokemonDAO.updatePokemon(pokemon);
    }

    /**
     * PUT method for updating or creating an instance of GenericResource
     * @param content representation for the resource
     */
    @PUT
    @Consumes(MediaType.APPLICATION_XML)
    public void putXml(String content) {
    }


}

Eu peguei um código java pra testar o WS e tá funcionando, só não estou conseguindo requisitar pelo android:

package acessorest;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.lang.ProcessBuilder.Redirect.Type;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;

/**
 *
 * @author marcelosiedler
 */
public class HttpExemplo {

    private final String USER_AGENT = "Mozilla/5.0";

    public static void main(String[] args) throws Exception {

        HttpExemplo http = new HttpExemplo();
        Gson gson = new Gson();  
                Pokemon pokemon = new Pokemon();
                java.lang.reflect.Type pokemonType = new TypeToken<Pokemon>() {
                }.getType();

                String chamadaWS = "http://192.168.25.6:8081/PokedexWS/webresources/pokews/poke/insert/trainer";
                Trainer trainer = new Trainer();

                trainer.setUsername("quadrado");
                trainer.setEmail("quadrado");
                trainer.setPassword("quadrado");

                //System.out.println(gson.toJson(trainer));
                String trainerToGson = gson.toJson(trainer);

                /*String trainerToGson = "{\"username\":"+ "\"" + trainer.getUsername()+ "\"" + "," +
                        "\"email\":"+ "\"" + trainer.getEmail() + "\"" + "," +
                        "\"password\":"+ "\"" + trainer.getPassword()+ "\"" + "}";*/


                //System.out.println(trainerToGson);
                //String retorn = http.sendGet(chamadaWS, "DELETE");
                //pokemon = gson.fromJson(json, pokemonType);
                //System.out.println(retorn);
                http.sendPost(chamadaWS,trainerToGson, "POST");




    }

    // HTTP GET request
    private String sendGet(String url, String method) throws Exception {

        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();

        // optional default is GET
        con.setRequestMethod(method);

        //add request header
        con.setRequestProperty("User-Agent", USER_AGENT);

        int responseCode = con.getResponseCode();
        System.out.println("Response Code : " + responseCode);

        BufferedReader in = new BufferedReader(
                new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();

        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();

        //print result
        System.out.println(response.toString());

                return response.toString();

    }

    // HTTP POST request
    private void sendPost(String url, String parameters, String method) throws Exception {

        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();

        //add reuqest header
        con.setRequestMethod(method);
                con.setRequestProperty("Content-Type", "application/json");
        con.setRequestProperty("User-Agent", USER_AGENT);
        con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");

        String urlParameters = parameters;

        // Send post request
        con.setDoOutput(true);
        DataOutputStream wr = new DataOutputStream(con.getOutputStream());
        wr.writeBytes(urlParameters);
        wr.flush();
        wr.close();

        int responseCode = con.getResponseCode();
        System.out.println("\nSending 'POST' request to URL : " + url);
        System.out.println("Post parameters : " + urlParameters);
        System.out.println("Response Code : " + responseCode);

        BufferedReader in = new BufferedReader(
                new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();

        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();

        //print result
        System.out.println(response.toString());

    }

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Estou escrevendo um Sistema em JAVA Web Servlet, estou tendo problema para Invalidar Sessão.

      Toda vez que o usuário faz o LOGOUT, o sistema permite que o Navegar retorna para a página anterior.

      Como consigo bloquear/destruir a sessão para o Sistema quando o usuário sair, voltar sempre para o Login.

      o meu Servlet está assim:
       
      package br.com.rc.controlador; import br.com.rc.dao.UserDAO; import br.com.rc.modelo.Usuario; import br.com.rc.seguranca.Criptografia; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; /** * Servlet - Autenticação Usuário */ public class AuthControlador extends HttpServlet { private UserDAO authDao = new UserDAO(); private final String PagIndex = "index.jsp"; private final String PagHome = "home.jsp"; private final String PagLogout = "deslogar.jsp"; protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); String accion = request.getParameter("accion"); switch (accion) { case "login": Login(request, response); break; case "logout": Logout(request, response); break; default: throw new AssertionError(); } } protected void Login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); request.getRequestDispatcher(PagIndex).forward(request, response); } /* * O problema está aqui, não invalida a sessão e permite que volta * para a página anterior. */ protected void Logout(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); HttpSession session = request.getSession(); session.setAttribute("users", null); session.removeAttribute("users"); session.invalidate(); response.sendRedirect(PagLogout); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override public String getServletInfo() { return "Short description"; } }
      Deslogar.JSP
      página criada para impedir que volte para a anterior.
      <% //Destrói Sessão session.invalidate(); //Redirecionar Página Login response.sendRedirect("index.jsp"); %>

      Grato,

      Cesar
    • Por violin101
      Caros amigos, saudações.

      Estou escrevendo um Sistema em JAVA Web e estou encontrando um problema para fazer Paginação.

      O sistema informa o Limite de registro por página, mas não mostra abaixo da tabela a paginação.

      Alguém pode me ajudar ?

      Posto o Código abaixo.

      Controller - Servlet
       
      package br.com.rc.controlador; import br.com.rc.modelo.Cargo; import br.com.rc.modelo.dao.CargoDAO; import java.io.IOException; import java.util.List; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet */ public class srvCargos extends HttpServlet { private CargoDAO crgDao = new CargoDAO(); private final String pagListar = "/views/cargos/cargos.jsp"; private final String pagNovo = "/views/cargos/cargoNovo.jsp"; private final String pagEditar = "/views/cargos/cargoEditar.jsp"; protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); String accion = request.getParameter("accion"); switch (accion) { case "listarCargos": listarCargos(request, response); break; default: throw new AssertionError(); } } protected void listarCargos(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); int paginaActual = 1; int registrosPorPagina = 5; // Qtde por Tabela if (request.getParameter(pagListar) != null) { paginaActual = Integer.parseInt(request.getParameter(pagListar)); } int offset = (paginaActual - 1) * registrosPorPagina; List<Cargo> lista = crgDao.ListarTodos(offset, registrosPorPagina); int totalRegistros = crgDao.contarTotal(); int totalPaginas = (int) Math.ceil((double) totalRegistros / registrosPorPagina); request.setAttribute("cargos", lista); request.setAttribute("totalPaginas", totalPaginas); request.setAttribute("paginaAtual", paginaActual); request.getRequestDispatcher(pagListar).forward(request, response); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override public String getServletInfo() { return "Short description"; }// </editor-fold> }  
      Classe DAO
       
      package br.com.rc.modelo.dao; import br.com.rc.config.Conexion; import br.com.rc.modelo.Cargo; import java.sql.*; import java.util.ArrayList; import java.util.List; /** * Classe DAO */ public class CargoDAO { private Connection cn = null; private PreparedStatement ps = null; private ResultSet rs = null; private int noOfRecords; public ArrayList<Cargo> ListarTodos(int offset, int noOfRecords) { ArrayList<Cargo> lista = new ArrayList<>(); try { cn = Conexion.getConnection(); String sql = "select * from Cargo ORDER BY nombreCargo ASC limit " + offset + ", " + noOfRecords; ps = cn.prepareStatement(sql); rs = ps.executeQuery(); while (rs.next()) { Cargo obj = new Cargo(); obj.setIdCargo(rs.getInt("idCargo")); obj.setNombreCargo(rs.getString("nombreCargo")); obj.setEstado(rs.getBoolean("estado")); lista.add(obj); } } catch (Exception ex) { ex.printStackTrace(); } finally { try { if (cn != null) { cn.close(); } if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } } catch (Exception ex) { } } return lista; } public int contarTotal() { String sql = "Select Count(*) From Cargo"; try (PreparedStatement ps = cn.prepareStatement(sql)) { ResultSet rs = ps.executeQuery(); if (rs.next()) return rs.getInt(1); } catch (SQLException e) { e.printStackTrace(); } return 0; } public int getNoOfRecords() { return noOfRecords; } }
      Página JSP
      caminho: \web\views\cargos\cargos.jsp
      <%@page contentType="text/html" pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <jsp:include page="../../estilo/header.jsp" /> <jsp:include page="../../estilo/menu.jsp" /> <!-- Content Wrapper. Contains page content --> <div class="content-wrapper"> <section class="content-header"> <h1>Página Cargos</h1> </section> <!-- Content Header (Page header) --> <section class="content-header"> <a href="srvCargos?accion=novo" class="btn btn-success"> <i class="fa fa-plus"></i> Novo Cargo </a> <ol class="breadcrumb"> <li><a href="srvCargos?accion=index"><i class="fa fa-dashboard"></i> Inicio</a></li> <li class="active">Cargos</li> </ol> </section> <section class="content"> <div class="box"> <div class="box-header with-border"> <h3 class="box-title">Lista de Cargos</h3> </div> <div class="box-body"> <div class="table-responsive" > <table class="table table-bordered table-striped dataTable table-hover" id="tablaCargos"> <thead> <tr> <th>Código</th> <th>Descrição</th> <th>Estado</th> <th>Ação</th> </tr> </thead> <tbody> <c:forEach items="${cargos}" var="item"> <tr> <td>${item.idCargo}</td> <td>${item.nombreCargo}</td> <c:if test="${item.estado == true}"> <td><span class="badge bg-green active">Ativo</span></td> </c:if> <c:if test="${item.estado == false}"> <td><span class="badge bg-red active">Inativo</span></td> </c:if> <td> <a href="srvCargos?accion=buscar&id=${item.idCargo}" class="btn btn-info btn-sm"> <i class="fa fa-edit"></i> </a> <a href="srvCargos?accion=eliminar&id=${item.idCargo}" onclick="return confirm('Deseja Realmente Excluir o Cargo com id ${item.idCargo}')" class="btn btn-danger btn-sm"> <i class="fa fa-trash"></i> </a> </td> </tr> </c:forEach> <c:if test="${cargos.size() == 0}"> <tr class="text-center"> <td colspan="6">Nenhum Registro Enconrado.</td> </tr> </c:if> </tbody> </table> <!--Aqui está o erro ===> a parte de Navegação não mostra--> <nav> <ul class="pagination"> <c:if test="${paginaActual > 1}"> <li class="page-item"><a class="page-link" href="srvCargos?accion=listarCargos?page=${paginaActual - 1}">Anterior</a></li> </c:if> <c:forEach var="i" begin="1" end="${totalPaginas}"> <li class="page-item ${i == paginaActual ? 'active' : ''}"> <a class="page-link" href="srvCargos?accion=listarCargos?page=${i}">${i}</a> </li> </c:forEach> <c:if test="${paginaActual < totalPaginas}"> <li class="page-item"><a class="page-link" href="srvCargos?accion=listarCargos?page=${paginaActual + 1}">Siguiente</a></li> </c:if> </ul> </nav> </div> </div> </div> </section> <!-- /.content --> </div> <!-- /.content-wrapper --> <jsp:include page="../../estilo/footer.jsp" />
      Grato,

      Cesar
    • Por violin101
      Caros amigos, saudações.

      Por favor, alguém pode me dar uma explicação referente o Template AdminLTE + Java Netbeans.

      Após importar para o Sistema Web. o componente para a pasta:
      WEB PAGES
      |___> bower_components - fica apresentando ERRO em algumas subpastas.

      Como consigo corrigir esses erros ?

      At.te,

      Cesar
    • Por violin101
      Caros amigos, saudações.

      Estou com uma dúvida em Sistema WEB em Java.

      O Código abaixo está na Página index.jsp
      <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link href="css/bootstrap.min.css" rel="stylesheet" type="text/css"/> </head> </html>
      O problema são os caracteres especiais que não consigo corrigir.

      Como consigo converter os Caracteres para o Padrão Português(BR) ?

      Grato,

      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Estou escrevendo um Sistema Java Web e quando clico no Botão Salvar, o Java acusa esse erro:

      ERROR: Cannot invoke "Object.toString()" because the return value of "java.util.Map.get(Object)" is null
       
      Já tentei de várias formas resolver esse problema, mas não estou conseguindo.

      Por favor, alguém pode me ajudar identificar a origem e resolver o problema acima ?

      Grato,
       
      Cesar
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.