下面使用介绍Java开发WebService的第二种方法,使用XFire开发。利用XFire开发WebService有三种方法。1)一种是从JavaBean中生成;2)二种是从WSDL文件中生成;3)自己建立WebService项目。
新建webservice工程。
service接口:HelloWorldService.java
package com.zhangwei.webservice.service;
/**
* @author zhangwei
*
*/
public interface HelloWorldService {
public String hello(String name) ;
}
Service实现:HelloWorldServiceImpl.java
package com.zhangwei.webservice.service.impl;
import com.zhangwei.webservice.service.HelloWorldService;
/**
* @author zhangwei
*
*/
public class HelloWorldServiceImpl implements HelloWorldService{
public String hello(String name) {
return "hello," + name;
}
}
再修改services.xml文件,加入发布服务的代码。
<service> <name>HelloWorldService</name> <serviceClass>com.zhangwei.webservice.service.HelloWorldService</serviceClass> <implementationClass>com.zhangwei.webservice.service.impl.HelloWorldServiceImpl</implementationClass> <style>wrapped</style> <use>literal</use> <scope>application</scope> </service>
再将WebService项目发布到tomcat,打开浏览器访问http://localhost:8088/webservice/services/HelloWorldService?wsdl,就可以看到webservice发布成功的信息。
客户端调用HelloWorldService
HelloWorldClient.java
/**
*
*/
package com.zhangwei.webservice.service.client;
import java.net.MalformedURLException;
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import com.zhangwei.webservice.service.HelloWorldService;
/**
* @author zhangwei
*
*/
public class HelloWorldClient {
/**
* @param args
* @throws MalformedURLException
*/
public static void main(String[] args) throws MalformedURLException {
Service s = new ObjectServiceFactory().create(HelloWorldService.class);
XFireProxyFactory xp = new XFireProxyFactory(XFireFactory.newInstance()
.getXFire());
String url = "http://localhost:8088/webservice/services/HelloWorldService";
HelloWorldService hws = (HelloWorldService) xp.create(s, url);
System.out.println(hws.hello("GodFather!"));
}
}
运行该类就可以访问发布的WebService。值得注意的客户端需要commons-httpclient这个jar。