我已經開發使用JAX-WS Web服務(V2.1.3 - 太陽JDK 1.6.0_05)當我使用Java客戶端或了SoapUI或其他Web服務測試工具,工作得很好。我需要使用2005的Microsoft SQL Server Reporting Services來消費這個服務,我得到以下錯誤微軟SSRS消費JAX-WS Web服務
<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
<faultcode>S:Client</faultcode>
<faultstring>Couldn't create SOAP message due to exception: XML reader error: unexpected character content:
"?"
</faultstring>
</S:Fault>
</S:Body>
</S:Envelope>
如果我使用一個HTTP代理嗅出什麼SSRS發送中,我看到EF BB BF作爲的開始帖子正文和JAX-WS不喜歡。如果我刪除特殊字符並使用Fiddler重新提交請求,則Web服務調用將起作用。
我的問題是,爲什麼SSRS介紹這些特殊字符,我怎樣才能使它停下來?如果我無法阻止它,我怎樣才能讓JAX-WS忽略它們?這裏是我的SSRS查詢:
<Query>
<Method Name="getOneUser" Namespace="http://vinny.com" >
</Method>
</Query>
我也試着這樣下方的查詢:
<Query>
<Method Name="getOneUser" Namespace="http://vinny.com" >
</Method>
<SoapAction>http://vinny.com/getOneUser</SoapAction>
<ElementPath IgnoreNamespaces="true">*</ElementPath>
</Query>
有沒有人有什麼我可以嘗試任何想法?我在JAX-WS端嘗試了幾種不同類型的註釋來改變SOAPBinding的類型等,但是似乎沒有任何東西使它與Microsoft SSRS一起工作。
謝謝埃裏克。 SSRS是將BOM添加到帖子主體中的唯一東西。我使用了SSIS,甚至在C#中創建了一個.NET應用程序,並且它們都使用了web服務。 – 2009-10-28 00:19:28
在一個不相干的筆記上,非常感謝你寫小提琴手。我喜歡FIDDLER,無法想象開發webapps。所以謝謝Eric創建這個很棒的工具。 – 2009-10-29 12:40:53