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. android RecyclerView简单的使用

    转自:https://blog.csdn.net/lmj623565791/article/details/45059587 概述 RecyclerView出现已经有一段时间了,相信大家肯定不陌生了, ...

  2. OpenGL开发入门

    1.OpenGL简介: OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL三维图形 API 的子集,针对手机.PDA和游戏主机等嵌入式设备而设计.该API ...

  3. 按照拼音排序的SQL语句条件

    ORDER BY nlssort(NAME, 'NLS_SORT=SCHINESE_PINYIN_M')

  4. git远程从入门到放弃

    git pull下来用git branch -r查看远程分支才有数据 解决方案:指定当前工作目录工作分支,跟远程的仓库,分支之间的链接关系. 比如我们设置master对应远程仓库的master分支 g ...

  5. 撩课-Web大前端每天5道面试题-Day16

    1.for循环中的作用域问题? 写出以下代码输出值,尝试用es5和es6的方式进行改进输出循环中的i值. ; i<=; i++) { setTimeout(function timer() { ...

  6. linux端口开放

      netstat 查看端口开放情况: netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 ...

  7. 最大子序列和问题--时间复杂度O(NlogN)

    最大子序列和问题--时间复杂度O(NlogN) package a; /* * 最大子序列和问题,时间复杂度O(NlogN) */ public class Sequence { private st ...

  8. Freebsd10.3(FreeBSD11 Beta1)使用手记

    Freebsd10.3(FreeBSD11 Beta1)使用手记 1.安装系统. 2.设置ssh2登录,并开启ftp. (1)编辑/etc/ssh/sshd_config文件,设置如下: Permit ...

  9. 军事机密(Secret.pas)

    军事机密(Secret.pas) [问题描述]        军方截获的信息由n(n<=30000)个数字组成,因为是敌国的高端秘密,所以一时不能破获.最原始的想法就是对这n个数进行小到大排序, ...

  10. Android适配--百分比的适配

    首先,需要添加com.android.support:percent:24.1.1 包,版本随意. dependencies { compile fileTree(dir: 'libs', inclu ...