77.4. 多部分消息
ServiceInterfaceStrategy 支持多部分 SOAP 信息。ServiceInterfaceStrategy 必须使用服务接口定义初始化,该定义会根据 JAX-WS 2.2 注解并满足 Document Bare 风格的要求。目标方法需要满足以下条件,遵循 JAX-WS 规格:1) 它最多有一个 in
或 in/out
非标头的参数,2) 如果它有一个非 void
的返回类型,它必须没有 in/out
或 out
非标题的参数,3) 如果它有一个返回类型 void
,它需要最多有一个 in/out
或 out
非标头的参数。
ServiceInterfaceStrategy 应该使用布尔值参数初始化,指示映射策略是否应用到请求参数或响应参数。
ServiceInterfaceStrategy strat = new ServiceInterfaceStrategy(com.example.customerservice.multipart.MultiPartCustomerService.class, true); SoapJaxbDataFormat soapDataFormat = new SoapJaxbDataFormat("com.example.customerservice.multipart", strat);
77.4.1. 拥有者对象映射
JAX-WS 指定对 In/Out
和 Out
参数使用 type-parameterized javax.xml.ws.Holder
对象。您可以直接使用参数类型的实例。camel-soap DataFormat marshals Holder 值根据 Holder 值类的 JAXB 映射而定。在未记录的响应中为 \'Holder
对象提供映射。