【问题标题】:How to properly inject bean in Spring boot for a service genearted with with apache cxf?如何在 Spring Boot 中为使用 apache cxf 生成的服务正确注入 bean?
【发布时间】:2020-12-03 07:42:41
【问题描述】:

我正在尝试为 Soap Web 服务实现客户端。我有一个 Spring Boot 应用程序,我使用 apache cxf 从 wsdl 生成了类。不知何故,我无法正确注入 bean 并使用它的方法。这是我的代码:

配置类:

@Bean(name = "myApiClient")
public GeneratedService myApiClient(MyCredentials credentials) {
    JaxWsProxyFactoryBean jaxWsProxyFactoryBean = new JaxWsProxyFactoryBean();
    jaxWsProxyFactoryBean.setServiceClass(GeneratedService.class);
    jaxWsProxyFactoryBean.setAddress(getUrl());
    jaxWsProxyFactoryBean.setUsername(credentials.getUser());
    jaxWsProxyFactoryBean.setPassword(credentials.getPassword());

    return (GeneratedService) jaxWsProxyFactoryBean.create();
}

我的服务:

@Service
public class MyServiceImpl implements MyService {

    GeneratedService myApiClient;

    @Autowired
    public MyServiceImpl(GeneratedService myApiClient) {
        this.myApiClient = myApiClient;
    }

    @Override
    public List<MyObject> someMethod() {
        return myApiClient.someApiMethod();
    }
}

我得到的错误:

构造函数 MyServiceImpl 的参数 0 需要一个 bean 类型 '...GeneratedService' 找不到。

【问题讨论】:

    标签: spring-boot web-services cxf jax-ws wsdl2java


    【解决方案1】:

    尝试使用@Autowired 标签或@Resource 标签注入服务。

        @Autowired
        GeneratedService myApiClient;
    
        @Resource(name="myApiClient")
        GeneratedService myApiClient;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-14
      • 2014-09-24
      • 1970-01-01
      • 1970-01-01
      • 2013-05-30
      • 1970-01-01
      • 2023-04-10
      相关资源
      最近更新 更多