WebService Eclipse SOAP

6 respostas
TheKill

Bom dia galera,

Estou com um pouco de dificuldades para utilizar WebService para fazer testes
Alguem poderia me ajudar a dizer onde estou errando?

...
	static ConfigurationContext cfg;
	static ConsultaStub consulta;
...
public static void main(String[] args) {
...
try {
	consulta = new ConsultaStub(cfg);

} catch (RemoteException e) {
			e.printStackTrace();
...
		}
- Unable to sendViaGet to url[http://www.autocep.com.br/webcep/wsEndereco.asmx]
org.apache.axis2.AxisFault: Transport error: 404 Error: Not Found
	at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:310)
	at org.apache.axis2.transport.http.HTTPSender.sendViaGet(HTTPSender.java:104)
	at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:62)
	at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:400)
	at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:225)
	at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:435)
	at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402)
	at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
	at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
	at br.com.fontededados.ws.ConsultaStub.situacaoCadastralPF(ConsultaStub.java:1154)
	at br.com.fontededados.ws.Teste.main(Teste.java:31)
org.apache.axis2.AxisFault: Transport error: 404 Error: Not Found
	at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:310)
	at org.apache.axis2.transport.http.HTTPSender.sendViaGet(HTTPSender.java:104)
	at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:62)
	at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:400)
	at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:225)
	at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:435)
	at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402)
	at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
	at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
	at br.com.fontededados.ws.ConsultaStub.situacaoCadastralPF(ConsultaStub.java:1154)
	at br.com.fontededados.ws.Teste.main(Teste.java:31)

6 Respostas

Alexandre_Saudate

Então…

Eu ví que o WSDL em questão é de um serviço feito em .NET, certo? Acontece que os serviços desenvolvidos nesta plataforma têm uma tendência para enganar os desenvolvedores, e (em alguns casos) não expõem o endereço certo no WSDL (eu tendo a pensar por esse lado por causa do 404 que está ali no seu stack trace).

Para confirmar, tente utilizar uma ferramenta chamada Soap UI para consultar esse serviço. Caso você não consiga, também, quer dizer que pode ter algo errado com o serviço.

[]´s

TheKill

Acredito que não possa ser isso…

Pois no netbeans ele funciona

Alexandre_Saudate

TheKill:
Acredito que não possa ser isso…

Pois no netbeans ele funciona

O mesmo código? E as bibliotecas?

[]´s

TheKill

O mesmo codigo não porque o Netbeans gera o Esqueleto diferente do Eclipse.

Mas é o mesmo endereço nas duas situações. :wink:
Deve ser algo configurado incorretamente… Mas Valeu

F

Olá pessoal!

Primeiro, gostaria de pedir desculpas, caso o assunto não seja referente a esse tópico...

Segundo, estou desenvolvendo um webService simples no netbeans. Boa parte do código ele gera, bem como o wsdl. Bom, até ai tudo bem...O netbeans também gera e copia o wsdl para WEB-INF/wsdl, junto com um esquema...e ai que estou com problemas.

O cenário é o seguinte:
Tenho um webService que tem como entrada um string e concatena com outra e mostra isso na tela. Estou fazendo testes com uma app em PHP pra consumir esse serviço. A app enxerga o webService, lista o único método, porém quando passa a string pro webService é como se tivesse passado null, pois fica: Nome escolhido: null.

código do webService:

@WebService(wsdlLocation="WEB-INF/wsdl/WsNomeService.wsdl")
public class WsNome {

    /**
     * Operação de serviço web
     */
    @WebMethod(operationName = "sNome")
    public String sNome(@WebParam(name = "nome") String nome) {
        //TODO write your implementation code here:
        String retorno = new String();

        retorno = "Nome escolhido:" + nome;

        return retorno;
    }

}

eu vi que no wsdl em vez dele colocar no message ele coloca e define esse sNome, no esquema, como sendo um tipo complexo (e dessa estrutura ele define o parâmetro de entrada)

wsdl: ...
<message name="sNome">
    <part name="parameters" element="tns:sNome"/>
  </message>
....

schema:

...
<xs:element name="sNome" type="tns:sNome"/>
  

  <xs:element name="sNomeResponse" type="tns:sNomeResponse"/>
  

  <xs:complexType name="sNome">
    <xs:sequence>
      <xs:element name="nome" type="xs:string" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>
...

É isso pessoal, se puderem me dar uma força...estou empacado nessa parte. Como não havia trabalhado com webServices estou levando um laço nisso e penso que a solução deva ser algo simples só não estou vendo :)

Att.

ricardocomp

http://www.teses.usp.br/teses/disponiveis/55/55134/tde-24072012-164751/pt-br.php

Criado 17 de janeiro de 2011
Ultima resposta 26 de jul. de 2012
Respostas 6
Participantes 4