Webservice发布
此文甚好,转载自:http://blog.163.com/java_player@126/blog/static/127930738200981555021925/
某些地方笔者已经加以改进。
使用工具:Myeclipse6.0 +Tomcat5.5:
其实webservice就是实现一中机制:客户端可以远程调用服务器的方法:这样可以减少客户端处理的繁琐问题:
下面是一个完整实例的实现过程:
1.创建一个动态的web项目名称就叫做WebServicDemo:
2.在项目中的Java Resource src目录下创建一个新的包名称就叫做:webServiceDemo01
3.创建好工程和类之后就可以开始写类了:
首先写的是服务器端的代码新建Server类:在创建好的包webServiceDemo01中新建一个类:
代码如下:
package webServiceDemo01;
//服务器
public class Server {
//服务器中有方法
public String fanHui(){
String str = null;
str = "这是从服务器返回的信息";
return str;
}
public String say(String name){
String str = null;
str = "你好-->"+name+"-->欢迎学习WebService";
return str;
}
}
为了说明我们在服务器中写两个不同的方法,一个有参数一个没有参数的方法(注
意方法名称的问题,方法名一定要小写啊!)
4.写客户段的代码:新建Client类 :客户端的代码中每一步都有详细的解释:一定要弄明白每一步的作用是什么还有怎么执行的!
package webServiceDemo01;
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
//客户端(完成在客户端访问服务器的方法)
public class Client {
public static void main(String args[]){
try {
//声明一个访问终端
String endpoint = "http://localhost:8080/WebServiceDemo/services/Server"; //此处地址是生成的wsdl文件夹下面wsdl文件中的 <wsdlsoap:address location="http://localhost:8080/***"/>
Service service = new Service();//创建服务
Call call = (Call) service.createCall();//创建呼叫服务器的Call实例
//设置访问的地址(即终端的地址)
call.setTargetEndpointAddress(new java.net.URL(endpoint));
//将服务器所在的包写在new QName()的参数中;
call.setOperationName(new QName("http://webServiceDemo01/",
"say"));//并将所要访问的方法名称当作第二个参数传到服务器;表示是调用服务器的say方法
//此处地址是生成的wsdl文件夹下面wsdl文件中的 <schema elementFormDefault="qualified" targetNamespace="http://**"
//由Call的实例调用invoke方法(参数用对象数组的形式传到服务器) 得到服务器返回的信息
String returns1 = (String) call.invoke(new Object[] { "小宋" });
System.err.println("这是调用服务器有参数的方法返回的信息:-->"+returns1);
//调用没有参数的方法返回的信息
call.setOperationName(new QName("http://webServiceDemo01/",
"fanHui"));//调用返回方法
String returns2 = (String) call.invoke(new Object[]{});
System.out.println("这是调用服务器无参数的方法返回的信息:-->"+returns2);
} catch (Exception e) {
System.err.println(e.toString());
}
}
到此为止整个项目的目录结果如下图所示:
5.写完了客户端就创建好了一个webservice实例了:下面是在MyEclips的发布方法:
在发布之前一定要确保你的环境变量一定要设置的准确(不能有其他多于的设置)!
发布的过程:
选定Service类右击新建web service:
一定要在Service Implementation中添加服务器类
还有要在Publish the Web service复选框中打钩 Overwrite files without waring的复选框中打钩!然后点击下一步。
再点击下一步。
点击Strart server按钮启动服务!
若出现如下图所示的异常的话是因为你在外部已经启动了Tomcat服务器了,端口正在使用之中,只要是启动任务管理器关闭了外面的Tomcat就可以了!
出现下图所示就表示是服务器启动成功了!:
点击next下一步:
点击Finish完成即可;这样直接运行Client程序就可以了:
运行的结果是:
这是调用服务器有参数的方法返回的信息:-->你好-->小宋-->欢迎学习WebService
这是调用服务器无参数的方法返回的信息:-->这是从服务器返回的信息
完成了,呵呵,这样一个WebService的实例就弄完了!
Webservice发布的更多相关文章
- axis2 webservice 发布、调用与项目集成
发布 1.在apache官网下载axis2包,下载Binary Distribution和War Distribution两个zip. 2.将war放入tomcat webapps下部署.并输入 ht ...
- WebService发布到IIS
发布WebService 第一步:选择项目右键发布 第二步:选择文件系统.目标位置(即,发布后文件保存位置) 单击发布 将WebService发布至IIS 第一步:打开IIS 右键添加网站--填写网站 ...
- 基于PI的Webservice发布实例
[转自http://blog.csdn.net/yin_chuan_lang/article/details/6706816] 最近的项目中,接口较多,而Webservice技术是主要实现方式之一.下 ...
- 面向接口的webservice发布方式
import javax.jws.WebService; /**面向接口的webservice发布方式 */ @WebService public interface JobService { pub ...
- WebService发布服务例子
import javax.jws.WebMethod; import javax.jws.WebService; @WebService public interface WebServiceI { ...
- eclipse安装Axis2插件和简单的webservice发布
2019独角兽企业重金招聘Python工程师标准>>> Axis2与CXF是现在很主流的WebService开发框架(java6也已经支持了),项目上还都是基本上用前两种做开发,今天 ...
- java调用C# webService发布的接口
java调用C# webService发布的接口 java调用C# webService方式有很多种我这里只介绍一种 首先需要引入axis的jar包 axis的maven坐标如下 <depend ...
- 使用VS2010创建WebService 发布、测试
http://blog.sina.com.cn/s/blog_45eaa01a0102vopl.html 1 打开VS2010,菜单 文件->新建->项目 2 选择[ASP.net ...
- webservice发布服务:CXF及客户端调用
2.CXF:(与spring整合) CXF相对来说操作没有AXIS繁琐 1.导入spring的jar包和cxf的jar包 2.在spring的核心配置文件中配置发布的接口类 <?xml vers ...
- webService发布和调用--Axis2
一.工具 1.下载 Axis2以及eclipse的Axis2插件.http://axis.apache.org/axis2/java/core/download.cgi 2.axis2-1.7.1-w ...
随机推荐
- bzoj4591 [Shoi2015]超能粒子炮·改
Description 曾经发明了脑洞治疗仪&超能粒子炮的发明家SHTSC又公开了他的新发明:超能粒子炮·改--一种可以发射威力更加 强大的粒子流的神秘装置.超能粒子炮·改相比超能粒子炮,在威 ...
- SpringBoot入门篇--使用IDEA创建一个SpringBoot项目
随着技术的更新对于开发速度的追求,我们越来越不能忍受的是Spring框架对于集成开发以后大量的配置问题.所以SprigBoot应运而生,SpringBoot框架其实就是在Spring框架的外边包裹上了 ...
- linux下python3离线加载nltk_data,不用nltk.download()
在不能上网的服务器上把nltk_data关联到python3,已经安装anaconda3所以不需要安装nltk,环境是linux 首先没有nltk_data在使用nltk会报错 LookupError ...
- java中的左移 右移
java移位运算符:<<(左移).>>(带符号右移)和>>>(无符号右移). 1. 左移运算符 左移运算符<<使指定值的所有位都左移规定的次数. ...
- sqlplus rlwrap readline
- 在ubuntu14.04上搭建OpenVPN服务
简介 在连接了不可信的网络环境后,让手机或者计算机安全的访问互联网,使用虚拟专用网络(Virtual Private Network,VPN)是一个解决办法.OpenVPN是一个SSL VPN完整解决 ...
- Kubernetes集群的安装部署
此文参照https://www.cnblogs.com/zhenyuyaodidiao/p/6500830.html,并根据实操过程略作修改. 1.环境介绍及准备: 1.1 物理机操作系统 物理机操作 ...
- 不可理喻的JSTL标签库
JSTL 全名为Java Server Pages Standard Tag Library(JSP Standard Tag Library),它的中文名称为JSP 标准标签函数库. Web 程序开 ...
- JS 将json数组转为嵌套层级数组
ele UI 的树级菜单的数据要求是这种嵌套的,但是Ztree的老用发的是 var zNodes =[ { id:, pId:, name:"zTree Home", pid:0} ...
- OLI 课程 & Java入学考试的五道题
Unit 1:: Programming with Java ✔️ 机械.自动.不需要智慧地执行原始的内置指令. 字节码相同,JVM不同(体现平台) ✖️ In modern computers i ...