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!