下面使用介绍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。