使用XFire调用WebService接口的步骤如下:
添加XFire的依赖<dependency> <groupId>org.codehaus.xfire</groupId> <artifactId>xfire-core</artifactId> <version>1.2.6</version></dependency>创建一个XFire的Service对象import org.codehaus.xfire.XFireFactory;import org.codehaus.xfire.service.Service;import org.codehaus.xfire.client.Client;import org.codehaus.xfire.transport.http.CommonsHttpMessageSender;Service serviceModel = new ObjectServiceFactory().create(serviceClass, serviceName, namespace, endpoint);XFire xfire = XFireFactory.newInstance().getXFire();serviceModel.setProperty(CommonsHttpMessageSender.HTTP_CLIENT, new HttpClient());Client client = new Client(serviceModel, xfire.getTransportManager(), xfire.getBindingProvider());设置WebService的地址client.setUrl("http://localhost:8080/mywebservice");调用WebService的方法Object[] result = client.invoke(operationName, params);完整的示例代码如下:
import org.codehaus.xfire.XFireFactory;import org.codehaus.xfire.service.Service;import org.codehaus.xfire.client.Client;import org.codehaus.xfire.transport.http.CommonsHttpMessageSender;import org.apache.commons.httpclient.HttpClient;public class XFireWebServiceClient { public static void main(String[] args) throws Exception { // 创建WebService的Service对象 Service service = new ObjectServiceFactory().create(ServiceInterface.class, "service", "http://localhost:8080/Service", null); // 创建XFire对象 XFire xfire = XFireFactory.newInstance().getXFire(); // 创建WebService的Client对象 Client client = new Client(service, xfire.getTransportManager(), xfire.getBindingProvider()); // 设置WebService的地址 client.setUrl("http://localhost:8080/mywebservice"); // 调用WebService的方法 Object[] result = client.invoke("operationName", new Object[]{"param1", "param2"}); }}注意:在调用WebService接口之前,需要确保WebService的地址、命名空间、接口名和方法名等参数正确。

