我正在尝试将spring bean注入使用@WebService和@SOAPBinding注释的类中。
@WebService(targetNamespace = JAXWSMessageHandler.MY_URL)
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
public class JAXWSMessageHandler {
private StorageManager bufferContainer;
public void setBufferContainer(StorageManager storageManager){
this.bufferContainer = storageManager;
}
我得到以下异常:
Service class soap.service.JAXWSMessageHandler method setBufferContainer part {http://myurl/myproject/v1}setBufferContainer cannot be mapped to schema. Check for use of a JAX-WS-specific type without the JAX-WS service factory bean.
看来spring所使用的操作有望由CXF在WSDL中定义。我认为我可以使用单例调解器类来破解它,该类允许从WebService类到我的业务类进行通信,但是,这对我来说听起来并不好,我想正确地做到这一点。有什么提示怎么做吗?
最佳答案
JAX-WS将带注释的类上的方法签名解释为Web服务操作。我的猜测是,如果使用构造函数注入(而不是setter注入),问题将消失。