利用CXF工具开发WebService

前提:JDK环境变量须配置

有的公司的员工win系统的分配的账户权限不够,导致计算机右键时,没有“属性”菜单,也就无法更改环境变量,因此可以通过【控制面板\用户帐户\用户帐户】路径更改环境变量

一、写wsdl文件(自定义)

附上wsdl教程http://www.w3school.com.cn/wsdl/index.asp

根据需求配置相应的<portType><message><types><binding>,具体细节可以参考网上资料,我也不是特别清楚!下面是常用的查询用户信息简单的demo:

<?xml version='1.0' encoding='UTF-8'?>
<wsdl:definitions name="QueryUserInfoService"
    targetNamespace="http://hr.soa.csg.cn" xmlns:ns1="http://cxf.apache.org/bindings/xformat"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://hr.soa.csg.cn"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <wsdl:types>
        <xs:schema attributeFormDefault="unqualified"
            elementFormDefault="qualified" targetNamespace="http://hr.soa.csg.cn"
            xmlns:tns="http://hr.soa.csg.cn" xmlns:xs="http://www.w3.org/2001/XMLSchema">
            <xs:element name="queryUserInfoRequest" type="tns:QueryUserInfoRequest" />
            <xs:complexType name="QueryUserInfoRequest">
                <xs:sequence>
                    <xsd:element minOccurs="0" name="userId" type="xs:string" />
                </xs:sequence>
            </xs:complexType>
            <xs:element name="queryUserInfoResponse" type="tns:QueryUserInfoResponse" />
            <xs:complexType name="QueryUserInfoResponse">
                <xs:sequence>
                    <xs:element minOccurs="0" name="replyCode" type="xs:string" />
                    <xs:element maxOccurs="unbounded" minOccurs="0" name="user"
                        nillable="true" type="tns:User" />
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="User">
                <xs:sequence>
                    <xs:element name="userId" type="xs:string" />
                    <xs:element name="age" type="xs:string" />
                    <xs:element name="name" type="xs:string" />
                    <xs:element name="email" type="xs:string" />
                </xs:sequence>
            </xs:complexType>
        </xs:schema>
    </wsdl:types>
    <!--查询用户信息-->
    <wsdl:message name="queryUserInfoRequest">
        <wsdl:part name="queryUserInfoRequest" element="tns:queryUserInfoRequest" />
    </wsdl:message>
    <wsdl:message name="queryUserInfoResponse">
        <wsdl:part name="queryUserInfoResponse" element="tns:queryUserInfoResponse" />
    </wsdl:message>
    <wsdl:portType name="SOAServicePort">
        <wsdl:operation name="queryUserInfo">
            <wsdl:input message="tns:queryUserInfoRequest" />
            <wsdl:output message="tns:queryUserInfoResponse" />
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="SOAServiceBinding" type="tns:SOAServicePort">
        <soap:binding style="document"
            transport="http://schemas.xmlsoap.org/soap/http" />
        <wsdl:operation name="queryUserInfo">
            <soap:operation style="document" soapAction="" />
            <wsdl:input>
                <soap:body use="literal" />
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal" />
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="QueryUserInfoService">
        <wsdl:port name="SOAService" binding="tns:SOAServiceBinding">
            <soap:address location="http://localhost:8080/service/queryUserInfoService" />
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

二、使用CXF工具生成代码

1、下载cxf工具(下载二进制的压缩包,方便执行cmd命令)如图
下载地址:http://cxf.apache.org/download.html

2、使用wsdl2java工具生成代码

(1)解压包,控制台(cmd)进入bin目录

(2)输入命令,执行wsdl2java

wsdl2java -p com.cxf -d e:\cxftest -all e:\createWebservice.wsdl

【注:-p后面的参数是生成代码所在的包名,-d后面的参数是生成代码存放的路径,-all后面的参数是wsdl文件所在的具体目录】

3、简单修改代码

所有类中注解部分有红色标注的这一行代码删掉,这个地址没用!【不删除启动会报错】

4、启动server,访问查看wsdl(url为发布地址)

即第一步配置的:<soap:address location="http://localhost:8080/service/queryUserInfoService" />

到此OK,没时间进行接口测试,大家有时间可以自己玩玩!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值