2014-03-31 49 views
0

我有Java應用程序向特定端口發送HTTP請求。這段代碼是這樣的:如何使WCF服務監聽特定端口並接收HTTP請求

 URL url = new URL("http://localhost:8080/"); 
     HttpURLConnection httpCon = (HttpURLConnection) url.openConnection(); 
     httpCon.setDoOutput(true); 
     httpCon.setRequestMethod("POST"); 
     OutputStreamWriter out = new OutputStreamWriter(
     httpCon.getOutputStream()); 
     System.out.println(httpCon.getResponseCode()); 
     System.out.println(httpCon.getResponseMessage()); 
     out.close(); 

現在,我想創建一個偵聽到特定端口,接收從我的Java應用程序發送的HTTP POST請求WCF服務。這是可能的,有什麼指導方針來做到這一點。我有點新WCF,我經歷了幾個WCF的例子,但我需要更多的東西和更多的相關的問題。那麼,我應該使用什麼樣的綁定,行爲......?

任何幫助將不勝感激!

回答

2

確實有可能讓WCF和Java一起運行。您可能希望用C#編寫並通過.NET實現的WCF部分,但Java方面非常簡單。

有很多示例代碼可供選擇,但是這裏有一個我用來獲得Java-WCF項目的三部分系列。還包含CodeProject的另一個示例。

http://geekswithblogs.net/ballhaus/archive/2009/12/28/net-wcf-and-java-ws-interoperability-part1.aspx

http://www.codeproject.com/Articles/105273/Create-RESTful-WCF-Service-API-Step-By-Step-Guide

結合和行爲的東西,你就必須根據項目的需要弄清楚。有幾種綁定風格,包括HTTP,TCP和其他。行爲也各不相同。

下面是一個很好的單一信息來源,用於比較不同的綁定類型以及每個提供的功能和兼容性。

http://msdn.microsoft.com/en-us/library/ms730879.aspx

+0

是的,我知道Java部分。謝謝你在這個鏈接,我會通過他們。 – Sylca

1

考慮你是剛開始使用WCF,我建議你在WCF使用basicHttpBinding的開始,然後微調結合你學習和發現WCF的技巧。一個典型的basicHttpBinding的看起來像

<basicHttpBinding> 
     <binding name="basicClientBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:02:00" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false"> 
      <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
      <security mode="None"></security> 
     </binding> 

</basicHttpBinding> 

使用Axis可能是一個痛苦,如果在WCF使用multple綁定,甚至在的wsHttpBinding創造Java的WCF代理。你會發現很多職位,如那些低於有關使用從Java

一個複雜的行爲或的wsHttpBinding

How to create java client using AXis 1.4 for consuming WCF service using wsHttpBinding

您未使用軸或其他任何東西來創建一個代理的複雜性會談,所以這將是非常棘手爲你。我建議你的情況下,開始與香草WCF服務與basicHttpBinding並沒有任何行爲。

同時在編寫C#服務時避免使用不兼容的.Net類型,如SecureString。建議使用SecureString類型的密碼。但在Java世界中沒有等效的映射類型