Pessoal, boa tarde, estou com problemas em uma classe, estou tentando fazer o seguinte, caso a situacao do cliente seja consulente, pegar o idcontato da tabela contato referente ao nomecompleto do consulente, caso ele ja esteja cadastrado no sistema, pegar, caso nao, adicionar o contato e pegar o idcontato e adicionar a tabela pgto, caso nao seja consulente, pagar normalmente a matricula, porem ha uns erros, funciona normalmente se o cliente ja estiver cadastrado no sistema, se nao estiver cadastrado há o erro, segue o codigo:
public void pagaDiversos(Contato contato) throws Exception {
String sql3 = "select idorigem from origemPagamento where origemPagamento = ?";
PreparedStatement stmt3;
stmt3 = connection.prepareStatement(sql3);
stmt3.setString(1, contato.getPagamento().getOrigemPagamento());
ResultSet rs3 = stmt3.executeQuery();
if(rs3.next()){
contato.getPagamento().setIdOrigemPagamento(rs3.getInt("idorigem"));
}
PreparedStatement stmt;
if(contato.getSituacao().equals("Consulente")){
//PreparedStatement stmt5 = null;
String sql1 = "select idcontato from contato where nomecompleto= ?";
stmt = connection.prepareStatement(sql1);
stmt.setString(1, contato.getNomecompleto());
stmt.execute();
ResultSet rs1 = stmt.executeQuery();
if(rs1 != null) {
String sql4 = "select idcontato from contato where nomecompleto =?";
stmt = connection.prepareStatement(sql4);
stmt.setString(1, contato.getNomecompleto());
ResultSet rs4 = stmt.executeQuery();
if(rs4.next()){
contato.setId_contato(rs4.getInt("idcontato"));
}
String queryMensalidade = "Insert into pgto values(null,?,null,?,?,?,?)";
stmt = connection.prepareStatement(queryMensalidade);
stmt.setInt(1, contato.getId_contato());
stmt.setInt(2, contato.getPagamento().getIdOrigemPagamento());
stmt.setDate(3, new Date(contato.getPagamento().getDt_pagamento().getTimeInMillis()));
stmt.setFloat(4, contato.getPagamento().getValorpagamento());
stmt.setString(5, contato.getPagamento().getFormaPagamento());
stmt.execute();
stmt.clearParameters();
} else {
System.out.println(contato.getNomecompleto());
String sql2 = "insert into contato values(null,'0',?,null,null,null,null,null,null,null,null,?)";
stmt = connection.prepareStatement(sql2);
stmt.setString(1, contato.getNomecompleto());
stmt.setString(2, contato.getSituacao());
stmt.execute();
String sql4 = "select idcontato from contato where nomecompleto =?";
stmt = connection.prepareStatement(sql4);
stmt.setString(1, contato.getNomecompleto());
ResultSet rs4 = stmt.executeQuery();
if(rs4.next()){
contato.setId_contato(rs4.getInt("idcontato"));
}
String queryMensalidade = "Insert into pgto values(null,?,null,?,?,?,?)";
stmt = connection.prepareStatement(queryMensalidade);
stmt.setInt(1, contato.getId_contato());
stmt.setInt(2, contato.getPagamento().getIdOrigemPagamento());
stmt.setDate(3, new Date(contato.getPagamento().getDt_pagamento().getTimeInMillis()));
stmt.setFloat(4, contato.getPagamento().getValorpagamento());
stmt.setString(5, contato.getPagamento().getFormaPagamento());
stmt.execute();
stmt.clearParameters();
}
} else {
System.out.println(contato.getNomecompleto());
String queryMensalidade = "Insert into pgto values(null,?,null,?,?,?,?)";
stmt = connection.prepareStatement(queryMensalidade);
stmt.setInt(1, contato.getId_contato());
stmt.setInt(2, contato.getPagamento().getIdOrigemPagamento());
stmt.setDate(3, new Date(contato.getPagamento().getDt_pagamento().getTimeInMillis()));
stmt.setFloat(4, contato.getPagamento().getValorpagamento());
stmt.setString(5, contato.getPagamento().getFormaPagamento());
stmt.execute();
stmt.clearParameters();
}
}
agora o jsp
<script language="JavaScript">
function pergunta(){
if (confirm('Confirma Pagamento??')){
document.cadastro.submit();
}
}
</script>
<script type="text/javascript">
$(document).ready(function(){
$("#button_busca").click(function () {
$("form").submit(function () { return false; });
var matricula = $("#matricula").val();
$.ajax({
type: "POST",
url: "/SistemaMensalidades/selecDiversos",
data: "matricula="+matricula,
success: function(html){
$("body").html(html);
}
});
});
});
</script>
<form>
<fieldset>
<legend>Pagamentos Diversos</legend>
<dl>
<dt><label for="matricula">Digite a Matricula</label>
<input type="text" name="matricula" id="matricula" />
<button id="button_busca">Busca</button>
</dt>
</dl>
</fieldset>
</form>
<div id="body">
<form id="cadastro" name="cadastro" method="post" action="diversos">
<p>
<input type="hidden" name="contato.id_contato" id="contato.id_contato" value="${contato.id_contato}"/>
<label>Matrícula:
<input name="contato.matricula" type="text" id="contato.matricula" size="5" value="${contato.matricula}"/>
</label>
<label>Situação:</label>
<select id="contato.situacao" name="contato.situacao">
<option>${contato.situacao}</option>
<option>Ativo</option>
<option>Suspenso</option>
<option>Consulente</option>
</select>
</p>
<p>
<br/><label>Nome Completo:</label>
<input name="contato.nomecompleto" type="text" id="contato.nomecompleto" value="${contato.nomecompleto}" /><p>
e o stacktrace
WARNING: Error setting expression 'contato.id_contato' with value '[Ljava.lang.String;@bdb375'
ognl.MethodFailedException: Method "setId_contato" failed for object br.com.sistema.Classes.Contato@9c22ff [java.lang.NoSuchMethodException: br.com.sistema.Classes.Contato.setId_contato([Ljava.lang.String;)]
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1285)
at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:1474)
at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:85)
at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:162)
at com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.setProperty(ObjectAccessor.java:27)
at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2245)
at ognl.ASTProperty.setValueBody(ASTProperty.java:127)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:636)
Caused by: java.lang.NoSuchMethodException: br.com.sistema.Classes.Contato.setId_contato([Ljava.lang.String;)
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1226)
... 66 more
/-- Encapsulated exception ------------\
java.lang.NoSuchMethodException: br.com.sistema.Classes.Contato.setId_contato([Ljava.lang.String;)
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1226)
at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:1474)
at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:85)
at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:162)
at com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.setProperty(ObjectAccessor.java:27)
at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2245)
at ognl.ASTProperty.setValueBody(ASTProperty.java:127)
at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
at ognl.SimpleNode.setValue(SimpleNode.java:301)
at ognl.ASTChain.setValueBody(ASTChain.java:227)
at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
at ognl.SimpleNode.setValue(SimpleNode.java:301)
at ognl.Ognl.setValue(Ognl.java:737)
at com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:209)
at com.opensymphony.xwork2.ognl.OgnlValueStack.trySetValue(OgnlValueStack.java:173)
at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:160)
at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:151)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.setParameters(ParametersInterceptor.java:288)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:199)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:636)
\--------------------------------------/
08/11/2010 12:19:08 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
WARNING: Error setting expression 'contato.matricula' with value '[Ljava.lang.String;@51064e'
ognl.MethodFailedException: Method "setMatricula" failed for object br.com.sistema.Classes.Contato@9c22ff [java.lang.NoSuchMethodException: br.com.sistema.Classes.Contato.setMatricula([Ljava.lang.String;)]
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1285)
at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:1474)
at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:85)
at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:162)
at com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.setProperty(ObjectAccessor.java:27)
at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2245)
at ognl.ASTProperty.setValueBody(ASTProperty.java:127)
at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
at ognl.SimpleNode.setValue(SimpleNode.java:301)
at ognl.ASTChain.setValueBody(ASTChain.java:227)
at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:636)
Caused by: java.lang.NoSuchMethodException: br.com.sistema.Classes.Contato.setMatricula([Ljava.lang.String;)
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1226)
... 66 more
/-- Encapsulated exception ------------\
java.lang.NoSuchMethodException: br.com.sistema.Classes.Contato.setMatricula([Ljava.lang.String;)
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1226)
at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:1474)
at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:85)
at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:162)
at com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.setProperty(ObjectAccessor.java:27)
at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2245)
at ognl.ASTProperty.setValueBody(ASTProperty.java:127)
at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
at ognl.SimpleNode.setValue(SimpleNode.java:301)
at ognl.ASTChain.setValueBody(ASTChain.java:227)
at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
at ognl.SimpleNode.setValue(SimpleNode.java:301)
at ognl.Ognl.setValue(Ognl.java:737)