WebService的简单示例

今天,看到需求需要WebService进行通信,所以我就先看看WebService是怎样的一个流程,这里做个简单实例
首先我创建了两个工程,一个为服务端,另一个为客户端
在这里插入图片描述
在这里插入图片描述

part1:服务端(webServiceServer)

我这里创建4个文件,分别如下
在这里插入图片描述
User(实体类)

package com.copa.server;

import lombok.Data;
import lombok.experimental.Accessors;

/**
 * @author copa
 * @createDate 2022-01-11 17:15
 * @function User实体类
 */
@Data
@Accessors(chain = true)
public class User {

    private String id;

    private String name;
}

UserService

package com.copa.server;

/**
 * @author copa
 * @createDate 2022-01-11 17:16
 * @function User接口
 */
import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
public interface UserService {

    @WebMethod
    User publishUserInfo();
}

UserServiceImpl

package com.copa.server;

import javax.jws.WebService;

/**
 * @author copa
 * @createDate 2022-01-11 17:17
 * @function User接口实现类
 */
@WebService
public class UserServiceImpl implements UserService{

    @Override
    public User publishUserInfo() {
        System.out.println("开始进入该service啦~");
        return new User()
                .setId("1")
                .setName("copa");
    }
}

MyServerTest(测试类)

package com.copa.server;

import javax.xml.ws.Endpoint;

/**
 * @author copa
 * @createDate 2022-01-11 17:19
 * @function 服务端测试类
 */
public class MyServerTest {

    public static void main(String[] args) {
        String address = "http://localhost:2333/user_server.asmx";
        Endpoint.publish(address, new UserServiceImpl());
        System.out.println("发布成功!");
    }
}

然后运行
在这里插入图片描述
访问 http://localhost:2333/user_server.asmx?wsdl
在这里插入图片描述
出现这样,就是服务端测试成功了~

part2:客户端(webServiceClient)

在命令行输入,注意路径

wsimport -s “E:\other function\webServiceClient\src” http://localhost:2333/user_server.asmx?wsdl

在这里插入图片描述
会自动生成下面代码
在这里插入图片描述
我们写一个客户端测试类MyClientTest
在这里插入图片描述

package com.copa.server;

/**
 * @author copa
 * @createDate 2022-01-11 17:49
 * @function 客户端测试类
 */
public class MyClientTest {
    public static void main(String[] args) {
        UserServiceImplService factory = new UserServiceImplService();
        UserServiceImpl userService = factory.getUserServiceImplPort();
        System.out.println(userService.publishUserInfo().getId());
        System.out.println(userService.publishUserInfo().getName());
    }
}

看到下图效果就运行成功啦~
在这里插入图片描述

注意事项

如果看到类似两个类具有相同的 XML 类型名称这个bug的话
可以定位到这两个类
在这里插入图片描述
添加下面代码即可

namespace = “http://namespace.thats.not.the.same.as.the.generated”

在这里插入图片描述
在这里插入图片描述
这样就万事大吉啦~

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值