Erro ao inserir

3 respostas
D

galera, estou com o seguinte erro qdo tento inserir qualquer dado no banco de dados:

type Status report

message Dispatch[/cadSoftware] to method insert returned an exception

description The server encountered an internal error (Dispatch[/cadSoftware] to method insert returned an exception) that prevented it from fulfilling this request.

e no console do eclipse:

2006-07-31 14:49:28,018 ERROR [http-8080-Processor25] (DispatchAction.java:307) - Dispatch[/cadSoftware] to method insert returned an exception
java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:324)
	at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
	at br.web.action.BasicAction.dispatchMethod(BasicAction.java:155)
	at br.web.action.BasicAction.dispatch(BasicAction.java:128)
	at br.web.filter.FilterChain.doChain(FilterChain.java:60)
	at br.web.filter.paginate.PaginateFilter.doFilter(PaginateFilter.java:34)
	at br.web.filter.FilterChain.doChain(FilterChain.java:58)
	at br.web.action.BasicAction.execute(BasicAction.java:84)
	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
	at java.lang.Thread.run(Thread.java:534)
Caused by: java.lang.NoClassDefFoundError: br/blankproject/integration/vo/SoftwareResponsavelJVO
	at br.web.blankproject.view.action.cadastros.cadsoftware.SoftwareAction.insert(SoftwareAction.java:86)
	... 41 more

minha linha 86 do action, está com o seguinte parâmetro:

String[] cbresps = request.getParameterValues("cbresp");
        List listSoftwareResponsavel = new ArrayList();
        for(int i = 0; i < cbresps.length; i++) {
        	String codBanco = cbresps[i];
        	SoftwareResponsavelVO softwareResponsavel = new SoftwareResponsavelVO();
        	softwareResponsavel.setCodBanco(Integer.valueOf(codBanco));
        	listSoftwareResponsavel.add(codBanco);
        }
        softwareVO.setSoftwareResponsavel(listSoftwareResponsavel);

Tem mais algum lugar q eu preciso declarar o array?? Alguém pode me dar uma luz do que eu estou fazendo de errado por favor??

[]'s

3 Respostas

ldanielts

Oi,

O que é SoftwareResponsavelJVO? Caused by: java.lang.NoClassDefFoundError: br/blankproject/integration/vo/SoftwareResponsavelJVO

Você tem certeza que tem esse JVO como sufixo, pois o que eu te vi manipulando foi ***VO.

Um abraço.

D

Olá amigo…resolvi este problema…dei um redeploy no tomcat e o bicho quase funcionou :smiley:

Não tinha erro acima, foi só a questão do redeploy…e o JVO é outro o VO de outro arquivo, pq eu tinha removido o SoftwareResponsavelVO para ver se funcionava e deu este erro…acabei postando o VO errado :oops:

Agora deu outro erro:

Tipo de Mensagem: ALL - java.lang.NumberFormatException 
Horário: Mon Jul 31 15:46:54 BRT 2006 
 
Descrição: For input string: "" 
Detalhes:   URL:  http://localhost:8080/blankProject/cadSoftware.do
Referrer: http://localhost:8080/blankProject/cadSoftware.do

Parâmetro:   
fabricante: 8
desenvolvimento: 8
versoes: 8
metodo: insert
fornec: 
pacote: 8
versao: 8
observacao: 8
cjresp: 
resetForm: undefined
plataforma: 8
cbresp: 
sistemas: 8
lastMethod: showInsert
cjuser: 
beneficios: 8
cbuser: 
path: /blankProject
descricao: 8
id: 8
implicacao: 8
oquefaz: 8
soft: 8
renovacao: 88
chamados: 8
licenca: 8
negocio: 8

Stack Trace:   
java.lang.NumberFormatException: For input string: "" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) at java.lang.Integer.parseInt(Integer.java:489) at java.lang.Integer.valueOf(Integer.java:574) at br.web.blankproject.view.action.cadastros.cadsoftware.SoftwareAction.insert(SoftwareAction.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280) at br.web.action.BasicAction.dispatchMethod(BasicAction.java:155) at br.web.action.BasicAction.dispatch(BasicAction.java:128) at br.web.filter.FilterChain.doChain(FilterChain.java:60) at br.web.filter.paginate.PaginateFilter.doFilter(PaginateFilter.java:34) at br.web.filter.FilterChain.doChain(FilterChain.java:58) at br.web.action.BasicAction.execute(BasicAction.java:84) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:534)

Eu entendi que o erro é por causa do formato inválido, isso??

Na linha 77, está assim:

String[] fornecs = request.getParameterValues("fornec");
        List listSoftwareFornecedor = new ArrayList();
        for(int i = 0; i < fornecs.length; i++) {
        	String codFornecedor = fornecs[i];
        	SoftwareFornecedorVO softwareFornecedor = new SoftwareFornecedorVO();
        	softwareFornecedor.setCodFornecedor(Integer.valueOf(codFornecedor));
        	listSoftwareFornecedor.add(codFornecedor);
        }
        softwareVO.setSoftwareFornecedor(listSoftwareFornecedor);

eno SoftwareFornecedorVO, está assim a variável codFornecedor:

public class SoftwareFornecedorVO extends SoftwareVO {
	public Integer codSoftware;
	public Integer codFornecedor;
	
	public Integer getCodSoftware(){
		return codSoftware;
	}
	
	public void setCodSoftware(Integer codSoftware){
		this.codSoftware = codSoftware;
	}
	
	public Integer getCodFornecedor() {
		return codFornecedor;
	}
	
	public void setCodFornecedor(Integer codFornecedor){
		this.codFornecedor = codFornecedor;
	}
}

Está correto?

ldanielts

Oi, Davi

Na verdade, mais que formato inválido, não há nada lá. A string vazia indica que você não conseguiu obter o que estava esperando.

Note que no VO que você passou, tanto fornec, quanto cjresp, quanto cbresp estão vazios. Especificamente, o erro está acontecendo porque algum (ou alguns) dos códigos de fornecedor que você está recebendo está vazio. Se eles requerem um valor, esta situação provocará erro com certeza. Você deve verificar o que está recebendo e descobrir porque isto está acontecendo.

Mas, caso eles possam não ter valor (possam ser NULL no BD), você deve tratar o que está recebendo. Por exemplo, dentro do seu for:

if ((codFornecedor != null) && (!"".equals(codFornecedor.trim()))) { softwareFornecedor.setCodFornecedor(Integer.valueOf(codFornecedor)); } else { /* faça alguma coisa, lance uma exceção, logue ou inclua uma warning, ou até mesmo, faça softwareFornecedor.setCodFornecedor(new Integer(0)); */ } listSoftwareFornecedor.add(codFornecedor);

Um abraço.

Criado 31 de julho de 2006
Ultima resposta 31 de jul. de 2006
Respostas 3
Participantes 2