我正在尝试编写一个只有一个按摩参数的Web服务,其余的是标题参数。 我的网络服务如下所示:
@BindingType(SOAPBinding.SOAP11HTTP_MTOM_BINDING)
@MTOM
@WebService(targetNamespace = WS_NAMESPACE + "/FileSvc")
@Service
public interface FileSvc
{
void uploadFile(@WebParam(name = "dataHandler") @XmlMimeType("application/octet-stream")DataHandler dataHandler,
@WebParam(header = true, name = "fileName") String fileName,
@WebParam(header = true, name = "fileSize") long fileSize);
}
服务工厂定义如下:
<bean id="fileSvcProxyFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
<property name="serviceClass" value="com....FileSvc"/>
<property name="address" value="http://.../FileSvc"/>
<property name="bus" ref="client_bus"/>
<property name="dataBinding" ref="globalJAXBDataBinding" />
</bean>
当我尝试从java客户端测试此服务时,我在尝试加载服务时遇到此错误:
引起: org.apache.cxf.service.factory.ServiceConstructionException:消息 部分{http://.../FileSvc} Message的fileName 无法处理{http://.../FileSvc} uploadFile。这可以 由于在没有JAX-WS服务的情况下使用特定于JAX-WS的类型而导致的 工厂豆。
有人可以向我解释这个webParam的工作原理吗?
谢谢,
答案 0 :(得分:0)
尝试删除globalJAXBDataBinding事件并查看是否有帮助。或者,将@RequestWrapper和@ResponseWrapper注释添加到接口方法以指向适当的包装器类型。不是100%肯定会起作用,但值得一试。
如果它仍然不起作用,我们将不胜感激。