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. PhpStorm 破解及 XDebug 调试

    PhpStorm 破解及 XDebug 调试 PhpStorm 破解 PhpStorm 10.0.2 破解 地址:http://jingyan.baidu.com/article/20095761cb ...

  2. centos开启防火墙端口

    1. 查看已打开的端口 # netstat -anp 2. 查看想开的端口是否已开 # firewall-cmd --query-port=80/tcp 若此提示 FirewallD is not r ...

  3. JAVA基础之——方法直接用类名.的理解

    前言 在java中经常遇到使用classname.method()的方式调用方法,哪些场景需要用到呢,如下: 某些操作不依赖具体实例 某个方法是用频率较高,或者方法本身通用性较强,无需初始化类成员变量 ...

  4. 一款软件同时管理MySQL,MongoDB数据库

    互联网应用开发日新月异,去年分布式应用都还大量使用springmvc+ zookeeper +dubbo,今年就被spring boot ,spring cloud微服务架构替换了,技术的更新换代太快 ...

  5. BZOJ3529: [Sdoi2014]数表(莫比乌斯反演 树状数组)

    题意 题目链接 Sol 首先不考虑\(a\)的限制 我们要求的是 \[\sum_{i = 1}^n \sum_{j = 1}^m \sigma(gcd(i, j))\] 用常规的套路可以化到这个形式 ...

  6. Ubuntu16.04 下安装tomcat

    有两种常用方法: 一.通过 apt-get 命令进行在线安装(会自动配置好环境变量和服务) 二.通过下载并解压 .tar.gz 包进行手动安装(需要手动配置环境变量) 一.通过 apt-get 命令进 ...

  7. \n\r 转义字符

    转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) ,将当前位置移到前一列 008 \f 换页(FF),将当前位置移到下页开头 012 \n 换行(LF) ,将 ...

  8. Java EE大作业之创造class类出现问题-------Implicit super constructor Object() is undefined for default constructor. Mu

    这个学期一直在忙着考驾照的事情,眼看就要期末了.我的大学生活的最后一个大的作业也要来临了.说实话这个学期真的是没有之前的两个学期努力了.不知道是快要毕业的缘故还是真的是把心思用在了驾照上,想着在这次放 ...

  9. 测试canvas绘制旋转文字的性能

    canvas 绘制各种动画效果时,我们经常会使用画布旋转,使绘制上去的元素有旋转的效果. 最近在项目中碰到了很严重的性能问题,经常排查发现是因为绘制批量文字时使用了画布旋转,且每行文字的旋转角度是不一 ...

  10. MUI框架-06-静态页制作(图片轮播)

    MUI框架-06-静态页制作(图片轮播) 轮播也是静态,是相对页面交互来说 上一篇介绍了如何设计一个简单的界面,还没有接触过,请先查看: MUI框架-01-介绍-创建项目-简单页面 轮播组件 之前也介 ...