快速实现一个基于JWS的webservice项目
A.服务器的建立
B.客户端的建立
C.wsimport的使用
D.wsdl的简单讲解
E.soap的使用
接下来使用的wsimport导出来的源码直接进行调用对应的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终端下进行配置如下---->这样就可以直接看到对应的请求与返回的报文了
对应的详情如下: