1
resposta

Erro java.lang.reflect.InvocationTargetException

Olá! Criei a classe InfoFault, exercício da Opinião do Instrutor:

package br.com.caelum.estoque.modelo.usuario;

import java.sql.Date;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;

@XmlAccessorType(XmlAccessType.FIELD)
public class InfoFault {

    private Date dataErro;
    private String mensagem;

    public InfoFault(String mensagem, Date dataErro) {
        this.mensagem = mensagem;
        this.dataErro = dataErro;
    }

    //JAX-B precisa
    InfoFault() {
    }

    public Date getDataErro() {
        return dataErro;
    }

    public void setDataErro(Date dataErro) {
        this.dataErro = dataErro;
    }

    public String getMensagem() {
        return mensagem;
    }

    public void setMensagem(String mensagem) {
        this.mensagem = mensagem;
    }

}

Alterei a classe AuthorizationException:

package br.com.caelum.estoque.modelo.usuario;

import java.util.Date;


import javax.xml.ws.WebFault;

@WebFault(name="AutorizacaoFault", messageName="AutorizacaoFault")
public class AuthorizationException extends Exception {


    public AuthorizationException(String mensagem) {
        super(mensagem);
    }
//alteração aqui
    public InfoFault getFault() {
         return new InfoFault("Token invalido" , (java.sql.Date) new Date());
    }

}

A informação de entrada para o SoapUI é a seguinte:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.estoque.caelum.com.br/">
   <soapenv:Header>
      <ws:tokenUsuario>
         <!--Optional:-->
         <dataValidade>2012-02-02</dataValidade>
         <!--Optional:-->
         <token>Não existe</token>
      </ws:tokenUsuario>
   </soapenv:Header>
   <soapenv:Body>
      <ws:CadastrarItens>
         <!--Optional:-->
         <item>
            <!--Optional:-->
            <codigo>MEAN</codigo>
            <!--Optional:-->
            <nome>MEAN</nome>
            <quantidade>4</quantidade>
            <!--Optional:-->
            <tipo>Livro</tipo>
         </item>
      </ws:CadastrarItens>
   </soapenv:Body>
</soapenv:Envelope>

Porém, quando eu executo no SoapUI ao invés de aparecer as informações do e do , aparece a seguinte informação:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
         <faultcode>S:Server</faultcode>
         <faultstring>java.lang.reflect.InvocationTargetException</faultstring>
      </S:Fault>
   </S:Body>
</S:Envelope>

Eu já verifiquei, não dá erro algum no console do eclipse, portanto eu não sei o que possa estar ocorrendo. Alguém saberia? Poderia me ajudar?

Abs...

1 resposta

Olá,

Tentei reproduzir seu problema, mas sem sucesso.

Você poderia subir sua aplicação no github pra eu dar uma olhada?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software