问题描述
我正在尝试为Soap Web Service实现客户端。我有一个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的bean 找不到“ ... GeneratedService”。
解决方法
尝试使用带有@Autowired
标签或@Resource
标签的注入服务。
@Autowired
GeneratedService myApiClient;
@Resource(name="myApiClient")
GeneratedService myApiClient;