0
我在編寫一個只有一個按摩參數的web服務,其餘的都是頭部參數。 我的Web服務是這樣的:在CXF Web服務中使用@WebParam(header = true)
@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} Messag的文件名e {http://.../FileSvc} uploadFile無法處理。這可能是 由於沒有JAX-WS服務 工廠bean而使用JAX-WS特定類型所致。
任何人都可以向我解釋這個webParam的工作原理嗎?
感謝,
我刪除了globalJAXBDataBinding(它是我們爲CXFs JAXBDataBinding編寫的包裝器),它看起來像是有效的。謝謝 – user1799339 2013-05-02 08:28:23
你可以解釋爲什麼這應該工作。我真的需要使用globalJAXBDataBinding,因爲我們有更多的5,000個類和大約20個Web服務。所以我們必須使用全局綁定。我沒有看到如何使用包裝幫助(我必須讓整個按摩身體僅用於DataHandler或C#客戶端不能使用該服務),但它沒有任何約定。我有更多的選擇,還是它可以幫助你看到整個畫面? – user1799339 2013-05-02 11:58:53