Erro ao rodar aplicação!

10 respostas
D

Bom dia :smiley:

Não estou conseguindo rodar minha aplicação, o eclipse me dá o seguinte log:

java.util.logging.ErrorManager: 0
java.lang.Exception: Não foi possivel obter a propriedade de sistema 'brad.logpath'.
	at mapl.util.logging.MAPLFileHandler.inferirCaminhoLog(MAPLFileHandler.java:433)
	at mapl.util.logging.MAPLFileHandler.<init>(MAPLFileHandler.java:169)
	at mapl.util.logging.http.TrataErroClass.<init>(TrataErroClass.java:70)
	at mapl.action.TrataErroAction.<init>(TrataErroAction.java:26)
	at gpbr.web.action.BasicAction.dispatchMethod(BasicAction.java:163)
	at gpbr.web.action.BasicAction.dispatch(BasicAction.java:128)
	at gpbr.web.filter.FilterChain.doChain(FilterChain.java:60)
	at gpbr.web.filter.paginate.PaginateFilter.doFilter(PaginateFilter.java:34)
	at gpbr.web.filter.FilterChain.doChain(FilterChain.java:58)
	at gpbr.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)

E quando eu clico nos detalhes e depois em ‘stacktrace’ do aplicativo, aparece:

java.lang.NullPointerException at br.web.blankproject.view.action.cadastros.cadsoftware.SoftwareAction.insert(SoftwareAction.java:69) 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)

se precisar de mais alguma coisa do código, é só pedir! :slight_smile:

Alguém tem alguma idéia pq está acontecendo isso?

[]'s

10 Respostas

cassio

Eu não vi seu código, vc poderia postá-lo…
Mas acho que em alguma parte vc está usando System.getProperty(“brad.logpath”) ou algo do tipo, não?!
Porque essa propriedade não existe por default, a não ser que vc a crie… Como nào existe, quando vc da um getProperty() assim, ele retorna null…
Esta parece ser a causa do seu problema…
Talvez eu esteja errado… ehehehe Estou apenas supondo ja q não vi seu código :slight_smile:

Falou!

D

bom dia :slight_smile:

vou postar as 3 partes do código que eu mexi e que resultou neste erro:

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;
	}
}
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;
	}
}
public class SoftwareAction extends CadAction {

    protected BusinessDelegate getBusinessDelegate() {
        return new SoftwareBusinessDelegate();
    }

    public ActionForward showInsert(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
        return mapping.findForward("insCadSoftware");
    }

    public ActionForward showDetail(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws brPersistException, WebActionException {
        try {
        	SoftwareVO softwareVO = (SoftwareVO) getBusinessDelegate().findById(((PersistentObjectGenerate)form).getPersistentObj());
            request.setAttribute("softwareVO", softwareVO);
        } catch (brPersistException e) {
            throw new brPersistException("Erro ao fazer consulta de Software.", e);
        }
        return mapping.findForward("detailCadSoftware");
    }

    public ActionForward pesquisar(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws WebActionException {
        try {
        	SoftwareBusinessDelegate softwareBusinessDelegate = (SoftwareBusinessDelegate) getBusinessDelegate();
            Serializable showSoft = (Serializable) softwareBusinessDelegate.findSoftwareById(((PersistentObjectGenerate)form).getPersistentObj());
            request.setAttribute(BasicAction.TABLE_DATA_ATTRIBUTE, showSoft);

        } catch (brPersistException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return mapping.findForward("showCadSoftware");
    }

    public ActionForward insert(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws WebActionException, brBusinessException {
        BusinessDelegate delegate = getBusinessDelegate();
        Serializable serializable = null;
        SoftwareVO softwareVO = (SoftwareVO) ((FormBean) form).getPersistentObj();
        String[] fornecs = request.getParameterValues("fornec");
        List listSoftwareFornecedor = new ArrayList();
        for(int i = 0; i < fornecs.length; i++) {
        	String codFornecedor = fornecs[i];
        	SoftwareFornecedorVO sof = new SoftwareFornecedorVO();
        	sof.setCodFornecedor(Integer.valueOf(codFornecedor));
        	listSoftwareFornecedor.add(codFornecedor);
        }
        softwareVO.setSoftwareFornecedor(listSoftwareFornecedor);
        try {
            serializable = delegate.insert(softwareVO);
        } catch (brPersistException e) {
            throw new WebActionException("Erro ao inserir registro", e);
        }
        cleanSession(mapping, form, request);
        request.setAttribute(BasicAction.MESSAGE_ATTRIBUTE, "Inclusão realizada com sucesso!");
        return dispatch(mapping, form, request, response, CommandTypeConstants.INSERIR);
    }

    public ActionForward showAction(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws WebActionException {
        try {
            super.startPagination(request, "");
            Collection listSoftware = getBusinessDelegate().findAll(((FormBean)form).getPersistentObj());
            request.setAttribute(BasicAction.TABLE_DATA_ATTRIBUTE, listSoftware);
            super.stopPagination();
        } catch (brPersistException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return mapping.findForward("showCadSoftware");
    }

    public String forwardTo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response, String commandType) {
        return "showAction";
    }
}

Ta aí…eu acho que não falta nada, mas não sei direito…to começando nisso hehe

ldanielts

Oi,

Aparentemente, uma das duas instruções abaixo pode não estar trazendo o objeto que você espera.

SoftwareVO softwareVO = (SoftwareVO) ((FormBean) form).getPersistentObj();
         String[] fornecs = request.getParameterValues("fornec");

Verifique se softwareVO e fornecs estão mesmo preenchidos (em qualquer situação), pois você as está usando abaixo como se fosse garantido que fossem (não sei se são ou se não são, mas é um palpite).

Sugestão:

if (fornecs != null) {
for(int i = 0; i < fornecs.length; i++) {
         	String codFornecedor = fornecs[i];
         	SoftwareFornecedorVO sof = new SoftwareFornecedorVO();
         	sof.setCodFornecedor(Integer.valueOf(codFornecedor));
         	listSoftwareFornecedor.add(codFornecedor);
         }
} else {
      // TODO faça alguma outra coisa
}
if (softwareVO != null) {
         softwareVO.setSoftwareFornecedor(listSoftwareFornecedor);
} else {
        /* TODO faça alguma outra coisa, lance uma exceção, avise ao usuário, verifique o que veio antes, sei lá. */
}

Um abraço.

cassio

Neste trecho que vc colou ai não tem nenhuma parte que use a propriedade q eu falei, mas vc colou duas vezes o mesmo código, entào ao invés de enviar 3 classes, só enviou 2… Se não estiver na outra classe eu não sei o que pode estar havendo… é complicado ver uma parte da aplicação assim sem saber do contexto todo…
cola ai a parte q faltou, quem sabe dá pra te ajudar :slight_smile:

D

IUHEiAHeiuhaUIe entrei em looping até que erro seja igual a 0

agora vai:

public class SoftwareVO extends ValueObject {
    public Integer id;
    public String soft = "";
    public String descricao = "";
    public String fabricante = "";
    public String versao = "";
    public String pacote = "";
    public String negocio = "";
    public String licenca = "";
    public String desenvolvimento = "";
    public String versoes = "";
    public String plataforma = "";
    public String chamados = "";
    
    public Integer fornec;
    public String cbresp = "";
    public String cjresp = "";
    public String cbuser = "";
    public String cjuser = "";
    
    public String observacao = "";
    public String oquefaz = "";
    public String beneficios = "";
    public String sistemas = "";
    public String renovacao = "";
    public String implicacao = "";
    
    private List softwareFornecedor;

    public List getSoftwareFornecedor() {
		return softwareFornecedor;
	}

	public void setSoftwareFornecedor(List softwareFornecedor) {
		this.softwareFornecedor = softwareFornecedor;
	}

	public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
    	if(softwareFornecedor != null) {
    		Iterator i = softwareFornecedor.iterator();
    		while(i.hasNext()) {
    			SoftwareFornecedorVO softwareFornecedor = (SoftwareFornecedorVO) i.next();
    			softwareFornecedor.setCodSoftware(id);
    		}
    	}
        this.id = id;
    }
    public String getSoft(){
    	return soft;
        }
    public void setSoft(String soft){
    	this.soft = soft;
    }
    
    public String getDescricao(){
    	return descricao;
    }
    
    public void setDescricao(String descricao){
    	this.descricao = descricao;
    }
    
    public String getFabricante(){
    	return fabricante;
    }
    
    public void setFabricante(String fabricante) {
    	this.fabricante = fabricante;
    }
    
    public String getVersao(){
    	return versao;
    }
    
    public void setVersao(String versao){
    	this.versao = versao;
    }
    
    public String getPacote(){
    	return pacote;
    }
    
    public void setPacote(String pacote){
    	this.pacote = pacote;
    }

    public String getNegocio(){
    	return negocio;
    }
    
    public void setNegocio(String negocio){
    	this.negocio = negocio;
    }
    
    public String getLicenca(){
    	return licenca;
    }
    
    public void setLicenca(String licenca){
    	this.licenca = licenca;
    }
    
    public String getDesenvolvimento(){
    	return desenvolvimento;
    }
    
    public void setDesenvolvimento(String desenvolvimento){
    	this.desenvolvimento = desenvolvimento;
    }

    public String getVersoes(){
    	return versoes;
    }
    
    public void setVersoes(String ultimaver){
    	this.versoes = ultimaver;
    }
    
    public String getPlataforma(){
    	return plataforma;
    }
    
    public void setPlataforma(String plataforma){
    	this.plataforma = plataforma;
    }
    
    public String getChamados(){
    	return chamados;
    }
    
    public void setChamados(String chamados){
    	this.chamados = chamados;
    }
   
    public Integer getFornec() {
    	return fornec;
    }
    
    public void setFornec(Integer fornec) {
    	this.fornec = fornec;
    }
    
    public String getCbresp() {
    	return cbresp;
    }
    
    public void setCbresp(String cbresp) {
    	this.cbresp = cbresp;
    }
    
    public String getCjresp(){
    	return cjresp;
    }
    
    public void setCjresp(String cjresp){
    	this.cjresp = cjresp;
    }
    
    public String getCbuser(){
    	return cbuser;
    }
    
    public void setCbuser(String cbuser){
    	this.cbuser = cbuser;
    }
    
    public String getCjuser(){
    	return cjuser;
    }
    
    public void setCjuser(String cjuser){
    	this.cjuser = cjuser;
    }
    
    public String getObservacao(){
    	return observacao;
    }
    
    public void setObservacao(String observacao){
    	this.observacao = observacao;
    }
    
    public String getOquefaz(){
    	return oquefaz;
    }
    
    public void setOquefaz(String oquefaz){
    	this.oquefaz = oquefaz;
    }
    
    public String getBeneficios(){
    	return beneficios;
    }
    
    public void setBeneficios(String beneficios){
    	this.beneficios = beneficios;
    }
    
    public String getSistemas(){
    	return sistemas;
    }
    
    public void setSistemas(String sistemas){
    	this.sistemas = sistemas;
    }
    
    public String getRenovacao(){
    	return renovacao;
    }
    
    public void setRenovacao(String renovacao){
    	this.renovacao = renovacao;
    }
    
    public String getImplicacao(){
    	return implicacao;
    }
    
    public void setImplicacao(String implicacao){
    	this.implicacao = implicacao;
    }
    public String[] getRelationshipAttributes() {
        return new String[] {"softwareFornecedor"};
    }

}

Daniel,

Eu acho que o provlema esta naquele String[], pq ali seria pra mostrar os valores correto?

ldanielts

Eu acho que o problema está no trecho em que eu falei anteriormente mesmo.

A propriedade do sistema deve estar sendo adquirida (na verdade, não adquirida) em algum outro ponto anterior da aplicação e causando erro em algum outro lugar que ele ainda não descobriu. Pode até mesmo ser a causa do valor de fornecs ou de softwareVO não estar sendo adquirido corretamente e provocar o NullPointer mais adiante.

Qual a instrução que está na linha 69 de SoftwareAction? Não vou contar, não. Se não der pra debugar e saber o que é que está faltando quando chegar nessa linha, coloque pelo menos (e depois tire, por favor) um System.out.println lá.

Um abraço.

D

na linha 69 começa o meu laço for…q pelo jeito tá errado! rs

vou almoçar agora, qdo voltar, vou sentar aki e destruir o código e arurmar ele :twisted:

nao vou debugar pq eu não sei! rs…vou tentar ir no olhometro!!

D

uma coisa estranha: eu removi o insert do action e deixei apenas o insert do framework…antes tava funcionando direitinho o insert do framework e tentei inserir dados e recebi zilhões de erros:

2006-07-27 11:28:37,974 ERROR [http-8080-Processor23] (LogComponent.java:92) - Erro ao executar Procedure de selectAll para o persistence object gpbr.blankproject.integration.vo.SoftwareVO
java.lang.IllegalArgumentException: argument type mismatch

br.core.basic.bo.persistence.exception.brPersistException: Erro na chamada do método

Caused by: br.core.basic.bo.persistence.exception.brPersistException: Erro ao executar Procedure de selectAll para o persistence object br.blankproject.integration.vo.SoftwareVO - argument type mismatch
ldanielts

Oi,

Não entendi nada do último erro que você colocou.

Pelo que estamos concluindo request.getParameterValues(“fornec”) não está retornando nada, ou seja, fornecs fica nulo. No momento em que você inicia o for, você tenta iterar até o tamanho de fornec (fornec.length), mas, como fornec está nulo, uma NullPointerException é lançada.

O código que eu te enviei deixa o software mais seguro e você deveria usá-lo, mas ainda não resolve o problema.

O que você tem que fazer é descobrir por que não está achando o que espera com request.getParameterValues(“fornec”). Provavelmente, não está passando estes parâmetros corretamente.

P.S. Se você debugasse ia ficar muito mais feliz. :slight_smile:

Um abraço.

D

mas não seii debugar hehe

eu coloco o breakpoint, a plaicação para no break…só q eu não entendo nada de estar certo ou errado qdo eu debugo!

Criado 27 de julho de 2006
Ultima resposta 27 de jul. de 2006
Respostas 10
Participantes 3