WebService -- Java 实现之 CXF (WebService 服务器端接口)

1. 使用Maven创建一个quickstart项目

2. 引入依赖的Jar包

<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-core</artifactId>
    <version>3.1.5</version>
</dependency>
 
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-frontend-jaxws</artifactId>
    <version>3.1.5</version>
</dependency>
 
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-transports-http-jetty</artifactId>
    <version>3.1.5</version>
</dependency>

3. 编写Service 接口 + 实现类

package com.example.tuo.webservice;

import javax.jws.WebService;

@WebService
public interface HelloWorld {

  public String sayHello(String sb);

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package com.example.tuo.webservice.impl;
 
import javax.jws.WebService;
 
import com.example.tuo.webservice.HelloWorld;
 
@WebService
public class HelloWorldImpl implements HelloWorld{
 
    public String sayHello(String sb) {
        // TODO Auto-generated method stub
        return "Hello world," +sb;
    }
 
}

4. 启动服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package com.example.tuo.server;
 
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
 
import com.example.tuo.webservice.HelloWorld;
import com.example.tuo.webservice.impl.HelloWorldImpl;
 
public class Server {
 
    public static void main(String[] args){
         
        System.out.println("web service starting...");
         
         
        JaxWsServerFactoryBean wsSvrFactoryBean = new JaxWsServerFactoryBean();
        String address = "http://127.0.0.1/helloWorld";
        wsSvrFactoryBean.setAddress(address);
        wsSvrFactoryBean.setServiceClass(HelloWorld.class);
        HelloWorld implementor = new HelloWorldImpl();
        wsSvrFactoryBean.setServiceBean(implementor);
        wsSvrFactoryBean.create();
         
         
        System.out.println("web service started...");
    }
}

5. 访问服务

 

 

至此,我们的第一个基于CXF的webservice已经编写完成并发布出来了。

posted @   TonyZhang24  阅读(754)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示