java WebService jws 入门学习笔记
来源:互联网 发布:纳尔逊勋爵 知乎 编辑:程序博客网 时间:2024/06/08 01:03
研究下jdk webService 觉得非常好用,可以像使用本地方法那样去调用
什么原理就不说了,一大堆什么规范的我也说不明白
使用java webService前提条件
1.系统已安装jdk1.6以上
2.系统已配置java环境变量
服务端示例代码:
package com.wei.service;import javax.jws.WebMethod;import javax.jws.WebService;import javax.xml.ws.Endpoint;/** * webService服务端 * @author wangwei * May 27, 2013 */@WebServicepublic class HelloWorld {@WebMethod public String sayHello(String userName){return "Hello " + userName;}public static void main(String[] args) {Endpoint.publish("http://localhost:8080/webservice/hws", new HelloWorld());}}
在运行服务端前需要先使用jdk/bin中wsgen来生成 服务所需要的依赖类
如果没有生成直接运行可能会出现如下错误:
Exception in thread "main" com.sun.xml.internal.ws.model.RuntimeModelerException: runtime modeler error: Wrapper class com.wei.service.jaxws.SayHello is not found. Have you run APT to generate them?at com.sun.xml.internal.ws.model.RuntimeModeler.getClass(RuntimeModeler.java:256)at com.sun.xml.internal.ws.model.RuntimeModeler.processDocWrappedMethod(RuntimeModeler.java:567)at com.sun.xml.internal.ws.model.RuntimeModeler.processMethod(RuntimeModeler.java:514)at com.sun.xml.internal.ws.model.RuntimeModeler.processClass(RuntimeModeler.java:341)at com.sun.xml.internal.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:227)at com.sun.xml.internal.ws.server.EndpointFactory.createSEIModel(EndpointFactory.java:308)at com.sun.xml.internal.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:174)at com.sun.xml.internal.ws.api.server.WSEndpoint.create(WSEndpoint.java:420)at com.sun.xml.internal.ws.api.server.WSEndpoint.create(WSEndpoint.java:439)at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.createEndpoint(EndpointImpl.java:208)at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.publish(EndpointImpl.java:138)at com.sun.xml.internal.ws.spi.ProviderImpl.createAndPublishEndpoint(ProviderImpl.java:90)at javax.xml.ws.Endpoint.publish(Endpoint.java:170)at com.wei.service.HelloWorld.main(HelloWorld.java:22)
wsgen的使用方法:
1.打开命令提示符窗口 转到项目主目录中 如我的项目目录为 D:\workspace\javaWebService>
2.输入wsgen -cp ./bin -s ./src -d ./bin -wsdl com.wei.service.HelloWorld
-cp 定义classpath
-s 源码文件存放目录 当前则放到src目录中
-d 编译文件存放目录 当前则放到bin目录中
-wsdl 生成wsdl文件
com.wei.service.HelloWorld 指定服务端程序
3.完成后会在com.wei.service即服务程序目录中新增一个jaxws目录并包含依赖类
4.运行服务端程序 在 IE中输入http://localhost:8080/webservice/hws?wsdl 出现如下个界面即完成服务端部署
生成客户端
在命令提示符窗口执行 wsimport -d ./bin -s ./src -p com.wei.client http://localhost:8080/webservice/hws?wsdl
-d 编译文件存放目录 本例为bin目录
-s 源文件存放目录 本例为src目录
-p 定义生成类的包名
命令执行完成后会在com.wei.client包中生成客户端执行类文件
如下图
调用方法
package com.wei.test;import com.wei.client.HelloWorld;import com.wei.client.HelloWorldService;/** * * @author wangwei * May 28, 2013 */public class Test {public static void main(String[] args) {HelloWorldService hws = new HelloWorldService();HelloWorld hw = hws.getHelloWorldPort();System.out.println(hw.sayHello("wangwei"));}}输出结果:Hello wangwei
这样整个服务的部署和调用就完成了
下面符上一些关于jdk webService的一些说明
- java WebService jws 入门学习笔记
- WebService学习笔记(webservice、soap、wsdl、jws详细分析)
- Web Service学习笔记(webservice、soap、wsdl、jws详细分析)
- Web Service学习笔记(webservice、soap、wsdl、jws详细分析)
- Web Service学习笔记(webservice、soap、wsdl、jws详细分析)
- Web Service学习笔记(webservice、soap、wsdl、jws详细分析) .
- Web Service学习笔记(webservice、soap、wsdl、jws详细分析)
- Web Service学习笔记(webservice、soap、wsdl、jws详细分析) .
- Web Service学习笔记(webservice、soap、wsdl、jws详细分析)
- Web Service学习笔记(webservice、soap、wsdl、jws详细分析)
- Web Service学习笔记(webservice、soap、wsdl、jws详细分析)
- Web Service学习笔记(webservice、soap、wsdl、jws详细分析)
- JAX-WS(JWS):Java WebService
- Web Service学习笔记(webservice、soap、wsdl、jws详细分析) Webservice的wsdl文件解析与Soap消息的发送、接收(不生成java客户端代码)
- webservice-jws
- jws+webservice
- WebService入门学习笔记
- Excel如何调用JWS(Java Webservice)
- VPN的实现原理
- GDB详解
- Java Swing编程:JTable表格
- mysql编码问题
- Xcode 4.1~4.6 + iOS 5、iOS 6免证书(iDP)开发+真机调试+生成IPA全攻略
- java WebService jws 入门学习笔记
- linux2.6的LCD驱动分析
- Linux GCC常用命令
- JavaSE——Java网络编程
- 实用make最佳实践
- 随机模拟的基本思想和常用采样方法(sampling)
- LCD驱动分析:时序的分析
- 操作系统_再识(Linux 驱动模型)
- 算法之选择排序【C语言】