2011-04-15 100 views
0

我開始使用WCF開發Web服務並創建了WCF服務項目。我放過所有的東西,然後將這個服務作爲JAX WS服務在netbeans中導入。一切似乎都很好。Java錯誤消費WCF服務

Service1 test= new Service1(); 
CompositeType ct=new CompositeType(); 
ct.setBoolValue(Boolean.TRUE); 
ObjectFactory factory=new ObjectFactory(); 
ct.setStringValue(factory.createString("StringValue"));  
CompositeType result= test.getBasicHttpBindingIService1().getDataUsingDataContract(ct); 

我可以發送請求。我可以在Visual Studio中打開並查看CompositeType對象。但目標不是應該如此:

  • 布爾值設置爲預期爲true
  • 字符串值仍然是null
  • 當我操縱WCF服務中的字符串值並將更改對象返回時,字符串設置正確,我可以在Java中讀取它。

爲什麼我不能將CompositeType發佈到java,但可以使用它?

回答

2

從您提供的細節中很難分辨出來。

這裏是我的建議:

一般來說,一旦你這樣做,你應該大量的詳細信息上發生了什麼事,在服務端,時髦且可以很快診斷問題。試試吧,請回報! :)

+0

+1的相反 - 在暗示提琴手。我喜歡那個節目。 – 2011-04-16 00:00:43

+0

感謝您的所有信息!我會嘗試並儘快報告! – Markus 2011-04-17 20:59:09

+0

好吧,我這樣做了,我的結論直到現在(問題仍未找到)。我在svclog文件中找不到錯誤。我想我可以看到那裏的java clinet的肥皂請求,但我只看到該方法是requestet但沒有與哪個soap請求,我可以看到這個莫名其妙? includeExeptionDetaillnFaults不會改變服務行爲,也不會引發新的失敗。最後但並非最不重要的提琴手。首先它似乎是一個很棒的工具,但我看不到Java中的請求。如果我在瀏覽器中打開wsdl,我可以在提琴手中看到它。我如何監控請求的肥皂文檔? – Markus 2011-04-17 21:37:43

1

我也在這裏失去了2個小時!

的問題是在Java代碼:)

ct.setStringValue(factory.createString("StringValue")); 

使用本

ct.setStringValue(factory.createCompositeTypeStringValue("StringValue"));