wsimport的使用

27 篇文章 0 订阅
5 篇文章 0 订阅
快速实现一个基于JWS的webservice项目
A.服务器的建立
B.客户端的建立
C.wsimport的使用
D.wsdl的简单讲解
E.soap的使用

F.代码优先还是契约优先


1.使用对应的指令wsimport:

  wsimport -d  F:\2017StudyCode\Tool\webservice  -keep -verbose  http://localhost:8588/samlai?wsdl
wsimport:对应jdk自带的wsimport的指令内容
-d  F:\2017StudyCode\Tool\webservice:指定对应的目录内容
-keep:是否需要生成源码
        -verbose:是否生成详细过程
http://localhost:8588/samlai?wsdl :对应webservice暴露的接口内容




将对应生成的源码进行拷贝到另外一个空白的客户端的项目,目录如下:


然后还是原来的Client类直接放到此项目上直接仍可使用并调用的对应的webservice接口

package com.samlai.Test;

import java.net.MalformedURLException;
import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;

import com.samlai.service.MyService;

public class ClientTest {
	public static void main(String[] args) {
		//这个java项目脱离的原来的webservice的项目来使用的是jdk自带的wsimport的指令来创建这个项目
		try {
			URL url=new URL("http://localhost:8588/samlai?wsdl");
			QName sname=new QName("http://service.samlai.com/","MyServiceImpService");
			Service service=Service.create(url,sname);
			//单单仅仅这样测试,对应的接口的调用仅限此项目的调用
			//根据对应的协议来实现对应的java 接口的方法
			MyService ms=service.getPort(MyService.class);
			System.out.println(ms.add(100, 39));
			System.out.println(ms.minute(100, 39));
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
		
	}
}

接下来使用的wsimport导出来的源码直接进行调用对应的webservice内容值:

package com.samlai.Test;

import com.samlai.service.MyService;
import com.samlai.service.MyServiceImpService;

public class OrtherProjectTest {
	public static void main(String[] args) {
		/**
		 * wsimport -d  F:\2017StudyCode\Tool\webservice  -keep -verbose  http://localhost:8588/samlai?wsdl
				wsimport:对应jdk自带的wsimport的指令内容
				-d  F:\2017StudyCode\Tool\webservice:指定对应的目录内容
				-keep:是否需要生成源码
        		-verbose:是否生成详细过程
				http://localhost:8588/samlai?wsdl :对应webservice暴露的接口内容
		 */
		//由wsimport的指令获取的java源文件进行调用对应的webservice的接口内容
		//对应的imp文件
		MyServiceImpService myServiceImpService=new MyServiceImpService();
		//用getMyServiceImpPort方法来直接实现对应的类内容
		MyService myService=myServiceImpService.getMyServiceImpPort();
		//直接可以调用对应的接口内容值了
		System.out.println("add--->"+myService.add(100, 200));
		System.out.println("minute--->"+myService.minute(1000, 200));
	}
}

测试通过可以调用此接口~~~




使用TcpMon【可以直接查看到对应的传输的内容格式值】来进行监听对应的端口内容值:

服务端是8588端口:



客户端是访问是7777端口:



由TcpMon进行映射把8588端口变成对应的7777端口:在tcpMon终端下进行配置如下---->这样就可以直接看到对应的请求与返回的报文了

对应的详情如下:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值