java使用axis 呼叫WCF webservice問題請教

basgel發表於2009-10-22
java呼叫程式碼如下:
String operation = (String)parameters[0];
String systemName = (String)parameters[1];
String xmlData = (String)parameters[2];
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.addParameter(new QName("http://tempuri.org/","operation"),org.apache.axis.Constants.XSD_STRING,ParameterMode.IN);
call.addParameter(new QName("http://tempuri.org/","systemName"),org.apache.axis.Constants.XSD_STRING,ParameterMode.IN);
call.addParameter(new QName("http://tempuri.org/","xmlData"),org.apache.axis.Constants.XSD_STRING,ParameterMode.IN);
call.setReturnType(org.apache.axis.Constants.XSD_STRING);

call.setUseSOAPAction(true);
call.setSOAPActionURI("http://tempuri.org/MMISService/OuterProcess");
call.setUsername(getUserName());
call.setPassword(getPassword());
call.setOperationName(new QName("http://tempuri.org/", methodName));
String remsg=(String) call.invoke(new java.lang.Object[] {operation, systemName, xmlData});
客服端報

格式化程式嘗試對訊息反序列化時引發異常: 對操作“OuterProcess”的請求訊息正文進行反序列化時出現錯誤。讀取 XML 資料時,超出最大字串內容長度配額 (8192)。透過更改在建立 XML 讀取器時所使用的 XmlDictionaryReaderQuotas 物件的 MaxStringContentLength 屬性,可增加此配額。 第 71 行,位置為 5。]
AxisFault
faultCode: {http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundation/dispatcher}DeserializationFailed
faultSubcode:
faultString: 格式化程式嘗試對訊息反序列化時引發異常: 對操作“OuterProcess”的請求訊息正文進行反序列化時出現錯誤。讀取 XML 資料時,超出最大字串內容長度配額 (8192)。透過更改在建立 XML 讀取器時所使用的 XmlDictionaryReaderQuotas 物件的 MaxStringContentLength 屬性,可增加此配額。 第 71 行,位置為 5。
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:格式化程式嘗試對訊息反序列化時引發異常: 對操作“OuterProcess”的請求訊息正文進行反序列化時出現錯誤。讀取 XML 資料時,超出最大字串內容長度配額 (8192)。透過更改在建立 XML 讀取器時所使用的 XmlDictionaryReaderQuotas 物件的 MaxStringContentLength 屬性,可增加此配額。 第 71 行,位置為 5。


是否call呼叫的時候還需要設定最大訊息長度?怎麼設定?
伺服器的web.config 已經對MaxStringContentLength 引數進行了設定

相關文章