2011-09-13 33 views
1

我有一個用java編寫的web服務的引用。我需要在我的BizTalk項目中使用它。所以我通過添加引用添加服務引用 - 高級 - 添加Web引用,因爲java web服務不是WCF服務。好的,VS爲我生成服務的XSD和ODX。但是當我嘗試編譯該項目時,出現非常奇怪的錯誤「在聲明XXX類型時缺少部分修飾符;此類型的另一部分聲明存在」。描述相同的錯誤here在Biztalk中使用java web服務

我以爲我會錯過了一些東西,所以我創建了一個全新的解決方案,添加有一個控制檯應用程序,添加Web引用和解決方案成功地建造。因此,我可以得出結論,只有在BizTalk解決方案中添加Web服務引用時纔會出現錯誤。

我試圖手動修復錯誤,打開Reference.map.cs文件,在生成的命名空間中添加了「.Biztalk」後綴,並且一切編譯成功。它真的是BizTalk項目的代碼生成器中的錯誤還是我錯過了什麼?

+0

您是否嘗試過創建全新的** BizTalk **項目和解決方案並再次添加Web參考? – Fabio

+0

@Fabio,我當然有。結果相同。我懷疑Java Web服務的實現不正確,但在創建控制檯應用程序後,我做出了一個結論,認爲它是biztalk代碼生成器,無法創建正確的文件。 –

回答

0

不知道,我從來沒有見過的錯誤......

不過,我會做的是創建一個類庫項目,並在這裏添加Web引用。然後您可以在SOAP發送端口中使用它,如here所述(請參閱第5點)。您也可以直接在BizTalk項目中引用類庫。既然你說,Web引用的控制檯應用程序工作,也許這可以工作...

此外,您可以直接使用XSD架構 - 但是這將需要更多的工作。您必須在編排或自定義管道組件中手動升級一些屬性。您可以在this post上找到更多詳細信息(網站目前正在關閉,但希望最終會恢復在線狀態)。

最後,你也可以嘗試WCF適配器,使用httpBinding。這是爲interop設計的,只要你有模式來定義消息就應該工作。

祝你好運!

+0

謝謝。最後我得到了它的工作。我做的是以下幾點:使用**添加Web引用**嚮導我生成的代碼由於命名空間問題而無法編譯。然後我刪除了所有文件,但服務xsd一個。然後我使用** Add New Item **添加了一個編排,並在其中創建了一個新的端口類型。之後,我將編排設置爲使用我定義的端口類型,並創建了輸入和輸出在服務xsd文件中定義的端口類型所需的類型的消息。然後,我使用** BizTalk Server Administration **設置了一個發送端口,最後它工作。 –