wsimport的使用

来源:互联网 发布:守望先锋左上角数据vrm 编辑:程序博客网 时间:2024/05/22 14:14
快速实现一个基于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?wsdlwsimport:对应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