Clique em "Next" ate a tela de "Web Module" e marque a opcao de geracao do web.xml descrita na Figura 6, e clique em finalizar.Figura 6. Opcao de geracao do arquivo web.xml no projeto.Apos isso, adicione as libs baixadas do Jersey, Gson e MySQL Connector J na pasta WEB-INF/lib do projeto igual as da Figura 7 na pasta src.Figura 7. Estrutura de diretorios do projeto.Apos isso, a primeira configuracao importante e a do Servlet do Jersey no web.xml. Adicione o conteudo da listagem abaixo a esse arquivo, de modo a termos os Web Services rest prontos para serem usados:<servlet> <servlet-name>Jersey Rest</servlet-name> <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> <init-param> <param-name>jersey.config.server.provider.packages</param-name> <param-value>br.edu.ecommerce.rest</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey Rest</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>Apos isso, precisamos criar uma classe de comunicacao direta com o banco MySQL, para fornecer objetos Connection ha cada nova acao de persistencia. Para isso, crie a classe da listagem abaixo dentro do pacote br.edu.ecommerce.db:package br.edu.ecommerce.db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class DBUtil { public static Connection getConnexao() throws ClassNotFoundException, SQLException { Class.forName("com.mysql.jdbc.Driver"); return DriverManager.getConnection("jdbc:mysql://localhost:3306/ecommerce-teste", "root", "root"); } }Modifique os valores de usuario e senha de acordo com os configurados para o seu banco em especifico.Em seguida precisamos criar as entidades que conterao os dados como POJOS Java comuns para serem usados depois. Veja na listagem abaixo toda as quatro entidades que devem ser criados dentro do pacote br.edu.ecommerce.entidades:public class Usuario { private int id; private String login; private String senha; private boolean logado; // get's e set's }public class Pagamento { private int id; private String pagtoPaypalId; private String estado; private String moeda; private double valor; private Usuario usuario; // get's e set's }public class Venda { private int id; private String estado; private double preco; private int qtde; private Pagamento pagamento; private Produto produto; // get's e set's }public class Produto { private int id; private String titulo; @SerializedName("imagem") private String img; private int qtde; private double valor; private String sku; private List<String> categoria; private List<Venda> vendas; // get's e set's }Perceba que a classe Produto tem seu atributo img anotado com a anotacao @SerializeName pertencente ao Gson, e que define o nome com o qual esse valor sera serializado quando transformado para JSON.Agora e hora de configurar as nossas classes DAO para lidar com a persistencia das informacoes relacionadas aos produtos. Veja na listagem abaixo todos os metodos que usaremos no projeto, portanto, adicione-os a uma nova classe no pacote br.edu.ecommerce.dao.package br.edu.ecommerce.dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;import br.edu.ecommerce.db.DBUtil;import br.edu.ecommerce.entidades.Pagamento;import br.edu.ecommerce.entidades.Produto;import br.edu.ecommerce.entidades.Venda;public class ProdutoDAO { public List<Produto> listarProdutos() { List<Produto> resultado = new ArrayList<Produto>(); Connection con = null; try { con = DBUtil.getConnexao(); String sql = "SELECT * FROM TB_PRODUTO"; PreparedStatement st = con.prepareStatement(sql); ResultSet rs = st.executeQuery(); while (rs.next()) { Produto produto = new Produto(); int idProduto = rs.getInt("id_produto"); produto.setId(idProduto); produto.setTitulo(rs.getString("titulo")); produto.setQtde(rs.getInt("qtde")); produto.setSku(rs.getString("sku")); produto.setValor(rs.getDouble("valor")); produto.setImg(rs.getString("img")); produto.setCategoria(consultarCategoriasPorId(idProduto)); resultado.add(produto); } } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } finally { if (con != null) { try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } } return resultado; } public Produto consultarPorSku(String sku) { Produto produto = new Produto(); Connection con = null; try { con =