WebService(三)
JAX-WS简单使用示例:
1.服务端

package com.rong.service; import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService; @WebService
public interface UserService {
//private私有方法不会被发布,只会发布public方法
//exclude默认为false,即发布;若为true,即不发布
@WebMethod(operationName="getMyAge",exclude=true)
public int getAge();
public @WebResult(name="ResultType")String changeName(@WebParam(name="NameType")String name);
}
package com.rong.service; import javax.jws.WebService; //@WebService
//通过注解修改wsdl文件信息
@WebService(targetNamespace="http://service.rjl.com/",
serviceName="UserService",
portName="bindingname",
name="portname",
//UserServiceImpl可能实现多个接口,注解endpointInterface用于
//只发布哪个接口服务,并且要在那个接口中添加@WebService
endpointInterface="com.rong.service.UserService")
public class UserServiceImpl implements UserService { @Override
public int getAge() {
return 0;
} @Override
public String changeName(String name) {
return name.toUpperCase();
} }
package com.rong.test;
import javax.xml.ws.Endpoint;
import com.rong.service.UserServiceImpl;
public class Test {
public static void main(String[] args) {
//第一个参数是发布的URL
//第二个参数是服务接口的实现类对象
Endpoint.publish("http://127.0.0.1:8080/myservice", new UserServiceImpl());
}
}
运行main方法
浏览器输入地址:http://127.0.0.1:8080/myservice?wsdl访问wsdl检验是否开启服务
2.客户端
eclipse创建项目,在项目路径下F:\workplace\myclient\src
运行cmd,执行指令生成客户端代码(可用工具生成)

然后在生成的代码文件夹中删除字节码文件.class文件,只保留java文件
返回eclipse开发工具的客户端项目,刷新项目

测试:
package com.rong.test; import java.net.MalformedURLException;
import java.net.URL; import javax.xml.namespace.QName;
import javax.xml.ws.Service; import com.rjl.service.UserService; public class Test { public static void main(String[] args) throws MalformedURLException { // 客户端使用服务方式一:见上篇
//客户端使用服务方式二
URL url=new URL("http://127.0.0.1:8080/myservice?wsdl");
//第一个参数是服务的URI,服务的命名空间名字
//第二个参数是WSDL发布的服务名
QName serviceName=new QName("http://service.rjl.com/", "UserService");
Service service = Service.create(url, serviceName);
UserService userService = service.getPort(UserService.class);
System.out.println(userService.changeName("rjl and kobe!"));
}
}

WebService(三)的更多相关文章
- webService 三要素
WebService(jax-ws)三要素 SOAP: 基于HTTP协议,采用XML格式,用来传递信息的格式. WSDL: 用来描述如何访问具体的服务.(相当于说明书) UDDI: 用户自己可以按UD ...
- Maven搭建webService (三) 创建客户端---使用Apache CXF方式实现
package test; import net.cc.web.server.HelloWorld; import org.apache.cxf.jaxws.JaxWsProxyFactoryBean ...
- webservice三要素
1. 2. 3.
- php中调用WebService接口
一.背景 调用第三方短信提供商的WebService接口. 二.介绍 1.WebService三要素: SOAP(Simple Object Access Protocol) 用来描述传递信息的格式 ...
- Webservice服务创建、调用笔记
引言 以前使用windows服务,于是学习并记录下来:windows服务的创建.安装.调试全过程及引发的后续学习.现如今需要用到webservice,对此感觉到很困惑.经过几天的学习.查阅资料,终于大 ...
- webservice入门(1)
前段时间学习了webservice的用法,虽然只是一些简单的用法,但是如果久了还是会忘记的,所以将学到了记录下来. 一:schema和http协议. 1.schema约束: schema规范中: . ...
- Unity3d请求webservice
我们在对接第三方sdk时,第三方sdk通常会以一个webservice接口的形式供我们来调用.而这些接口会以提供我们get,post,soap等协议来进行访问.get,post方法相信大家都比较熟悉了 ...
- 【WebService】WebService学习笔记
WebService三要素 WebService三要素SOAP(Simple Object Access Protocol).WSDL(WebServicesDescriptionLanguage). ...
- WebService案例入门(基础篇)
[版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/52106690 作者:朱培 ID:sdksdk0 邮 ...
- WebService学习-第一弹
一:WebService简介(1)简介----百度百科(注意标识的重点) Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言 ...
随机推荐
- 大数据IDEA调试flink程序
Flink在IDEA中开发是一件比较困难的事情,网上没有参考资料,就算就业说的太过笼统,不知道是会了不说还是不会瞎说,为了解决flink这个问题,本人特别做了一遍开发的简单说明.主要考虑两个问题,1. ...
- Hadoop集群搭建:用三台云服务器搭建HA集群(过程记录和分享)
该文主要记录了自己用云服务器搭建集群的过程,也分享一些自己遇到的问题和解决方法.里面可能提及一些自己的理解,可能不够准确,希望大家能够指正我,谢谢. 1.什么是HA集群 HA :High Availa ...
- browser storage limation
http://www.html5rocks.com/en/tutorials/offline/quota-research/?redirect_from_locale=zh
- Linux入门进阶第五天——用户管理(帐号管理 )下
一.身份切换 为了避免 rm -rf /* 的悲剧发生,平时使用时,尽量使用一般帐号!需要环境设置等必要时才使用root 1.su命令 一般地,推荐使用su - / su - username的形式来 ...
- XML2JSON 的【net.sf.json.JSONException: nu.xom.ParsingException must be followed by either attribute specifications, ">" or "/>"】问题解决办法
在使用JSon-Lib库进行XML2JSon的转换时,在JUnit测试时没有什么问题,但是在Tomcat里面跑的时候,抛出了下面的异常,查找了google,发现关于这方便的文章比较少,即使有,也需要F ...
- Java集合——LinkedList源码详解
)LinkedList直接继承于AbstractSequentialList,同时实现了List接口,也实现了Deque接口. AbstractSequentialList为顺序访问的数据存储结构提供 ...
- C#基础之并行编程
并行编程从业务实现的角度可分为数据并行与任务并行,也就是要解决的问题是以数据为核心还是以要处理的事情为核心.基于任务的并行编程模型TPL(任务并行库)是从业务角度实现的并行模型,它以System.Th ...
- NB-IOT模组指令AT+NMSTATUS和AT+CGPADDR对比
1. AT+NMSTATUS,这个指令是用来查询模块在IOT平台的注册情况.注册指的是lwm2m协议里面的注册机制,详细可以参考lwm2m协议. 2. AT+MREGSWT,设置重启之后,自动启动注册 ...
- cf 448c Painting Fence
http://codeforces.com/problemset/problem/448/C 题目大意:给你一个栅栏,每次选一横排或竖排染色,求把全部染色的最少次数,一个点不能重复染色. 和这道题有点 ...
- Kettle定时执行
1,Kettle跨平台使用. 例如:在AIX下(AIX是IBM商用UNIX操作系统,此处在LINUX/UNIX同样适用),运行Kettle的相关步骤如下: 1)进入到Kettle部署的路径 ...