Criar cliente java com jax-ws sem arquivo wsdl

eu tenho um endpoint http://localhost:6000 que redireciona para um webservice. Gerei os stubs com o jax-ws wsconsume usando o wsdl que vai ser redirecionado ex. http://localhost:8080/contexto/meuWS?wsdl. Depois editei o stub gerado e tirei onde tem o endereco do wsdl e botei http://localhost:6000. Entao qdo vou executar da erro

É possível eu fazer o cliente sem chamar diretamente o wsdl ? Com o php foi possível fazer, agora tenho que fazer no java…

[code]
Exception in thread “main” com.sun.xml.ws.wsdl.parser.InaccessibleWSDLException: 2 counts of InaccessibleWSDLException.
java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:6000
java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:6000?wsdl

at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(RuntimeWSDLParser.java:172)
at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:144)
at com.sun.xml.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:263)
at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:226)
at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:174)
at com.sun.xml.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:104)
at javax.xml.ws.Service.<init>(Service.java:56)
at br.pessoa.ws.client.PessoaWSService.<init>(PessoaWSService.java:46)
at br.pessoa.ws.client.Teste.main(Teste.java:58)[/code]

Para criar as classes clientes, voce precisa do wsdl que eh a descricao do servico. O cliente eh criado a partir dessa descricao.
Uma vez criado os clientes, voce nao precisa mais do wsdl, mas sim do ServiceLocator.

Exemplo.

[code]public class DepotAdminServiceLocator extends org.apache.axis.client.Service implements com.expd.service.depotadmin.DepotAdminService {

// Localizacao do servico, nao do wsdl.
private java.lang.String DepotAdminServicePort_address = "http://vizqa01.chq.ei:8121/depotadmin/DepotAdminService";

}[/code]

mas meu arquivo gerado tem esse trecho onde gera o erro

[code] try {
URL baseUrl;
baseUrl = PessoaWSService.class.getResource(".");
url = new URL(baseUrl, “http://localhost:6000”); //troquei aqui

    } catch (MalformedURLException e) {[/code]

A localizacao do seu web service eh na url:

http://localhost:8080/contexto/meuWS

Nao utilize http://localhost:6000

o meu caso é um pouco diferente.

estou usando jboss esb e nao conecto direto no webservice. Primeiro conecto no esb(http://meudominio.com.br/contexto:6000) ao acessar esse endereco é redirecionado para o WS.

Com php eu consigo acessar sem precisar informar o wsdl, apenas o endpoint http://meudominio.com.br/contexto:6000

$client = new SoapClient(null, array( 'location' => "http://localhost:6000", 'uri' => "http://localhost:6000", 'style' => SOAP_DOCUMENT, 'use' => SOAP_LITERAL, 'trace'=>true, 'soap_version' => SOAP_1_2));

Voce ja tentou criar o soap client contectando no http://localhost:6000 ao inves do wsdl?

já tentei, o wsimport da erro, ele pede um endereco que tenha wsdl

thanks

Voce ja testou com SoapUI? Eh um cliente SOA para testar Web Services.

Segundo esse tutorial, a configuracao do proxi ESB eh dependente da configuracao do ESB property. Talvez voce queira revisar essas confguracoes.

Mas tenta com SoapUI primeiro.

Tutorial:

http://community.jboss.org/wiki/SOA-P43SimpleWebServiceProxy

o soapui n vai me ajudar mto

o webservice ta ok, eu tenho um cliente em php que faz todo o processo. só tenho que ver como usar o java sem o wsdl … heheh

mas obrigado pela ajuda! :slight_smile: