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

View Code
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

View Code
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

View Code
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都导入项目就能运行

posted @ 2012-11-14 19:25  小虾Joe  阅读(314)  评论(0编辑  收藏  举报