发布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链接地址为 ...
随机推荐
- April Fools Day Contest 2016 G. You're a Professional
G. You're a Professional 题目连接: http://www.codeforces.com/contest/656/problem/G Description A simple ...
- poj 3624 Charm Bracelet 背包DP
Charm Bracelet Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://poj.org/problem?id=3624 Descripti ...
- PAT甲级1103. Integer Factorization
PAT甲级1103. Integer Factorization 题意: 正整数N的K-P分解是将N写入K个正整数的P次幂的和.你应该写一个程序来找到任何正整数N,K和P的N的K-P分解. 输入规格: ...
- PHP格式化金钱函数
实现目的: 对数字进行格式化,以类似¥10,000,000的格式输出. 实现方法: function doFormatMoney($money){ $tmp_money = strrev($money ...
- Vue.js插件开发
Vue.js插件是为应用添加全局功能的一种强大而且简单的方式.插件的用途很广泛,从全局组件,到为应用添加一些额外的功能.如路由(Vue Router),存储在应用程序里的不可变数据(Vuex). 一般 ...
- VisualStudio:WEB 性能测试和负载测试 入门
背景 一直做的是中小企业应用,很少关注性能和负载这里,进来准备看一本关于并发编程的图书,为了量化的测试 WEB 环境的性能和负载,特意玩了一下 VS 提供的测试项目. 新的测试项目 新建项目 性能测试 ...
- iOS开发 贝塞尔曲线UIBezierPath(2)
使用CAShapeLayer与UIBezierPath可以实现不在view的drawRect方法中就画出一些想要的图形 . 1:UIBezierPath: UIBezierPath是在 UIKit 中 ...
- 《实战突击:PHP项目开发案例整合(第2版)(含DVD光盘1张)》
<实战突击:PHP项目开发案例整合(第2版)(含DVD光盘1张)> 基本信息 作者: 徐康明 辛洪郁 出版社:电子工业出版社 ISBN:9787121221378 上架时间:2014 ...
- 如何从MATLAB里面保存出分辨率高的图形
MATLAB堪称科技工作者的倚天屠龙,其科学计算,简洁的编程风格,友好的图形界面等等,都使得它颇受欢迎.MATLAB作图相当简单,而且美观,但是,缺点是分辨率低,一直没有发现,直到最近一期刊编辑告诉我 ...
- Android内存调试命令
adb shell dumpsys meminfo 包名 比如: adb shell dumpsys meminfo cn.com.test