使用jdk自带的webservice

一  编写jdk的webservice的服务器代码

    package com.atguigu.day01_ws.ws;


import javax.jws.WebMethod;
import javax.jws.WebService;


/*
 * SEI
 * @author Erica
 *
 */
@WebService
public interface HelloWS {
     @WebMethod
public String sayHello(String name);

}


 @WebService 表示这个是一个webservice 的服务端

 @WebMethod表示这个是一个webservice 的服务端的方法。


  它的实现类如下

package com.atguigu.day01_ws.ws;


import javax.jws.WebService;


@WebService
public class HelloWSImpl implements HelloWS {


@Override
public String sayHello(String name) {
System.out.println("server sayhello() "+name);
return "hello "+name;
}


}




 编写webservice 的服务器的注册代码

package com.atguigu.day01_ws.ws.server;


import javax.xml.ws.Endpoint;


import com.atguigu.day01_ws.ws.HelloWSImpl;


public class ServerTest {


public static void main(String[] args) {
        String address="http://192.168.0.106:8989/day01_ws/hellows";
Endpoint.publish(address, new HelloWSImpl());
}


}


address地址是发布webservice的服务的地址,客户端可以根据这个地址来访问

运行该main方法,看到该运行台一直是红色的,表明一直在运行。自此服务器已经完成。




二 编写webservice 的客户端

1 得到wsdl文件

得到服务器地址:http://192.168.0.106:8989/day01_ws/hellows 在后面加入?wsdl,得到这个地址http://192.168.0.106:8989/day01_ws/hellows?wsdl,在浏览器输入,得到如下





2 建立一个webservice的客户端工程,并通过wsdl文件生成客户端关于wsdl客户端代码

进入cmd,进入客户端代码src目录下面,输入命令 wsimport  -keep  服务器地址?wsdl

 



会看到生成的客户端代码如下图:




编写客户端调用服务器的代码:

package com.atguigu.day01_ws_client.test;


import com.atguigu.day01_ws.ws.*;


/* 第一步 进入客户端代码 src  wsimport -keep   http://192.168.0.106:8989/day01_ws/hellows?wsdl
 * 
 */


public class ClientTest {
/*
 *  调用webservice 
 * 
 */
public static void main(String[] args) {
HelloWSImplService  factory =new HelloWSImplService();
HelloWSImpl   helloWS =  factory.getHelloWSImplPort();
System.out.println(helloWS.sayHello("Erica"));
}


}




客户端访问服务端webservice成功!!!


还有另外一种webservice生成客户端代码的方式

把上面浏览器访问wsdl文件保存下来,重命名位.wsdl后缀。放到客户端工程下面




设置tomcat 里面的tcp/ip端口转发,并启动



8080是自己设置的本地端口号

8989是服务器端口号



修改拷贝到客户端工程下面的wsdl文件的地址,因为本地端口设置的是8080,所以改为8080



进入cmd,根据这个wsdl文件,生成客户端代码:



运行客户端程序,访问成功,并且这次有tcp的信息出来



可以看出请求的是post方法,方法体是xml格式的文件,返回的也是xml格式的文件.走的是soap协议。





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值