1.创建WebService服务
创建Web Service Project , 然后下一步知道结束.
配置对应的web.xml
加debug的原因是测试Web服务是否成功
如果出现页面则成功
地址为 http://localhost:8686/项目名/services/
即可
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>XFireServlet</servlet-name> <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
配置对应的Services.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://xfire.codehaus.org/config/1.0"> <service> <!--服务名称--> <name>AddNum</name> <!--接口--> <serviceClass>com.sun.vo.IAddNum</serviceClass> <!--实现类--> <implementationClass>com.sun.vo.AddNum</implementationClass> </service> </beans>
2.创建Web项目
添加类库:选择项目,右键,构建路径,添加库,MyEclipse Libraries,选择XFire 1.2 Core Libraries 与 XFire 1.2 JAXB2 Libraries 与 XFire 1.2 HTTP Client Libraries.
3种方法调用
第一种必须要了解应用的接口,并且在自己项目中创建.
package test;
import java.net.MalformedURLException;
import org.codehaus.xfire.XFire;
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
/**
* 接口文件
* @author mac
*
*/
public class TestClient {
public static void main(String[] args) {
// 元数据类型
Service model = new ObjectServiceFactory()
.create(ICurrencyConvert.class);
// 代理类
XFire xfire = XFireFactory.newInstance().getXFire();
XFireProxyFactory factory = new XFireProxyFactory(xfire);
ICurrencyConvert client = null;
try {
client = (ICurrencyConvert) factory.create(model,
"http://localhost:8686/webservice/services/currencyConvert");
System.out.println(client.convert(53.43));
} catch (MalformedURLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
第二种方法需要知道WDSL的路径 在debug中可以看到
点击wdsl后 可以复制URL地址栏地址即可
package test2;
import java.net.MalformedURLException;
import java.net.URL;
import org.codehaus.xfire.client.Client;
public class TestClient2 {
public static void main(String[] args) {
try {
Client client=new Client(new URL("http://localhost:8686/webservice/services/currencyConvert?wsdl"));
//第一个参数是方法名,第二个参数为webservivce方法的参数
Object obj[]=client.invoke("convert", new Object[]{233.3});
System.out.println(obj[0]);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
第三种方法
在对应的Web项目中,选择项目,右键,其他,选择Web Services,选择Web Service Client,下一步选择WSDL URL(在里面填入WSDL地址),下一步完成即可.此功能在Eclipse5.5以上版本不可用.