目录
  1. 1. WebService应用1
    1. 1.1. 创建父项目myWebService
    2. 1.2. 创建子项目server
      1. 1.2.1. 创建包
      2. 1.2.2. 创建接口IUserService
      3. 1.2.3. 创建实现类UserService
      4. 1.2.4. 创建测试类TestApp
    3. 1.3. 创建子项目client
      1. 1.3.1. 自动生成包
      2. 1.3.2. 创建包
      3. 1.3.3. 创建测试类TestApp
    4. 1.4. 导入库
      1. 1.4.1. CXF
    5. 1.5. 测试myWebService应用1
      1. 1.5.1. 运行server
      2. 1.5.2. 运行client
WebService应用1

WebService应用1

创建父项目myWebService

  • 首先,进入New Project页面,选择Maven项创建Maven项目,再勾选Create from archetype选项,选择勾选项
    创建父项目
  • 然后,进入下图这个页面,填入需要创建父项目的项目发布id
    创建父项目1
  • 之后,进入下图页面,选择自己的maven的settings.xml和maven仓库,下面小窗口中name填入archetypeCatalog,value中填入internal(local在本地库中搜索,internal在设置的网络仓库中搜索),这样会让项目创建的快一点,不需要等几分钟。
    创建父项目2
  • 接着,进入下一个页面,这个页面Project format需要设置为.idea
    创建父目录3
  • 最终点击finish完成项目创建

创建子项目server

  • 首先,右键点击项目名,选择new选项的Moudle,进入下图这个页面。之后选择Maven,选中Create from archetype,然后选中勾选项
    创建子项目server
  • 然后,进入下图页面,填入需要创建的子项目的项目发布id
    创建子项目server1
  • 之后的流程与上面父项目的一样
创建包
  • 在server子项目中创建一个包com.rack.webService.server
创建接口IUserService
1
2
3
4
5
6
7
8
package com.rack.webService.server;
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService //这个注解是用来标明这个类是WebService类
public interface IUserService {
@WebMethod ////这个注解是用来标明这个方法是WebService方法
String getStr(String str);
}
创建实现类UserService
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.rack.webService.server;

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

@WebService
public class UserService implements IUserService {
@WebMethod
@Override
public String getStr(String str) {
System.out.println("加工后的数据:"+str);
return "加工后的数据:"+str;
}
}
创建测试类TestApp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package com.rack.webService.server;
import javax.xml.ws.Endpoint;
public class TestApp {
public static final String PATH="http://127.0.0.1:8080/myWebService/rack";
public static void main(String[] args) {
/**
* 这个静态方法是用来发布webservice的
* PATH变量是用来存储需要发布的路径
* service是需要应用的对象
*/
UserService service = new UserService();
Endpoint.publish(PATH,service);
System.out.println("发布成功");
}
}

创建子项目client

  • 首先,右键点击项目名,选择new选项的Moudle,进入下图这个页面。之后选择Maven,选中Create from archetype,然后选中勾选项
    创建子项目client
  • 然后,进入下图页面,填入需要创建的子项目的项目发布id
    创建子项目client2
  • 之后的流程与上面父项目的一样
自动生成包
  • 使用命令自动生成包com.rack.webservice.server
1
2
cd /home/share/workspace/myWebService/client/src/main/java #进入client的源码目录
wsimport -keep http://127.0.0.1:8080/myWebService/rack?wsdl #使用jdk自带的wsimport命令在当前目录自动生成服务端的代码
创建包
  • 在client项目中创建包com.rack.webservice.client
创建测试类TestApp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package com.rack.webservice.client;

import com.rack.webservice.server.UserService;
import com.rack.webservice.server.UserServiceService;

public class TestApp {
public static void main(String[] args) {
//创建代理类对象,代理类的类名在wsdl文档的最后一个节点server中的name属性里
UserServiceService userServiceService = new UserServiceService();
//通过代理对象获取到userService对象(真正的被代理对象)
UserService userServicePort = userServiceService.getUserServicePort();
//被代理对象调用方法
String str = userServicePort.getStr("rack");
System.out.println(str);
}
}

导入库

这个项目需要导入cxf框架

CXF
  • 介绍
    Apache CXF 是一个开源的 Services 框架,用于WebService,支持soap协议,可以和spring无缝集成。
  • File->Project Structure->Libraries,进入下图页面
    cxf1
  • 点击"+",选择Java,之后选择你的cxf目录,再选择需要用到的子项目,这样就能将cxf加入项目(需要用到的项目就加)
    ![cxf2]{cxf2.png}

测试myWebService应用1

运行server

运行server中的TestApp

1
发布成功
运行client

运行client的TestApp

1
加工后的数据:rack
文章作者: rack-leen
文章链接: http://yoursite.com/2019/05/27/Java/Java%E6%A1%86%E6%9E%B6/WebService/WebService%E5%BA%94%E7%94%A81/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 rack-leen's blog
打赏
  • 微信
  • 支付宝

评论