Amigos,
Estou fazendo um trabalho da faculdade utilizando WebServices.
O trabalho se resume em:
a) Criar uma tabela ".mdb" com o nome produtos, com os campos: codigo, nome, descrição, quantidade e preço;
b) Iniciar um novo projeto dinâmico e criar um webservice nele, com duas classes: uma de conexão ao banco e outra para movimentação dos produtos (incluir, excluir, alterar, consultar, etc);
c) Iniciar outro projeto dinâmico e criar um client (webservice) utilizando uma página "jsp" para interagir com o banco. No primeiro momento foi apenas criado um formulario para inserção dos dados.
Não estou conseguindo fazer a inclusão dos dados, está dando um erro no método "adicionarProd" - Erro: The server encountered an internal error () that prevented it from fulfilling this request.
Segue abaixo os meus fontes para ver se alguém me dá uma luz:
index.jsp
---------
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="eu.teste.*"%>
<%
String acao = request.getParameter("cadastrar");
if ("cadastrar".equals(acao)){
MovProdutos server = new MovProdutosServiceLocator().getMovProdutos();
String nome = request.getParameter("nome");
String descricao = request.getParameter("descricao");
String qtde = request.getParameter("qtd");
String precounit = request.getParameter("preco");
int qtd = Integer.parseInt(qtde);
double preco = Double.valueOf(precounit);
server.adicionarProd(nome,descricao,qtd,preco);
out.println("Produto Inserido!");
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Produtos On-Line</title>
</head>
<body>
<font face="verdana" size="4" color="red">INSERIR PRODUTOS:</font>
<form name="InserirProd" action="index.jsp" method="post">
Nome<input type="text" name="nome"><BR>
Descrição<input type="text" name="descricao"><BR>
Quantidade<input type="text" name="qtd"><BR>
Preço<input type="text" name="preco"><BR>
<input name="cadastrar" type="submit" value="cadastrar"></form>
</body>
</html>
package eu.teste;
import java.sql.Connection;
import java.sql.DriverManager;
public class DBUtil {
private static Connection conn;
public static Connection getConnection(){
if (conn != null) return conn;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Users\Sergio\Desktop\workspace1604\ServidorProdutos\produtos.mdb");
return conn;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
package eu.teste;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import eu.teste.DBUtil;
public class MovProdutos {
public int adicionarProd(String nome, String descricao, int qtd, double preco) throws SQLException {
Connection conn = DBUtil.getConnection();
PreparedStatement pstmt = conn
.prepareStatement("INSERT INTO PRODUTOS(NOME,DESCRICAO,QTD,PRECO) VALUES(?,?,?,?)");
//primeiro campo da tabela é com autonumeração
pstmt.setString(2, nome);
pstmt.setString(3, descricao);
pstmt.setInt(4, qtd);
pstmt.setDouble(5, preco);
pstmt.execute();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select max(codigo) from produtos");
return rs.getInt(1);
}
}