发布WebService 1.1
webservice1.1是基于jdk发布的
package cn.itcast.service01; import javax.jws.WebService;
import javax.xml.ws.Endpoint; @WebService
public class HelloService { public String sayHello(String name)
{
System.out.println("say hello called");
return "hello " +name;
}
//main方法不能发布的, 发布的方法不能是静态 的
public static void main(String[] args)
{
//启动一个新线程 地址 内容
Endpoint.publish("http://192.168.151.42:5678/hello", new HelloService());
System.out.println("herer ");
}
}
测试:
一、用户访问http://192.168.151.42:5678/hello?wsdl 然后
cmd下输入 wsimport -s . http://192.168.151.42:5678/hello?wsdl
然后把代码下下来 去掉其中的*.class
复制代码到项目测试
在http://192.168.151.42:5678/hello?wsdl中采用从底向上的模式看
package cn.itcast.testService; import cn.itcast.service01.HelloService;
import cn.itcast.service01.HelloServiceService; public class AppTest { public static void main(String[] args)
{
/**
* wsdl 地址 service name="HelloServiceService"
*/
HelloServiceService service=new HelloServiceService(); HelloService soap=service.getHelloServicePort();
String str=soap.sayHello("this is sss ");
System.out.println(str);
}
}
这样 就能实现 在客户端访问 服务端的WebService
还有一种客户端写法实现访问服务端, 这种方法其实和第一种本质是一样的,第一种方法采用继承接口的形式,客户端拷贝多个文件。
第二种方法客户端单单拷贝接口,因为继承这个接口的构造方法是protected,所以可以用第二种方法,代理对象
二 利用生成的接口 和jdk提供的 Service 等类 实现访问 这种方法比较折中,拷贝一个文件又能用
服务器端添加方法
public String sayHello2(String name,int n)
{
System.out.println("say hello called --------------------"+n);
return "hello " +name;
}
然后 wsimport -s -p cn.itcast.hello http://192.168.151.42:5678/hello?wsdl
然后单单拷贝生成的接口 HelloService
然后以下代码
package cn.itcast.testService; import java.net.MalformedURLException;
import java.net.URL; import javax.xml.namespace.QName;
import javax.xml.ws.Service; import cn.itcast.hello.HelloService; public class AppTest2 { public static void main(String[] args) throws MalformedURLException
{ //命名空间 service
Service s = Service.create(new URL("http://192.168.151.42:5678/hello?wsdl"), new QName("http://service01.itcast.cn/", "HelloServiceService"));
//命名空间 服务绑定的port
HelloService hs = s.getPort(new QName("http://service01.itcast.cn/","HelloServicePort"), HelloService.class); String str = hs.sayHello2("lisi",10);
System.out.println(str);
System.out.println(hs.getClass().getSimpleName());
}
}
就可以访问了 服务端了
发布WebService 1.1的更多相关文章
- 使用CXF发布WebService
这里普及一下WebService和cxf的知识.关于webservice和cxf: WebService.各种提供服务的组件 .企业总线.通讯总线(ESB)CXF:是一个SOA框架,Axi ...
- CXF发布webService服务以及客户端调用
这篇随笔内容是CXF发布webService服务以及客户端调用的方法 CXF是什么? 开发工作之前需要下载CXF和安装 下载地址:http://cxf.apache.org 安装过程: <1&g ...
- Web环境使用相对路径发布Webservice
常我们的Webservice服务的发布地址都将是一个相对路径,在与Spring一起使用时我们需要引入Cxf配置Webservice的schema,如jaxws,用以定义对应的Webservice. & ...
- VS2015发布Webservice
第一步:开启IIs:在控制面板程序——>程序功能——>打开或关闭windows功能,把“Internet信息服务”下面的“FTP服务器”.“Web管理工具”.“万维网服务”全部勾上,然后点 ...
- Spring整合CXF之发布WebService服务
今天我们来讲下如何用Spring来整合CXF,来发布WebService服务: 给下官方文档地址:http://cxf.apache.org/docs/writing-a-service-with-s ...
- 真正的轻量级WebService框架——使用JAX-WS(JWS)发布WebService
WebService历来都很受重视,特别是Java阵营,WebService框架和技术层出不穷.知名的XFile(新的如CXF).Axis1.Axis2等. 而Sun公司也不甘落后,从早期的JAX-R ...
- CXF整合Spring发布WebService实例
一.说明: 上一篇简单介绍了CXF以及如何使用CXF来发布一个简单的WebService服务,并且介绍了客户端的调用. 这一篇介绍如何使用CXF与spring在Web项目中来发布WebService服 ...
- 使用CXF发布WebService服务简单实例
一.说明: 前面介绍了使用axis2来发布Webservice服务,现在介绍一种更popular,更高效的Webservice服务发布技术:CXF Apache CXF = Celtix + XFir ...
- JAX-WS(JWS)发布WebService
WebService历来都很受重视,特别是Java阵营,WebService框架和技术层出不穷.知名的XFile(新的如CXF).Axis1.Axis2等. 而Sun公司也不甘落后,从早期的JAX-R ...
- spring与axis2整合发布webservice
最近在研究整合spring框架和axis2发布webservice服务,由于本人也才学java不久,为了便于以后的查看,在这里记录下发布过程. 所需的工具包,spring.jar和axis2链接地址为 ...
随机推荐
- 为什么TCP连接需要三次握手分开需要四次握手?
TCP的三次握手和四次断开TCP是一个面向连接的服务,面向连接的服务是电话系统服务模式的抽象,每一次完整的数据传输都必须经过建立连接,数据传输和终止连接3个过程,TCP建立连接的过程称为三次握手,下面 ...
- svn 服务器搭建及使用 三
SVN服务器搭建和使用(三) 接下来,试试用TortoiseSVN修改文件,添加文件,删除文件,以及如何解决冲突等. 添加文件 在检出的工作副本中添加一个Readme.txt文本文件,这时候这个文本文 ...
- java中的容器解释
解释一:容器(Container)Spring 提供容器功能,容器可以管理对象的生命周期.对象与对象之间的依赖关系,您可以使用一个配置文件(通常是XML),在上面定义好对象的名称.如何产生(Proto ...
- Unity3d面试6
1,如何避免点击UI按钮时穿透,同时触发了相同位置场景模型的点击事件的情况?(NGUI)1,如何避免点击UI按钮时穿透,同时触发了相同位置场景模型的点击事件的情况?(NGUI 判断 是否点击到UI) ...
- 【mybatis】mybatis动态order by 的问题, 注意 只需要把#{} 改成 ${} 即可
先说解决方案: 注意 只需要把#{} 改成 ${} 即可 再看 使用过程: Mapper.java List<IntegralGoods> findInUid(@Param(" ...
- Android开发之MdiaPlayer详解
Android开发之MdiaPlayer详解 MediaPlayer类可用于控制音频/视频文件或流的播放,我曾在<Android开发之基于Service的音乐播放器>一文中介绍过它的使用. ...
- myeclipse8.6首次运行maven项目的问题解决
myeclipse8.6导入maven项目后识别为普通java项目,即项目图标上没有小M的标识.这时是无法直接运行的. 解决方法:1,打开Window --> perferences,找到mye ...
- 使用PowerDesigner建立数据库模型【转】
1. 打开PowerDesigner,点击File->New 2. 选择Conceptual Data Model,并修改Model name. 3. 在Palette工具栏中点击Entity ...
- Android -- Service的开启关闭与生命周期
Service是Android 系统中的四大组件之一,是在一段不定的时间运行在后台,不和用户交互应用组件. service可以在很多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity ...
- 获取jQuery版本号
今天在一个页面需要知道jquery版本号,来决定使用什么样的方法,有以下方式可以获取到 $.fn.jquery $.prototype.jquery 这两种方式都可以获取到jquery的版本号