cxf的webservice的xml方式传数据的demo

1.新建maven项目,再pom中配置需要的jar

<dependency>

        <groupId>org.apache.cxf</groupId>

        <artifactId>cxf-rt-frontend-jaxws</artifactId>

        <version>2.7.4</version>

    </dependency>

    <dependency>

        <groupId>org.apache.cxf</groupId>

        <artifactId>cxf-rt-transports-http</artifactId>

        <version>2.7.4</version>

    </dependency>

    <dependency>

        <groupId>org.apache.cxf</groupId>

        <artifactId>cxf-rt-transports-http-jetty</artifactId>

        <version>2.7.4</version>

    </dependency>

    <dependency>

    <groupId>jdom</groupId>

    <artifactId>jdom</artifactId>

    <version>1.0</version>

</dependency>

 

2.webservice服务端

package com.sunkang.webservice;

 

import javax.jws.WebParam;

import javax.jws.WebService;

 

import com.sunkang.entity.User;

 

@WebService

public interface HelloWord {

    String sayHi(@WebParam(name="text")String text);

    String sayHiToUser(User user);

     //封装Document数据,返回XML字符串  

    public String XMLInfo() throws Exception;

}

package com.sunkang.webservice;

 

import javax.jws.WebParam;

import javax.jws.WebService;

 

import org.jdom.Document;

import org.jdom.Element;

 

import com.sunkang.entity.User;

import com.sunkang.util.OperationXMLByJdom;

@WebService(endpointInterface="com.sunkang.webservice.HelloWord",serviceName="HelloHord")

public class HelloWordImp implements HelloWord{

 

    public String sayHi(@WebParam(name="text")String text) {

        return "HI:"+text;

    }

 

    public String sayHiToUser(User user) {

        return "name:"+user.getName()+"    age:"+user.getAge();

    }

 

    public String XMLInfo() throws Exception {

        // 创建根节点 list;  

        Element root = new Element("list");  

        // 根节点添加到文档中;  

        Document Doc = new Document(root);  

        // 此处 for 循环可替换成 遍历 数据库表的结果集操作;  

        for (int i = 0; i < 5; i++) {  

            // 创建节点 user;  

            Element elements = new Element("user");  

            // 给 user 节点添加属性 id;  

            elements.setAttribute("id", "" + i);  

            // 给 user 节点添加子节点并赋值;  

            // new Element("name")中的 "name" 替换成表中相应字段,setText("xuehui")中 "xuehui  

            // 替换成表中记录值;  

            elements.addContent(new Element("name").setText("xuehui"));  

            elements.addContent(new Element("age").setText("28"));  

            elements.addContent(new Element("sex").setText("Male"));  

            // 给父节点list添加user子节点;  

            root.addContent(elements);  

        }  

        OperationXMLByJdom xml2String = new OperationXMLByJdom();  

        String xmlDoc = xml2String.doc2String(Doc);  

        return xmlDoc;  

    }

 

}

 

3.发布webservice

package webServiceApp;

 

import javax.xml.ws.Endpoint;

 

import com.sunkang.webservice.HelloWordImp;

 

public class webServiceApp {

    /**

     * 用main的方式发布webservice

     * @param args

     */

    public static void main(String[] args) {

        HelloWordImp implementor = new HelloWordImp();  

        String address = "http://localhost:8080/helloWorld";  

        Endpoint.publish(address, implementor);  

    }

}

 

4.客户端

package com.sunkang.client;

 

import org.apache.cxf.endpoint.Client;

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

 

import com.sunkang.entity.User;

 

public class TestClient {

 

    public static void main(String[] args) {

        JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance();

        Client client =  factory.createClient("http://localhost:8080/helloWorld?wsdl");

        Object[] objs;

        try {

            objs = client.invoke("sayHi", "阿福");

            System.out.println(objs[0]+"");

            

 

            objs = client.invoke("XMLInfo");

            System.out.println(objs[0]+"");

            //将服务端的xml字符串解析

        } catch (Exception e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

    }

}

 

 

 

 

 

 

--欢迎大家访问我的 个人博客(www.sunkang.com)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值