jdk6 WebService入门

WebService参数标签为对象属性 做webservice的时候使用SoapUI测试接口的时候需求人员想要把参数格式给展示出来,类似于 这种格式的,上网搜也没找到类似的案例所以弄出来之后给大家分享一下。 刚开始方法后面接收参数是用的String进行接收 @WebMethod public String Test(@WebParam(name = "request")String param) ; 使用SoapUI测试的时候,只有一个@WebParam里面的参数名称,没有那种级联关系,调用你接口的人也不知道给你怎么传参数,传什么格式。 阅读详情
一、            Web Services简介
什么是Web Services
Web service 就是一个应用程序,它向外界暴露出一个能够通过 Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。
基于浏览器的瘦客户应用程序,即 BS结构,是目前流行的,使得Web Services的应用越来越广泛。Web Services 是一种构建应用程序的模型,并能在所有支持 Internet 通讯的操作系统上实施运行。Web Services 令基于组件的开发和 Web 的结合达到最佳,基于组件的对象模型,利用 SOAP 和 XML对这些模型在通讯方面作了进一步的扩展以消除特殊对象模型的障碍。因为是使用XML作为传输的介质,所以可以跨平台跨语言。
Web Services 实现远程访问,有点类似 RMI(远程方法调用)。 但它是利用 HTTP 和 SOAP 协议是商业数据在 Web 上传输,SOAP通过 HTTP 调用商业对象执行远程功能调用,Web 用户能够使用 SOAP 和 HTTP通过 Web 调用的方法来调用远程对象。
Web Services 结构
客户根据 WSDL描述文档,会生成一个 SOAP 请求消息。Web Services 都是放在Web服务器上面,客户生成的SOAP请求会被嵌入在一个HTTP POST请求中,发送到 Web 服务器来。Web 服务器再把这些请求转发给 Web Services 请求处理器。请求处理器的作用在于,解析收到的 SOAP 请求,调用 Web Services,然后再生成相应的 SOAP 应答。Web 服务器得到 SOAP 应答后,会再通过 HTTP应答的方式把信息送回到客户端。
什么是WSDL
WSDL是 Web Services Description Language的缩写,是一个用来描述Web服务和说明如何与Web服务通信的XML语言。Web Services服务器把一个对像绑定到一个URL 上(如http://localhost:8080/webservices/hello),客户端就可以能过绑定的地址(如:http://localhost:8080/webservices/hello?wsdl)取得WSDL文件,该文件是标准的XML 格式,描述了被绑定对像的信息,包括可调用的方法,参数,及参数类型,返回值类型,异常类型等。客户端就是通过这些信息调用服务器的方法。
 
二、            JKD6 对Web Services的支持
JDK6提供了对Web Service原生的支持,对Web Service进行了完美的封装,完全隐藏了底层内容,甚至可以不用了解wsdl的具体规范。使用Web Service就像使用本地方法一样简单。下面来举个例子,依然从最简单的HelloWorld入手。
HelloWorld例子
STEP 1 ,服务器端 Bean 说明
服务器端的Java类若要成为一个实现了Web Service的bean,它需要遵循下边这些原则:这个类必须是public类、不能是final的或者abstract、必须有一个公共的默认构造函数、绝对不能有finalize()方法。若要成为一个实现了Web Service的Bean的方法必须遵循这些原则:
这个方法必须是public,它的参数、返回值、和异常在每个JAX RPC规范中都描述了Java转化成XML/WSDL映射文件的规则,参数和返回值可以是原始类型、数组等等。
 
下面是服务器端的类HelloWorld.java:
package test.jws.service;
 
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
 
@WebService (targetNamespace = "http://www.jwstest.org" )
@SOAPBinding (style = SOAPBinding .Style. RPC )
public class HelloWorld {
    @WebMethod (action= "toSayHello" ,operationName= "toSayHello" ,exclude= false )
    @WebResult (name= "returnWord" ) // 自定义该方法返回值在 WSDL 中相关的描述
    public String sayHello( @WebParam (name= "userName" )String userName) {
        return "Hello:" + userName;
    }
    @WebMethod
    public int getExp( int i, int j) {
        return i / j;
    }
}
 
 
这是服务器端普通的业务类,通过@WebService、@WebMethod等注释描述来生成WSDL文件。
 
STEP 2 ,执行 wsgen 命令
本例中到HelloWorld类所在的目录中新建一个命名为wsdl的文件夹,运行:wsgen -cp ./bin -r ./wsdl -s ./src -d ./bin -wsdl test.jws.service.HelloWorld。执行后会在wsdl文件夹中生成HelloWorld的wsdl描述文件,src文件夹中生成依赖类,如异常说明类,bin中生成依赖类的class文件
 
STEP 3 , 发布 Web Service Bean
启动服务类StartService.java:
package test.jws.service;
 
import javax.xml.ws.Endpoint;
 
public class StartService {
    public static void main(String[] args) {
        Endpoint.publish( "http://localhost:8080/webservice/hws" , new HelloWorld());
    }
}
 
 
此类很简单,能过Endpoint类的publish()方法发布实例发布地址为:
http://localhost:8080/webservice/hws,必需明确指明http协议,主机IP 地址及端口号,在IE上输入 http://localhost:8080/webservice/hws?wsdl返回以下内容说明发布成功
<? xml version="1.0" encoding="UTF-8" ?>
< definitions xmlns =" http://schemas.xmlsoap.org/wsdl/ "
xmlns:tns =" http://www.jwstest.org "
xmlns:xsd =" http://www.w3.org/2001/XMLSchema "
xmlns:soap =" http://schemas.xmlsoap.org/wsdl/soap/ "
targetNamespace =" http://www.jwstest.org "
name =" HelloWorldService ">
< types />
< message name =" toSayHello ">
  <part name="userName" type="xsd:string" />
   </message>
 <message name="toSayHelloResponse">
  <part name="returnWord" type="xsd:string" />
   </message>
< message name =" getExp ">
  <part name="arg0" type="xsd:int" />
  <part name="arg1" type="xsd:int" />
   </message>
< message name =" getExpResponse ">
  <part name="return" type="xsd:int" />
   </message>
< portType name =" HelloWorld ">
< operation name =" toSayHello " parameterOrder =" userName ">
  <input message="tns:toSayHello" />
  <output message="tns:toSayHelloResponse" />
  </operation>
< operation name =" getExp " parameterOrder =" arg0 arg1 ">
  <input message="tns:getExp" />
  <output message="tns:getExpResponse" />
  </operation>
   </portType>
< binding name =" HelloWorldPortBinding " type =" tns:HelloWorld ">
  <soap:binding style="rpc"
transport =" http://schemas.xmlsoap.org/soap/http " />
< operation name =" toSayHello ">
  <soap:operation soapAction="toSayHello" />
< input >
  <soap:body use="literal"
namespace =" http://www.jwstest.org " />
  </input>
< output >
  <soap:body use="literal"
namespace =" http://www.jwstest.org " />
   </output>
   </operation>
< operation name =" getExp ">
  <soap:operation soapAction="" />
< input >
  <soap:body use="literal"
namespace =" http://www.jwstest.org " />
   </input>
< output >
  <soap:body use="literal"
namespace =" http://www.jwstest.org " />
   </output>
   </operation>
  </ binding >
< service name =" HelloWorldService ">
 <port name="HelloWorldPort"
binding =" tns:HelloWorldPortBinding ">
  <soap:address
location =" http://localhost:8080/webservice/hws " />
  </port>
  </service>
</ definitions >
 
STEP 4 , 生成客户端执行类
在cmd命令中执行 wsimport  -d  ./bin  -s  ./src - p test.jws.client.ref
http://10.168.189.182:8080/webservice/hws?wsdl 后在在src目录下生成客户端调用的两个类:
       test.jws.client.ref.HelloWorld.java 根据wsdl描述生成的客户端执行类
test.jws.client.ref.HelloWorldServices.java 通过此类负责解悉wsdl初始化客户端HelloWorld实例
在bin目录下生成对应的类文件。
       注意:执行wsimport命令时 STEP 3的服务必需启动,否则无法生成
 
STEP 4 , 客户端调用
客户端调用过程ClientRun.java:
package test.jws.client;
 
import test.jws.client.ref.*;
 
public class ClientRun {
 
    /**
      * @param args
      */
    public static void main(String[] args) {
        HelloWorldService hws = new HelloWorldService();
        HelloWorld hw = hws.getHelloWorldPort();
        System. out .println(hw.getExp(9, 3));
        System. out .println(hw.toSayHello( "zhuoshiyao" ));
    }
 
}
 
启动 STEP 3中的服务,运行ClientRun后,制控台输出:
3
Hello:zhuoshiyao
 
注意:经测试,用Endpoint.publish("http://localhost:8080/webservice/hws", new HelloWorld()) 方式在Tomcat6 中发布,不会存在端口号与路径冲突。
JKD6 中定义的Web Service注释
 
1.        @WebService 标注要暴露为Web Services的类或接口 ,用于申修饰类或接口,包含属性
targetNamespace 定义命名空间,默认为”http://”+”包名倒排”
name Web Service 的名称,默认为类名,例如:
< definitions targetNamespace =" http://service.jws.test/ "
name =" HelloWorldService ">
portName Web Service 的端口名称
serviceName Web Service 的服务名称,例如
                    <service name="HelloWorldService">
< port name =" HelloWorldPort "
binding =" tns:HelloWorldPortBinding ">
       ...
                    </port>
              </service>
2.        @SOAPBinding 定义Web Service 在SOAP中的消息协议,用于申修饰类或接口,包含属性
style 定义消息的编码类型
user 定义消息的格式化类型
3.        @WebMethod 定义Web Service运作的方法,包含属性
action 操作的活动
operationName与此方法匹配的 wsdl:operation 的名称
exclude 标注此方法是否被暴露,默认为false
4.        @WebResult 定义返回值,返回值类型不能为接口类或抽象类,而且必须有个不带参的构造函数,包含属性
name返回值的名称
partName表示此返回值的 wsdl:part 的名称
targetNamespace返回值的 XML 名称空间
header如果为 true,则结果是从消息头而不是消息正文获取的
5.        @WebParam 定义方法的参数,参数类型不能为接口类或抽象类,而且必须有个不带参的构造函数,包含属性
name参数名称
partName表示此参数的 wsdl:part 的名称
targetNamespace参数的 XML 名称空间
header如果为 true,则结果是从消息头而不是消息正文获取的
mode参数的流向(IN、OUT 或 INOUT 之一)
 
wsgen与wsimport命令说明
wsgen命令的主要功能是用来生成合适的JAX-WS。它读取Web Service的终端类文件,在我们的例子中就是test.jws.service.HelloWorld,同时生成所有用于发布Web Service所依赖的源代码文件和经过编译过的二进制类文件,通常Web Service Bean中用到的异常类会另外生成一个描述Bean。它还能生成WSDL和符合规范的HelloWorld类Web Service。wsgen从资源文件生成一个完整的操作列表并验证是合法的。如果Web Service Bean中的主法有申明抛出异常,这一步是必需的,否则服务器无法绑定该对像。
命令参数说明:
-cp 定义classpath
-r 生成 bean的wsdl文件的存放目录
-s 生成发布Web Service的源代码文件的存放目录(如果方法有抛出异常,则会生成该异常的描述类源文件)
-d 生成发布Web Service的编译过的二进制类文件的存放目录(该异常的描述类的class文件)
 
       wsimport命令的主要功能是根据wsdl文件生成客户端存根及框架,负责与Web Service 服务器通信,并在将其封装成实例,客户端可以直接使用,就像使用本地实例一样。
命令参数说明:
-d 生成客户端执行类的class文件的存放目录
-s 生成客户端执行类的源文件的存放目录
-p 定义生成类的包名
 
三、            附录:WSDL说明
1、WSDL 文档结构
WSDL 文档是利用这些主要的元素来描述某个 web service 的:
元素
定义
<portType>
web service 执行的操作
<message>
web service 使用的消息
<types>
web service 使用的数据类型
<binding>
web service 使用的通信协议
一个 WSDL 文档的主要结构是类似这样的:
<definitions>
<types>
   definition of types........
</types>
<message>
   definition of a message....
</message>
<portType>
   definition of a port.......
</portType>
<binding>
   definition of a binding....
</binding>
</definitions>
 
WSDL 文档可包含其它的元素,比如 extension 元素,以及一个 service 元素,此元素可把若干个 web services 的定义组合在一个单一的 WSDL 文档中。
WSDL 端口
<portType> 元素是最重要的 WSDL 元素。
它可描述一个 web service、可被执行的操作,以及相关的消息。
可以把 <portType> 元素比作传统编程语言中的一个函数库(或一个模块、或一个类)。
WSDL 消息
<message> 元素定义一个操作的数据元素。
每个消息均由一个或多个部件组成。可以把这些部件比作传统编程语言中一个函数调用的参数。
WSDL types
<types> 元素定义 web service 使用的数据类型。
为了最大程度的平台中立性, WSDL 使用 XML Schema 语法来定义数据类型。
WSDL Bindings
<binding> 元素为每个端口定义消息格式和协议细节。
WSDL 实例
这是某个 WSDL 文档的简化的片段:
<message name=" getTermRequest ">
   <part name=" term " type=" xs:string "/>
</message>
 
<message name=" getTermResponse ">
   <part name=" value " type=" xs:string "/>
</message>
 
<portType name=" glossaryTerms ">
 <operation name=" getTerm ">
        <input message=" getTermRequest "/>
        <output message=" getTermResponse "/>
 </operation>
</portType>
在这个例子中, <portType> 元素把 "glossaryTerms" 定义为某个端口的名称,把 "getTerm" 定义为某个操作的名称。
操作 "getTerm" 拥有一个名为 "getTermRequest" 的输入消息,以及一个名为 "getTermResponse" 的输出消息。
<message> 元素可定义每个消息的部件,以及相关联的数据类型。
对比传统的编程, glossaryTerms 是一个函数库,而 "getTerm" 是带有输入参数 "getTermRequest" 和返回参数 getTermResponse 的一个函数。
2、WSDL 端口
<portType> 元素是最重要的 WSDL 元素。
它可描述一个 web service、可被执行的操作,以及相关的消息。
端口定义了指向某个 web service 的连接点。可以把它元素比作传统编程语言中的一个函数库(或一个模块、或一个类),而把每个操作比作传统编程语言中的一个函数。
操作类型
请求 -响应是最普通的操作类型,不过 WSDL 定义了四种类型:
类型
定义
One-way
此操作可接受消息,但不会返回响应。
Request-response
此操走可接受一个请求并会返回一个响应
Solicit-response
此操作可发送一个请求,并会等待一个响应。
Notification
此造作可发送一条消息,但不会等待响应。
One-Way 操作
一个 one-way 操作的例子:
<message name=" newTermValues ">
   <part name=" term " type=" xs:string "/>
   <part name=" value " type=" xs:string "/>
</message>
 
<portType name=" glossaryTerms ">
   <operation name=" setTerm ">
      <input name=" newTerm " message=" newT
 
WebService注解实战:从@WebService到@WebResult的完整配置指南 本文提供了Java WebService注解从@WebService到@WebResult的完整实战配置指南。详细解析了@WebService、@WebMethod、@WebParam等核心注解的参数含义与最佳实践,帮助开发者生成清晰、易用的WSDL文档,提升跨平台系统集成的开发效率与接口质量。 阅读详情

相关推荐

WebService之Soap服务入门详解

1.什么是webservice先来考虑一个问题,如果我们要在自己的程序里面展示天气预报,那怎么弄?正确的做法是我们发送一个请求到一个系统,他会给我们返回来天气情况。这个就是一个webservice。天气预报系统就相当于webservice的服务端,我们的系统就相当于客户端。2.如何调用别人发布的webservice

诺浅的专栏 11万+

WebService全面详解

https://blog.youkuaiyun.com/ITITII/article/details/79609073

renxingzhadan的专栏 5万+

基于JDK6的WebService开发与用户认证实战

在JAX-WS编程模型中,服务契约的起点是一个符合SEI(Service Endpoint Interface)规范的Java接口。该接口通过注解标记为一个Web服务端点,并由JAX-WS运行时自动映射为WSDL中的portType元素。正确理解和配置该注解的各项属性,是确保服务可发现性、命名空间一致性以及跨语言兼容性的前提。尽管JAX-WS提供高层API,但在某些场景下需直接操作底层HTTP连接。

weixin_28681379的博客 1096

WebService中的WSDL详解

WebService中的WSDL详解       有人在WebService开发的时候,特别是和第三方有接口的时候,走的是SOAP协议,然后用户(或后台)给你一个WSDL文件(或网址),说按照上面的进行适配, 这时就要对WebService的WSDL有一定的理解,本文将对WSDL(WebService描述语言)进行详细总结。        WSDL (Web Services Descriptio

wenzhi的博客 3万+

如何在Vitis 2023.1上快速搭建LWIP Echo Server(附YT8521S PHY调试心得)

本文详细介绍了在Vitis 2023.1开发环境下,基于Xilinx MPSoC平台快速搭建LWIP Echo Server的完整实战流程。内容涵盖从Vivado硬件工程配置、Vitis软件工程创建,到关键代码剖析与定制化修改,并重点分享了调试非标准PHY芯片(如YT8521S)的宝贵心得与常见问题排查方法,旨在帮助开发者高效实现FPGA与上位机间的可靠网络通信验证。

weixin_29250403的博客 134

玩转肺癌目标检测数据集Lung-PET-CT-Dx ——①从TCIA获取影像数据集

该目标检测公共数据集源自 The Cancer Imaging Archive(TCIA),是肿瘤研究方面的著名的医学影像公开数据库。 数据以 DICOM 格式存储,由肺癌受试者的 CT 和 PET-CT DICOM 图像组成。

takedachia的博客 1万+

jdk6_ WebService入门

 一、            Web Services简介什么是Web ServicesWeb service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。基于浏览器的瘦客户应用程序,即BS 结构,是目前流行的,使得Web Services的应用越来越广泛。Web Services 是一种构建应用程序的模

youshini的专栏 1183

深入解析EXI协议在ISO15118-2命令测试中的编解码实践

本文深入探讨了EXI协议在ISO15118-2车桩通信标准中的关键作用与实践方法。EXI编解码测试是确保通信准确性与效率的核心环节,文章详细介绍了从搭建测试环境、选择工具库到编写完整测试代码的全过程,并分析了结果差异的常见原因与调试技巧,为电动汽车充电系统的开发者提供了实用的技术指南。

potato的博客 1048

JDK6 webservice 入门实例

1. 在eclipse中创建一个Java Project,项目名称sews。当然也可以不用Eclipse。 2. 创建一个类:HelloWorld,代码如下: 3. 到命令行模式下,输入如下D:\workspace_ganymede\sews>wsgen -cp ./bin -r ./wsdl -s ./src -d ./bin -wsdl cn.edu....

weixin_33910434的博客 121

保姆级教程:用PyTorch从零实现SDE扩散模型(附完整代码与MNIST实战)

本文提供了一份详细的PyTorch教程,指导读者从零开始实现SDE扩散模型,并附有完整的代码示例和MNIST数据集实战。通过解释随机微分方程(SDE)的核心概念、模型架构设计、训练流程实现以及采样生成过程,帮助开发者掌握扩散模型的构建与应用。

weixin_28677005的博客 265

从工艺文件到寄生分析:手把手教你用华大九天RCExplorer做版图预检(附ITF文件解析)

本文详细介绍了华大九天RCExplorer工具在模拟IC和版图设计中的应用,从工艺文件解析到寄生参数提取的全流程。通过ITF文件的深度解析和实战案例,帮助工程师掌握金属层、介质层及通孔参数的关键影响,提升设计效率与准确性。文章还提供了与StarRC工作流集成的实用技巧,是国产EDA工具应用的权威指南。

weixin_42522552的博客 405

Jdk6 WebService入门--结合实际修改了一些内容

一、Web Services简介什么是Web ServicesWeb service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。基于浏览器的瘦客户应用程序,即BS 结构,是目前流行的,使得Web Services的应用越来越广泛。Web Services 是一种构建应用程序的模型,并能在所有支持 I

杨军的博客 2225

157、飞控中的鲁棒自适应控制

本文总结了飞控系统中鲁棒自适应控制的实践经验。作者通过炸机案例引出传统PID控制的局限性,分析了鲁棒性与自适应性的本质矛盾,提出"用鲁棒性兜底,用自适应性提性能"的设计原则。重点介绍了模型参考自适应控制(MRAC)的实现方法,包括参考模型设计、自适应律调参技巧(建议初始增益设为0.01)、直接/间接自适应的应用场景差异,以及防止参数漂移的鲁棒修正方法。文章还分享了实际调试中的三大关键问题(初始值设定、激励条件、执行器饱和)及解决方案,并推荐了"鲁棒PID+自适应前馈"的混合架构。最后强调调试顺序应为先保证鲁

2401_88858637的博客 27

java webservice 入门教程_WebService 超简单入门教程(Java)

写在前面的话:当两个人碰面后,产生了好感,如果需要得到双方的信息,那么双方的交流是必不可少的!应用程序也如此,各个应用程序之间的交流就需要WebService来作为相互交流的桥梁!项目目的:程序A调用程序B中的方法C...首先申明:本次需要采用的JDK版本为jdk1.6+,也就是要java6+才能看到效果,java5没试过...我认为,升级一下JDK版本比起安装什么Axis以及导入一堆jar包和配...

weixin_39624071的博客 536

【实战项目开发技术分享】ROS1.0、ROS 2.0和CyberRT开源通信框架对比

随着机器人和自动驾驶技术的飞速发展,开源通信框架在机器人、自动驾驶行业扮演着重要的角色。ROS1.0是一个广泛应用于机器人领域的开源框架,ROS 2.0是其改进版本,而CyberRT是Baidu Apollo自动驾驶平台的通信框架。ROS和ROS 2.0都注重灵活性和共享性,适用于各种机器人应用。CyberRT则专注于实时性和高性能,适用于自动驾驶等对实时性要求较高的场景。选择适合的框架取决于具体应用需求和开发者的偏好。

xiewf的博客 2万+

微博scheme

微博scheme

qq_42278595的博客 318

WebService 超简单入门教程(Java)

http://blog.youkuaiyun.com/lovingshu/article/details/8004840 [java] view plaincopy     Title:WebService 超简单入门教程       Author:Lovingshu       Date:2012/09/21       Description:Teac

业精于勤荒于嬉;行成于思,毁于随。 1834

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

JDK6中JWS自带webservice应用

在使用JDK6自带的webservice特性之前,项目中接口开发有用到Axis2、XFire、CXF等webservice框架发布通过获取相关的wsdl文件即可实现远程通讯数据交互。  Axis2配合相关的IDE生成服务并发布到服务器上面相当简单和根据选择其中之一的wsdl引擎生成客户端调用java类,感觉类库jar包比较庞大应用起来也比较复杂。  XFire是比较强大的webservice框

fangguozi的专栏 1234

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

JDK 1.6 环境下开发 WebService

    JDK1.6 中已经支持用Java开发WebService应用了,而且很方便。这样就大大减少了项目安装部署的代价,因为选择开源的框架依赖大量第三方包,程序的尺寸倍增。下面为大家提供一个一个JDK1.6开发Web Service的入门例子 HellService。     1、服务端     首先创建一个简单的接口 IHello ,这个接口就只有一个方法 say: package co...

海纳百川,有容乃大 238

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

JDK1.6 实现 WebService,并在tomcat下发布

1.打开eclipse创建一个maven项目 2.创建组ID与项目名称 3. 修改maven默认的JDK版本 选中项目名称-》单击鼠标右键-》选择Properties属性-》选择ProjectFacets属性: 将JAVA的版本改为1.6 选择Java Build Path属性-》点击Source 移除缺失的文件目录,然后新增这两个文件目录 4. 为项目添加Ser

debug0x的专栏 797
上一篇: Web Services体系结构及相关概念
下一篇: Java SE 6 Web Service 之旅
javaokay
博客等级 码龄20年 6粉丝 13原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值