整合cxf

配置cxf

server—

1.导入依赖

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

2.定义接口 打注解

package com.example.de1;

import javax.jws.WebService;

@WebService()
public interface HelloWorld {

    public String sayHello(String name);
}

3.编写接口实现类

package com.example.de1;

import javax.jws.WebService;

@WebService(/*targetNamespace = "http://de1.example.com/"*/)
public class HelloWorldImpl implements HelloWorld {
    @Override
    public String sayHello(String name) {
        return "hello world";
    }
}

使用cxf发布服务

package com.example.de1;

import org.apache.cxf.endpoint.Server;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

@Component
public class runner implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        //  //第一种发布方式:通过CXF提供的JaxWsServerFactoryBean来发布webservice

        JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
        factory.setServiceClass(HelloWorldImpl.class);
        factory.setAddress("http://localhost:8081/HelloWorld");
        Server server = factory.create();
        server.start();

    }
}

client

编写interface 引用发布服务

package com.example.de2;

import javax.jws.WebService;

@WebService(targetNamespace = "http://de1.example.com/")
public interface HelloWorld {

    public String sayHello(String name);
}

使用cxf代理调用

public static void main(String[] args) {
        //代码中调用
        JaxWsProxyFactoryBean bean = new JaxWsProxyFactoryBean();
        bean.setServiceClass(HelloWorld.class);
        bean.setAddress("http://localhost:8081/HelloWorld?wsdl");
        HelloWorld helloWorldService = (HelloWorld)bean.create();
        String result = helloWorldService.sayHello("Kevin");
        System.out.println(result);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值