WEBSERVICE入门02:创建web服务
来源:互联网 发布:怎么做好金融网络销售 编辑:程序博客网 时间:2024/05/18 00:00
本文主要讲的事基于JWS的web服务的构建
在构建web服务时,必须要声明表明SEI(Service EndPoint Interface,服务提供的接口)和SIB(Service Implementation Bean,服务实现类)
服务端代码的编写:
步骤一:创建服务的接口
package com.wyj.service;import javax.jws.WebService;@WebService //表明是服务发布的接口public interface IMyservice {public int add(int a,int b); public String sayHi(String name); }步骤二:创建实现类:
package com.wyj.service;import javax.jws.WebService;//表明是服务实现类@WebService(endpointInterface="com.wyj.service.IMyservice") public class MyServiceImpl implements IMyservice {@Overridepublic int add(int a, int b) {//完成2个数的加法System.out.println("Server: "+a+"+"+b+"="+(a+b));return a+b;}@Overridepublic String sayHi(String name) {System.out.println("Server: Hi,"+name);return "Hi,"+name;}}
步骤三:发布服务:
package com.wyj.service;import javax.xml.ws.Endpoint;public class MyServer {public static void main(String[] args) {String address ="http://localhost:6789/ns";Endpoint.publish(address, new MyServiceImpl());}}
其中address表示是服务发布的地址,即服务的URL;
运行MyServer后,在浏览器中输入http://localhost:6789/ns?wsdl就可以访问web服务。返回的结果就是一个xml文档。
客户端代码的编写:
生成WEB服务的客户端的代码,主要用到的是wsimport这个命令。在命令提示符中输入:
wsimport -d c:/webservice -keep -verbose http://localhost:6789/ns?wsdl,即可在C盘的webservice中得到客户端的代码(前提是在C盘下存在webservice的目录)
wsimport的命令说明:
-d:是指定生成代码的目录
-keep:表示要生成.java的源文件
-verbose:表示要显示生成的详细过程
http://localhost:6789/ns?wsdl:是服务端发布的地址
步骤二:通过客户端调用webservice服务
1.将所有生成的代码导入到新建的一个java项目中
2.创建客户端应用程序
方法一:
package com.wyj.service;public class MyClient {public static void main(String[] args) {MyServiceImplService myservice = new MyServiceImplService();IMyservice service = myservice.getMyServiceImplPort();System.out.println(service.add(22, 13));System.out.println(service.sayHi("monkey"));}}方法二:
package com.wyj.service;import java.net.MalformedURLException;import java.net.URL;import javax.xml.namespace.QName;import javax.xml.ws.Service;public class MyClient {public static void main(String[] args) {try {//创建访问web服务地址的urlURL url = new URL("http://localhost:6789/ns?wsdl");//通过QName指明服务的具体信息QName qname = new QName("http://service.wyj.com/","MyServiceImplService");//创建服务Service service = Service.create(url,qname);IMyservice ms = service.getPort(IMyservice.class);System.out.println(ms.add(22, 13));System.out.println(ms.sayHi("wyj"));} catch (MalformedURLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}以上2中方法都可以完成对服务端的调用,但是一般使用第一种,第二种使用太繁琐了。
以上的方法在客户端都会输出:
35
Hi,monkey
在服务端的输出为:
Server: 22+13=35
Server: Hi,monkey
Server: Hi,monkey
到这里,就完成了客户端调用服务端完成对应操作的过程。
以上就是一个基于jax-ws服务的服务端和客户端的一个简单的编写过程。
- WEBSERVICE入门02:创建web服务
- C#创建Web服务(入门图解)
- axis2创建webservice客户端全过程(调用.net web服务)
- webservice 服务创建
- WebService服务创建
- Webservice服务创建、调用
- eclipse创建webservice服务
- CXF创建WebService服务
- WebService .net web服务
- Web服务 [WebService]
- webservice web服务
- Web服务入门之一:通过Xfire创建本…
- Jax-Ws创建WebService服务
- MOSS创建自定义WebService服务
- 使用axis创建WebService服务
- eclipse下创建webService服务
- WebService---web服务的使用
- Web项目调用webservice服务
- AndroidAnnotations——SeekBarEventsSeekBar事件
- 神秘的影子帐号揭秘
- Flip Game
- git clone/版本库之间的push与pull
- 面试字符串篇—字符串常考知识点汇总
- WEBSERVICE入门02:创建web服务
- Java NIO框架Netty教程(一) – Hello Netty
- 面试
- JSON.parse()和JSON.stringify()
- android service 值得注意的地方(1)
- SQL Server死锁总结
- java hashcode和equal总结
- 网站入侵思路(初级黑客渗透篇)
- linux编译android时报gcc和g++错误问题