Boa tarde.
Estou tendando consumir um webservice em uma aplicação java desktop no Netbeans e estou recebendo o seguinte erro:
[b]
com.sun.xml.internal.ws.server.UnsupportedMediaException: Unsupported Content-Type: text/html; charset=utf-8 Supported ones are: [text/xml]
at com.sun.xml.internal.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:284)
at com.sun.xml.internal.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:118)
[/b]
Tentei criar uma aplicação web no netbeans imaginando que o problema poderia estar no retorno em html, mas não funcionou.
Alguem já passou por isso?
grato
Dica: O método que está sendo avaliado é “decode”, certo? Pergunta: quando faz sentido utilizar um decode numa comunicação com um web service? Resposta: no retorno da mensagem.
Traduzindo em miúdos: você está fazendo a invocação, a invocação está dando erro em algum lugar (provavelmente, o serviço está fora do ar), e a resposta está sendo devolvida como text/html (padrão de erros de servidor).
Sugiro fazer uma invocação utilizando SoapUI para entender o que está acontecendo ou, se for alguma encrenca que você realmente não esteja conseguindo “decifrar”, utilize o Wireshark.
[]'s
Este “erro” poderia ser causado pela não passagem de um parametro (obrigatório) ou parametro inválido?
[quote=rockstorm]Este “erro” poderia ser causado pela não passagem de um parametro (obrigatório) ou parametro inválido?
[/quote]
Dificilmente. Só se a falta desse parâmetro gerasse um erro interno do servidor.
Me desculpem por ressuscitar o tópico, amigos, mas a necessidade é grande.
Tenho uma classe WS com dois métodos: um retornando um objeto e outro uma List desses objetos. Acontece que o método que retorno o objeto (que é serializado) está funfando legal. Já quando rodo o método que deveria me retornar uma List, recebo o erro “com.sun.xml.internal.ws.server.UnsupportedMediaException: Unsupported Content-Type: text/html;charset=utf-8 Supported ones are: [text/xml]”.
Aqui vão meus códigos (se necessário, posso postar mais informações):
O provedor do serviço está assim:
@Name("produtoWebWS")
@Stateless
@WebService()
public class ProdutoWebWS {
ISTO FUNCIONA
@WebMethod()
@Begin
public GrupoProdutoWeb buscaGrupoProdutosWeb(Long id) throws Exception {
GrupoProdutoWeb retorno=null;
Lifecycle.beginCall();
try{
GrupoProdutoWebBO grupoProdutoWebBO = (GrupoProdutoWebBO) Component.getInstance("grupoProdutoWebBO");
retorno = grupoProdutoWebBO.buscaID(id);
}catch(Exception e){
e.printStackTrace();
throw new Exception("ERRO: "+e.getLocalizedMessage());
}
Lifecycle.endCall();
return retorno;
}
JA ISTO, ME RETORNA O ERRO CITADO NO CABECALHO DO POST
@WebMethod()
@Begin
public List<GrupoProdutoWeb> listaGruposProdutosWeb() throws Exception {
List<GrupoProdutoWeb> lista=null;
Lifecycle.beginCall();
try{
GrupoProdutoWebBO grupoProdutoWebBO = (GrupoProdutoWebBO) Component.getInstance("grupoProdutoWebBO");
lista = grupoProdutoWebBO.listarBO();
}catch(Exception e){
e.printStackTrace();
throw new Exception("ERRO: "+e.getLocalizedMessage());
}
Lifecycle.endCall();
return lista;
}
}
Aqui vai a parte pertinente (suponho) do cliente:
@ManagedBean(name = "testeMB")
@SessionScoped
public class Teste {
public GrupoProdutoWeb buscaGrupoProdutosWeb(Long id) {
org.jboss.samples.webservices.sigro.ProdutoWebWSService service = new org.jboss.samples.webservices.sigro.ProdutoWebWSService();
org.jboss.samples.webservices.sigro.ProdutoWebWS port = service.getProdutoWebWSPort();
try {
GrupoProdutoWeb i = port.buscaGrupoProdutosWeb((long) 1);
System.out.println(l);
return l;
} catch (Exception_Exception ex) {
Logger.getLogger(Teste.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
public List<GrupoProdutoWeb> listaGruposProdutosWeb() {
org.jboss.samples.webservices.sigro.ProdutoWebWSService service = new org.jboss.samples.webservices.sigro.ProdutoWebWSService();
org.jboss.samples.webservices.sigro.ProdutoWebWS port = service.getProdutoWebWSPort();
try {
List<GrupoProdutoWeb> l = port.listaGruposProdutosWeb();
System.out.println(l);
return l;
} catch (Exception_Exception ex) {
Logger.getLogger(Teste.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
}
/**
* This class was generated by the JAX-WS RI.
* JAX-WS RI 2.2.6-1b01
* Generated source version: 2.2
*
*/
@WebService(name = "ProdutoWebWS", targetNamespace = "http://sigro.webservices.samples.jboss.org/")
@XmlSeeAlso({
ObjectFactory.class
})
public interface ProdutoWebWS {
/**
*
* @return
* returns java.util.List<org.jboss.samples.webservices.sigro.GrupoProdutoWeb>
* @throws Exception_Exception
*/
@WebMethod
@WebResult(targetNamespace = "")
@RequestWrapper(localName = "listaGruposProdutosWeb", targetNamespace = "http://sigro.webservices.samples.jboss.org/", className = "org.jboss.samples.webservices.sigro.ListaGruposProdutosWeb")
@ResponseWrapper(localName = "listaGruposProdutosWebResponse", targetNamespace = "http://sigro.webservices.samples.jboss.org/", className = "org.jboss.samples.webservices.sigro.ListaGruposProdutosWebResponse")
public List<GrupoProdutoWeb> listaGruposProdutosWeb()
throws Exception_Exception
;
}
Alguém teria alguma dica?
Agradeço antecipadamente.