CXF做的webservice简单例子
CXF介绍:http://baike.baidu.com/view/2742297.htm
CXF下载:http://cxf.apache.org/download.html
1:建一个接口 HotTopic
package cn.jsprun.ws; import java.util.List; import java.util.Map; import javax.jws.WebService; @WebService public interface HotTopic { String getHotTopicTop10(); }
2:实现接口 HotTopicImpl
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package cn.jsprun.ws; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.jws.WebService; import org.codehaus.jettison.json.JSONArray; import org.codehaus.jettison.json.JSONObject; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import cn.jsprun.domain.Advertisements; import cn.jsprun.service.DataBaseService; import cn.jsprun.utils.BeanFactory; import cn.jsprun.utils.HibernateUtil; import cn.jsprun.utils.JspRunConfig; @WebService public class HotTopicImpl implements HotTopic{ @Override public String getHotTopicTop10() { DataBaseService dataBaseService = (DataBaseService) BeanFactory.getBean("dataBaseService"); List<Map<String,String>> forums = dataBaseService.executeQuery("SELECT concat('viewthread.jsp?tid=',t.tid,'&extra=page%3D1') as url,t.* FROM jrun_threads t WHERE t.displayorder IN (0, 1, 2, 3) ORDER BY t.displayorder DESC, t.lastpost DESC LIMIT 0,10"); JSONArray jsonArray = new JSONArray(forums); return jsonArray.toString(); } }
3:创建服务端 TestServer
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package cn.jsprun.ws; import javax.xml.ws.Endpoint; public class TestServer { public static void main(String[] args) { System.out.println("web service start"); HotTopicImpl implementor = new HotTopicImpl(); String address = "http://localhost:8080/helloWorld"; Endpoint.publish(address, implementor); System.out.println("web service started"); } }
运行TestServer,浏览器中输入:http://localhost:8080/helloWorld?wsdl,显示xml数据,则创建成功!
4:创建客户端 TestClient
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package cn.jsprun.ws; import java.util.ArrayList; import java.util.List; import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; public class TestClient { public static void main(String[] args) { JaxWsProxyFactoryBean svr = new JaxWsProxyFactoryBean(); svr.setServiceClass(HotTopic.class); svr.setAddress("http://localhost:8080/jsprunutf8/service/hotTopic.do"); HotTopic hw = (HotTopic) svr.create(); System.out.println(hw.getHotTopicTop10()); } }
运行TestClient就能调用webservice了。
jar包导入:是下载来的cxf的lib文件夹中,把里面的jar都导入项目就能运行