Ola pessoal,
Eu criei um webservice com xfire e está funcionando perfeitamente. Já testei com SOAP e está ok.
http://localhost:8080/WebServiceXFire/services/Calculadora?wsdl
O problema que eu quero criar um client para acessar o mesmo, através de outra aplicação java, estou fazendo da seguinte forma abaixo:
package webservicexfirecliente;
import br.com.ws.calculadora.impl.CalculadoraImpl;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
public class Main {
public static void main(String[] args) {
try {
System.out.println("passed1");
Service serviceModel = new ObjectServiceFactory().create(CalculadoraImpl.class);
System.out.println("passed2");
CalculadoraImpl service = (CalculadoraImpl) new
XFireProxyFactory().create(serviceModel, "http://localhost:8080/WebServiceXFire/services/Calculadora");
System.out.println(service.dividir(10, 5));
}catch (Exception e){
e.printStackTrace();
}
}
}
Mas ao executar dá o seguinte erro abaixo:
passed1
passed2
java.lang.IllegalStateException: Service class is not an interface. Please use an interface specify or specify one via a @WebService annotation.
at org.codehaus.xfire.client.XFireProxyFactory.create(XFireProxyFactory.java:109)
at org.codehaus.xfire.client.XFireProxyFactory.create(XFireProxyFactory.java:79)
at webservicexfirecliente.Main.main(Main.java:32)
A minha classe CalculadoraImpl está definida assim:
package br.com.ws.calculadora.impl;
import br.com.ws.calculadora.Calculadora;
public class CalculadoraImpl implements Calculadora{
@Override
public double dividir(double numero1, double numero2) {
return numero1/numero2;
}
@Override
public double multiplicar(double numero1, double numero2) {
return numero1*numero2;
}
@Override
public double soma(double numero1, double numero2) {
return numero1+numero2;
}
@Override
public double subtrair(double numero1, double numero2) {
return numero1-numero2;
}
}
Alguém tem idéia de como resolver esse problema? Ou se tem uma outra forma de criar um client do xfire, algum comando que cria sozinho o mesmo?
Obrigado