Server端

server部署到一个端口号为80的tomcat中

CXFController.java

package com.lwj.controller;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.lwj.util.Privileges;
@WebServlet("/login")
public class CXFController extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

        Map<String, List<Integer>> privileges = Privileges.getPrivileges();
// 查询当前坐席所能管理的客户,假设为,在这里固定几个数据

        List<Integer> ids1 = new ArrayList<Integer>();
        ids1.add();
        ids1.add();
        ids1.add();

        List<Integer> ids2 = new ArrayList<Integer>();
        ids2.add();
        ids2.add();
        ids2.add();

        privileges.put("fw1950", ids1);
        privileges.put("fw1951", ids2);

    }

}

CXFListener.java

package com.lwj.listener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import javax.xml.ws.Endpoint;

import com.lwj.service.ServerImpl;
import com.lwj.service.IServer;
@WebListener
public class CXFListener implements ServletContextListener{

    @Override
    public void contextDestroyed(ServletContextEvent arg0) {

    }

    @Override
    public void contextInitialized(ServletContextEvent arg0) {
        System.out.println("web service start");
        IServer implementor= new ServerImpl();
        String address="http://localhost:8088/cxf";
        Endpoint.publish(address, implementor);
        System.out.println("web service started");
    }

}

User.java

package com.lwj.po;

public class User {

    private int id;
    private String account;
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User [id=" + id + ", account=" + account + ", name=" + name
                + "]";
    }

}

IServer.java

package com.lwj.service;

import javax.jws.WebService;

@WebService
public interface IServer {

    String getUserOnline();
}

ServerImpl.java

package com.lwj.service;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.jws.WebService;

import com.google.gson.Gson;
import com.lwj.po.User;
import com.lwj.util.Privileges;
@WebService(endpointInterface="com.lwj.service.IServer")
public class ServerImpl implements IServer {

    @Override
    public String getUserOnline() {
        Map<String, List<Integer>> privileges = Privileges.getPrivileges();

        List<Integer> list = privileges.get("fw1950");
        List<User> users = new ArrayList<User>();
        ))) {
            User u = new User();
            u.setId();
            u.setAccount("fw1950");
            u.setName("刘文举");
            users.add(u);
        }

        Gson gson = new Gson();
        return gson.toJson(users);
    }

}

Privileges.java

package com.lwj.util;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Privileges {

    private static Map<String, List<Integer>> privileges = new HashMap<String, List<Integer>>();

    public static Map<String, List<Integer>> getPrivileges() {
        return privileges;
    }

    public static void setPrivileges(Map<String, List<Integer>> privileges) {
        Privileges.privileges = privileges;
    }

}

Client端

client端部署到一个端口号为8082的tomcat上

User.java

package com.lwj.po;

public class User {

    private int id;
    private String account;
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User [id=" + id + ", account=" + account + ", name=" + name
                + "]";
    }

}

ClientService.java

package com.lwj.service;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;

@WebServlet("/test")
public class ClientService extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
        Client client = dcf.createClient("http://localhost:8088/cxf?wsdl");

        resp.setContentType("text/xml;charset=utf-8");
        resp.setHeader("Cache-Control", "no-cache");
        try {
            Object[] os = client.invoke("getUserOnline");
            for (Object o : os) {
                System.out.println(o.toString());
                resp.getWriter().write(o.toString());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

如果调用的方法中存在参数,则只需要在invoke中第二个参数中加上,

如:server中方法,String getUserOnline(Integer id);

则在client中调用时:

client.invoke("getUserOnline",1);

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/jquery-1.11.2.js"></script>
<style type="text/css">
#chartImage {
    position: fixed;
    right: ;
    top: %;
    z-index: ;
    width: 50px;
    height: 50px;
    background-image: url(image/chart3.png);
    cursor: pointer;
}
</style>
</head>
<body>
    <div id="chartImage"></div>
    aaaaa aaaa
    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br /><br /><br />
</body>
<script type="text/javascript">

document.getElementById("chartImage").onclick=function(){
    $.ajax({
        type:"get",
        url:"${pageContext.request.contextPath}/test",
        data:{},
        dataType:"json",
        success:function(data){
            alert(data[].name+].account+")");
        }
    });
}

</script>
</html>

一、启动server,发布webservice请求

二、访问:http://localhost/server/login,初始化privileges

三、访问:http://localhost:8082/client/,进到index主页,点击右方的聊天图标(chart3.png),页面中弹出信息

  

  测试成功。

cxf webservice简单应用的更多相关文章

  1. 使用 CXF 做 webservice 简单例子(转载)

    使用 CXF 做 webservice 简单例子     Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构.它允许创建高性能和可扩展的服务,您可以将这 ...

  2. CXF WebService整合SpringMVC的maven项目

    首先推荐博客:http://www.cnblogs.com/xdp-gacl/p/4259481.html   http://blog.csdn.net/hu_shengyang/article/de ...

  3. Spring 3 整合Apache CXF WebService[转]

    http://www.cnblogs.com/hoojo/archive/2012/07/13/2590593.html 在CXF2版本中,整合Spring3发布CXF WebService就更加简单 ...

  4. java调用CXF WebService接口的两种方式

    通过http://localhost:7002/card/services/HelloWorld?wsdl访问到xml如下,说明接口写对了. 2.静态调用 // 创建WebService客户端代理工厂 ...

  5. 主题:Java WebService 简单实例

    链接地址:主题:Java WebService 简单实例    http://www.iteye.com/topic/1135747 前言:朋友们开始以下教程前,请先看第五大点的注意事项,以避免不必要 ...

  6. WebService 简单安全验证

    原文:WebService 简单安全验证 最近新接了一个需要调用第三方WebService的项目,看到这个第三方WebService被调用的时候,需要授权用户名和密码,于是自己也想对WebServic ...

  7. Spring整合CXF webservice restful 实例

    webservice restful接口跟soap协议的接口实现大同小异,只是在提供服务的类/接口的注解上存在差异,具体看下面的代码,然后自己对比下就可以了. 用到的基础类 User.java @Xm ...

  8. 《转》CXF WebService 开发文档-目录索引

    CXF WebService 开发文档-目录索引 上次介绍了Axis的WebService,现在我们来看看CXF是怎么完成WebService的. Axis1 WebService 在线博文: htt ...

  9. 使用 CXF 做 webservice 简单例子

    Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构.它允许创建高性能和可扩展的服务,您可以将这样的服务部署在 Tomcat 和基于 Spring 的轻量 ...

随机推荐

  1. 微信公众平台"微信连Wi-Fi"功能来了 线下微信增粉利器

    微信连Wi-Fi功能在第三方开发者和服务商已经有出现了,但有些成本相对会高些.近日微信公众平台新添了一个功能插件“微信连Wi-Fi”,已有微信认证过的公众号即可申请开通.赶紧去布局这个线下微信增粉利器 ...

  2. 实用框架(iframe)代码

    <iframe src="http://www.baidu.com" marginwidth="0" marginheight="0" ...

  3. C和指针 第九章 习题

    9.15 编写函数格式化金钱为标准字符串 #include <stdio.h> #include <string.h> #define TEMP_LEN 1000 void d ...

  4. Proj.4坐标系统创建参数

    Proj.4坐标系统创建参数 本文由乌合之众lym瞎编,欢迎转载blog.cnblogs.net/oloroso 本文原文地址(https://github.com/OSGeo/proj.4/wiki ...

  5. 数据库基础和JDBC

    一SQL查询 练习: 1.在grade表中查找80-90分的学生学号和分数 select studentid 学号,score 分数 form grade where socre between 80 ...

  6. With great power comes great responsibility

    We trust you have received the usual lecture from the local SystemAdministrator. It usually boils do ...

  7. 阿里云部署Java web项目初体验(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何在阿里云上安装JDK.Tomcat以及其配置过程.最后以一个实例来演示在 ...

  8. Jquery 实现点击tab切换页签

    1.我将这个封装城了插件代码如下,你可以独立到一个js文件,然后页面引用下这个js文件: (function ($) { $.fn.extend({ qmTabs: function () { var ...

  9. java学习第一天 回顾以前

    1.1常量: 基本数据类型常量 字符常量 整数常量的表现形式:一进制的形式来表示(二进制,八进制,十进制,十六进制) 生活中:十进制(0-9)  ,星期(七进制(0-6)) ,时间(十二进制(0-11 ...

  10. 与你相遇好幸运,Mongodb客户端&BUGS

    > Robomongo https://robomongo.org > 日常使用频率最高的客户端 存在BUG: 在 db.getCollection('xzq').find({" ...