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...