Acessando um Web Service com CXF

0 respostas
Alexandre_Gazola

Olá pessoal,

estou começando com Web Services na prática… meu objetivo é, dado que eu tenho a URL de um WSDL, como chamar operações no Web Service.

Encontrei o projeto XFire, que faz exatamente o que quero, usando o DynamicClient ( http://xfire.codehaus.org/Dynamic+Client ). Mas no site eles recomendam que se trabalhe com a versão 2.0, que agora passa a se chamar CXF.

Então eu baixei o CXF e adicionei todo o conteúdo da pasta lib no CLASSPATH do meu projeto no Eclipse. Depois disso, para testar estou usando o código abaixo (Obs.: estou usando o mesmo código que está como exemplo no site do XFire que coloquei acima, só que aqui eu uso a classe ClientImpl, pois Client é apenas uma interface no CXF):

public static void main(String[] args) throws Exception {
		URL url = new URL("http://www.webservicex.net/CurrencyConvertor.asmx?WSDL");
		Client client = new ClientImpl(url);
		Object[] results = client.invoke("ConversionRate", new Object[] {
				"BRL", "UGX" });

		// Service returns a double of the currency conversion rate.
		System.out.println((Double) results[0]);
	}

Só que obtenho uma NullPointerException (apresentada abaixo). Alguém saberia me dizer qual erro estou cometendo (ou então me dar uma outra alternativa para realizar essa tarefa simples) ?

Obrigado


29/11/2007 18:39:29 org.apache.cxf.configuration.spring.ConfigurerImpl <init>

INFO: Could not find the configuration file cxf.xml on the classpath.

29/11/2007 18:39:33 org.apache.cxf.phase.PhaseInterceptorChain doIntercept

INFO: Interceptor has thrown exception, unwinding now

java.lang.NullPointerException

at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeToOutputStream(AbstractOutDatabindingInterceptor.java:110)

at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:67)

at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68)

at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)

at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)

at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)

at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:180)

at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:200)

at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:186)

at meupacote.teste.main(MinhaClasseDeTestes.java:4)

Exception in thread main java.lang.NullPointerException

at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeToOutputStream(AbstractOutDatabindingInterceptor.java:110)

at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:67)

at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68)

at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)

at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)

at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)

at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:180)

at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:200)

at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:186)

at meupacote.teste.main(MinhaClasseDeTestes.java:4)
Criado 29 de novembro de 2007
Respostas 0
Participantes 1