Erro no cliente com um webservice em axis

2 respostas
L

Galera me ajudem eu criei um webservice com o axis, ele é um provedor de serviço para o Sistema ERP Protheus porém na hora que o protheus vai consumir o meu serviço dá um erro dizendo que o ws não está enviando o content-type em text/xml, como eu posso forçar isso no axis? vejam o erro que achei na net:

WSCERR067 / EMPTY WSDL Content-Type (HTTP_HEAD)
Revisão: 29/04/2004
Abrangência
Versão 7.10 Versão 8.11

WSCERR067 / EMPTY WSDL Content-Type (HTTP_HEAD) from
Esta ocorrência de erro é reproduzida, quando da geração de um fonte de WebServices ‘Client’, utilizando o Protheus IDE.
Esta ocorrência indica que, o header HTTP de retorno do WSDL, solicitado através do link , veio com o conteúdo do header HTTP sem a informação do tipo de conteúdo do documento (content-type). Um documento WSDL deve ser retornado pelo servidor de WebServices, informando no header HTTP um tipo de documento (content-type) definido como text/plain ou text/xml

Alguém sabe como resolver este problema?

2 Respostas

F

Cara seu entendi bem vc precisa setar o campo content type do cabeçalho http… veja como eu fiz aqui no meu webservice…

public static InputStream sendSOAPMessage(String servletUrl, String soapAction, String soapMessage) throws Exception {
	        byte stream[] = soapMessage.getBytes();
	        URL servletURL = new URL(servletUrl);
	        HttpURLConnection servletConnection = (HttpURLConnection) servletURL.openConnection();
	        servletConnection.setDoInput(true);
	        servletConnection.setDoOutput(true);
	        servletConnection.setRequestProperty("Content-type", "text/xml; charset=UTF-8"); <--- 
	        servletConnection.setRequestMethod("POST");
	        servletConnection.setRequestProperty("SOAPAction", soapAction);
	        servletConnection.setRequestProperty("Content-length", Integer.toString(stream.length));
	        sendSOAPMessage(servletConnection, soapMessage);
	        InputStream is = null;
	        try {
	            is = servletConnection.getInputStream();
	        } catch (IOException e) {
	            is = servletConnection.getErrorStream();
	        }
	        return is;
	    }
L

Olá amigo obrigado por responder mas no seu caso você está consumindo um webservice então por isso tem como setar ali antes de enviar, no meu caso eu que gerei o webservice e lá no cliente(ERP) do meu ws é que ta dando o erro como se o axis não estivesse enviando “text/xml” pra ele, como seto isso no axis, vc sabe?

Criado 29 de setembro de 2011
Ultima resposta 29 de set. de 2011
Respostas 2
Participantes 2