1、概述

开发手段:

  使用jdk开发(1.6及以上的版本)

  使用CXF框架开发

组成:

  -服务器端

  -客户端

2、使用JDK开发

1)、服务器端

-@WebService(SEI和SEI的实现类)

-@WebMethod(SEI中的所有方法)

2)、客户端

使用eclipse提供的web service浏览器访问

-查看对应的wsdl文档

-请求webservice病查看请求和响应的信息

创建客户端应用编码方式访问:

-借助jdk的wsimort.exe工具生成客户端代码:

wsimport -keep url

-借助生成的代码写请求编码

3、服务器端的代码实现:

1、工程的目录结构如下:

2、类:

HelloService.java 
package com.cr.service;

import javax.jws.WebMethod;
import javax.jws.WebService; @WebService
public interface HelloService {
@WebMethod
public String sayHello(String name);
}
HelloServiceImpl.java 
package com.cr.service.impl;

import javax.jws.WebService;
import com.cr.service.HelloService; @WebService
public class HelloServiceImpl implements HelloService{ @Override
public String sayHello(String name) {
System.out.println("webservice sercer...");
System.out.println("name:" + name );
return "hello:"+name;
} }

server.java

package com.cr.server;

import javax.xml.ws.Endpoint;

import com.cr.service.impl.HelloServiceImpl;

//发布service
public class server {
public static void main(String[] args){
String address = "http://localhost:8081/webserviceserver/helloService";
Endpoint.publish(address , new HelloServiceImpl());
System.out.println("发布成功....");
}
}

 此时运行,项目会在后台运行,并且不是以往的瞬间关闭!

使用浏览器查看wsdl文档:

http://localhost:8081/webserviceserver/helloService?wsdl

使用Eclipse自带的web service浏览器进行测试:

使用其进行测试:

查看服务器端的打印情况:

4、客户端的 实现

1、此时新建的客户端如下:

2、使用命令进行生成客户端的代码

先进入带工程的src路径下

执行命令:

wsimport -keep http://localhost:8081/webserviceserver/helloService?wsdl

3、进入工程进行刷新包

4、写实现的方法:

client.java

package com.cr.service.client;

import com.cr.service.impl.HelloServiceImpl;
import com.cr.service.impl.HelloServiceImplService; public class client { public static void main(String[] args) { HelloServiceImplService factory = new HelloServiceImplService(); HelloServiceImpl helloWs = factory.getHelloServiceImplPort(); System.out.println(helloWs); System.out.println(helloWs.getClass()); String res = helloWs.sayHello("java");
System.out.println("res:" + res); } }

结果:

使用代理的方式

JAX-WS RI 2.2.-b130926. svn-revision#5f6196f2b90e9460065a4c2f4e30e065b245e51e: Stub for http://localhost:8081/webserviceserver/helloService
class com.sun.proxy.$Proxy32
res:hello:java

还可以使用Eclipse自带的Web Service浏览器进行相关的测试:

5、使用Ec自带的TCP/IP工具进行监听请求(端口转发)

1、将服务端的WSDL文档保存到本地

2、修改文档的端口: 8081端口改为8082

  wsdl文件

  

   新建一个工程

  

  wsdl保存在本地的文件

   

  

3、根据本地的wsdl生成客户端的代码,并且写客户端的调用代码

  

4、配置eclipsedeTCP/IP,启动监听  

  

  

5‘编写客户端的测试u代码“

client.java 
package com.cr.service.client;
import com.cr.service.impl.HelloServiceImpl;
import com.cr.service.impl.HelloServiceImplService; public class client {
public static void main(String[] args) { HelloServiceImplService factory = new HelloServiceImplService(); HelloServiceImpl helloWs = factory.getHelloServiceImplPort(); System.out.println(helloWs); System.out.println(helloWs.getClass()); String res = helloWs.sayHello("java");
System.out.println("res2:" + res);
}
}

启动测试:

JAX-WS RI 2.2.-b130926. svn-revision#5f6196f2b90e9460065a4c2f4e30e065b245e51e: Stub for http://localhost:8082/webserviceserver/helloService
class com.sun.proxy.$Proxy32
res2:hello:java

6、执行客户端代码发送service请求监听得到:

请求体的代码:

<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:sayHello xmlns:ns2="http://impl.service.cr.com/">
      <arg0>java</arg0>
    </ns2:sayHello>
  </S:Body>
</S:Envelope>

响应体的代码:

<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body><
  ns2:sayHelloResponse xmlns:ns2="http://impl.service.cr.com/">
    <return>hello:java</return>
  </ns2:sayHelloResponse>
</S:Body></S:Envelope>

基于soap协议传输

3、Web Service-Jaxws(Eclipse版本)的更多相关文章

  1. 4、Web Service-Jaxws(Eclipse版本)实现查看天气和手机归属地

    1.前提概要 免费的官网:http://www.webxml.com.cn/zh_cn/web_services.aspx 官网提供了各种免费的webservice 我们使用的是:http://ws. ...

  2. Apache CXF实现Web Service(1)——不借助重量级Web容器和Spring实现一个纯的JAX-WS web service

    废话少说,先在Eclipse中新建一个Java Project (可以不是WTP的Dynamic Web Project) 选择Java Project 再看pom.xml 我们使用cxf 3.1.4 ...

  3. 使用wsimport和JAX-WS调用Web Service接口

    本文简单举例说明如何使用wsimport工具和JAX-WS API调用Web Service接口.此方法的优点:使用JDK自带的工具和API接口,无需依赖第三方库. JDK版本:1.8.0_141开发 ...

  4. Eclipse+Axis使用WSDL文件生成Web Service服务端/客户端

    JDK版本:1.5.0_22 Eclipse版本:Helios Service Release 2(3.6.2) WSDL文件的创建过程见http://blog.csdn.net/a19881029/ ...

  5. Eclipse+Axis自动生成Web Service WSDL文件

    JDK版本:1.5.0_22 Eclipse版本:Helios Service Release 2(3.6.2) 首先创建一个web工程,创建过程如下: 如果选择Apache Tomcat v5.5, ...

  6. 使用Eclipse自带的Axis1插件生成Web Service服务端客户端

    JDK版本:1.5.0_22 Eclipse版本:Helios Service Release 2(3.6.2) WSDL文件的创建过程见http://blog.csdn.net/a19881029/ ...

  7. MyEclipse JAX-WS Web Service

    在Myeclipse8.5下开发Web service程序,目前系统支持的开发框架有3个,JAX-WS,REST(JAX-RS),XFire.其中系统建议不要使用XFire 的框架,可能是要被淘汰了( ...

  8. 与Java Web Service相关的若干概念(JAX-WS,JAX-RS)

    WS ,JAX-WS ,JAX-RS,REST,Restlet,SOAP l  JWS: 是指与webservice相关的J2EE(其实现在应该叫做Java EE吧)技术叫做 JWS(全称就是 jav ...

  9. 基于JAX-WS的Web Service服务端/客户端 ;JAX-WS + Spring 开发webservice

    一.基于JAX-WS的Web Service服务端/客户端 下面描述的是在main函数中使用JAX-WS的Web Service的方法,不是在web工程里访问,在web工程里访问,参加第二节. JAX ...

随机推荐

  1. 微信小程序通过CODE换取session_key和openid

    微信小程序的用户信息获取需要请求微信的服务器,通过小程序提供的API在小程序端获取CODE,然后将CODE传入到我们自己的服务器,用我们的服务器来换取session_key和openid. 小程序端比 ...

  2. Spark Pregel参数说明

    Pregel是个强大的基于图的迭代算法,也是Spark中的一个迭代应用aggregateMessage的典型案例,用它可以在图中方便的迭代计算,如最短路径.关键路径.n度关系等.然而对于之前对图计算接 ...

  3. Redis 的 Lua 脚本支持

    Redis 2.6.0 内置的Lua Script支持,可以在Redis的Server端一次运行大量逻辑. 整个Script默认是在一个事务里的. Script里涉及的所有Key尽量用变量,从外面传入 ...

  4. C# 设计模式·创建型模式

    面试问到这个··答不出来就是没有架构能力···这里学习一下···面试的时候直接让我说出26种设计模式··当时就懵逼了··我记得好像之前看的时候是23种的 还有3个是啥的··· 这里先列出几种创建型模式 ...

  5. Bootstrap Modal多个弹出层顺序

    Bootstrap Modal多个弹出层顺序与div的顺序关联.后来者居上:即div靠后的modal层弹出的时候会在上层. 比如上图所示,模态框2弹出的时候会在模态框1上面.

  6. PHP中使用Jpgraph生成统计图

    Jpgraph是PHP图表类库,可以生成折线图.柱状图.大饼图等等统计图.如果你想使用PHP生成统计图来统计数据,使用它再方便不过啦. 如果说你要亲自使用GD库来写的话,那我只能膜拜大神啦(我不会哈哈 ...

  7. Android的事件分发(dispatchTouchEvent),拦截(onInterceptTouchEvent)与处理(onTouchEvent)

    在Android中,View的结构是树状的,所以,当触发触摸事件的时候,其事件传递也是从上之下一层层的传递.下面我们结合例子来一点点进行分析. 首先,我们需要了解事件处理中的几个方法: 1.在View ...

  8. 安卓app开发-03-项目的基本开发步骤

    android项目的基本开发步骤 这里分享一下开发 安卓 app 的流程,当然有些感觉不必要,其实不然,前期工作也是极为重要的额,就像开发的时候如果目标不对的话,到后期后很迷的,所以一定要提前做好规划 ...

  9. Spring IOC (DI-依赖注入)

    看到一篇文章,讲Spring的依赖注入讲的很好理解,也很容易理解,非常详细.原文地址: https://blog.csdn.net/javazejian/article/details/5456130 ...

  10. 排查在 Azure 中创建、重启 Windows VM 或调整其大小时发生的分配失败

    创建 VM.重新启动已停止(解除分配)的 VM 和重设 VM 大小时,Azure 会为订阅分配计算资源. 执行这些操作时,即使尚未达到 Azure 订阅限制,也可能偶尔收到错误. 本文说明一些常见分配 ...