首页 技术 正文
技术 2022年11月12日
0 收藏 936 点赞 2,665 浏览 3338 个字

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、工程的目录结构如下:

3、Web Service-Jaxws(Eclipse版本)

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("发布成功....");
}
}

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

3、Web Service-Jaxws(Eclipse版本)

使用浏览器查看wsdl文档:

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

3、Web Service-Jaxws(Eclipse版本)

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

3、Web Service-Jaxws(Eclipse版本)

使用其进行测试:

3、Web Service-Jaxws(Eclipse版本)

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

3、Web Service-Jaxws(Eclipse版本)

4、客户端的 实现

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

3、Web Service-Jaxws(Eclipse版本)

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

3、Web Service-Jaxws(Eclipse版本)

先进入带工程的src路径下

3、Web Service-Jaxws(Eclipse版本)

执行命令:

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

3、Web Service-Jaxws(Eclipse版本)

3、进入工程进行刷新包

3、Web Service-Jaxws(Eclipse版本)

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文件

  3、Web Service-Jaxws(Eclipse版本)

   新建一个工程

  3、Web Service-Jaxws(Eclipse版本)

  wsdl保存在本地的文件

   3、Web Service-Jaxws(Eclipse版本)

  

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

  3、Web Service-Jaxws(Eclipse版本)

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

  3、Web Service-Jaxws(Eclipse版本)

  3、Web Service-Jaxws(Eclipse版本)

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请求监听得到:

3、Web Service-Jaxws(Eclipse版本)

请求体的代码:

<?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协议传输

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,000
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,512
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,358
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,141
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,771
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,849