當前位置:首頁 » 編程語言 » java調用wcf

java調用wcf

發布時間: 2023-02-26 02:40:44

① 怎麼用cxf的wsdl2java解析wcf生成的wsdl

1、下載apache-cxf-2.6.2在環境變數中配置CXF_HOME ,在PATH中加入%CXF_HOME%\bin 2、輸入cmd 進入控制窗口,輸入wsdl2java看是否配置成功
3、參考它的文檔看這個工具的具體參數的用法
wsdl2java用法:
wsdl2java -p com -d src -all aa.wsdl
-p 指定其wsdl的命名空間,也就是要生成代碼的包名:
-d 指定要產生代碼所在目錄
-client 生成客戶端測試web service的代碼
-server 生成伺服器啟動web service的代碼
-impl 生成web service的實現代碼
-ant 生成build.xml文件
-all 生成所有開始端點代碼:types,service proxy,,service interface, server mainline, client mainline, implementation object, and an Ant build.xml file.
詳細用法見:http://cwiki.apache.org/CXF20DOC/wsdl-to-java.html

② 求教調用WCF超時問題的解決辦法

在 Silverlight 端設置 SendTimeout 和 ReceiveTimeout 屬性,經常在 Debug 時需要調試上好幾分鍾、或者放上幾十分鍾。
可以在 ServiceReferences.ClientConfig 中配置,不過個人習慣使用後台代碼,畢竟配置最靈活:

BasicHttpBinding 在 Debug/ Release 時的代碼配置
C# code

defaultBasicHttpBinding = new BasicHttpBinding(BasicHttpSecurityMode.None)
{
Name = "DefaultBasicHttpBinding",
OpenTimeout = new TimeSpan(0, 1, 0),
CloseTimeout = new TimeSpan(0, 1, 0),
#if DEBUG
SendTimeout = new TimeSpan(0, 18, 00),
ReceiveTimeout = new TimeSpan(18, 18, 00),
MaxBufferSize = int.MaxValue,
MaxReceivedMessageSize = int.MaxValue
#else
SendTimeout = new TimeSpan(0, 8, 00),
ReceiveTimeout = new TimeSpan(0, 18, 00),
MaxBufferSize = int.MaxValue,
MaxReceivedMessageSize = int.MaxValue
#endif
};

CustomBinding
C# code

customBinding = new CustomBinding()
{
Name = "CustomBinding",
OpenTimeout = new TimeSpan(0, 1, 0),
CloseTimeout = new TimeSpan(0, 1, 0),

#if DEBUG
SendTimeout = new TimeSpan(0, 18, 00),
ReceiveTimeout = new TimeSpan(18, 18, 00),
#else
SendTimeout = new TimeSpan(0, 8, 00),
ReceiveTimeout = new TimeSpan(0, 18, 00),
#endif
};
customBinding.Elements.Add(new System.ServiceModel.Channels.());
customBinding.Elements.Add(new HttpTransportBindingElement()
{
MaxBufferSize = int.MaxValue, MaxReceivedMessageSize= int.MaxValue
}
);

③ 如何調用帶參數的WCF方法

[OperationContract(Name="sayHelloJson")]
[WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "sayHello", BodyStyle = WebMessageBodyStyle.Wrapped)]
String sayHello();
[OperationContract(Name = "SendMessageJson")]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "SendMessage/{Message}", BodyStyle = WebMessageBodyStyle.Wrapped)]
String SendMessage(String Message);
比如說第一個不帶參數的:http://localhost:8000/Service/Json/sayHello
那麼第二個帶參數的應該怎麼調用?(比如說參數是"abc")
我指的是在瀏覽器中或java的httpclient中,因為我准備在android上實現客戶端,所以.net的調用方式就不必講了。

你URITemplate已經設置了。Get方式。

我猜測一下調用的URL應該是: 網站URL/SendMessage/你好

另外建議你使用REST WCF自帶的一個幫助頁面,裡面會給出更精確的調用示例。

熱點內容
linuxnginx與php 發布:2024-11-07 22:33:32 瀏覽:78
android語音sdk 發布:2024-11-07 22:26:58 瀏覽:614
uuidjava生成 發布:2024-11-07 22:22:31 瀏覽:7
裝修家中需要配置哪些東西 發布:2024-11-07 22:21:11 瀏覽:82
什麼安卓的平板電腦最好用 發布:2024-11-07 22:21:05 瀏覽:553
linux最大內存 發布:2024-11-07 22:11:28 瀏覽:627
誰編程的楚辭 發布:2024-11-07 22:06:22 瀏覽:334
安卓暴力摩托叫什麼 發布:2024-11-07 22:05:03 瀏覽:344
c語言維基 發布:2024-11-07 21:59:49 瀏覽:787
記錄數據到緩存區 發布:2024-11-07 21:58:19 瀏覽:330