Problema consumindo Webservices Unsupported Content-Type: text/html;

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.