java调用net的webService方法如下:
public static String GetDataFromWebService(String FunName) {
String res = null;
try {
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(ClientApp.serviceUrl));
call.setOperationName(new QName(ClientApp.serviceNameSpace + "Req",
FunName));
call.setUseSOAPAction(true);
call.setSOAPActionURI(ClientApp.serviceNameSpace + FunName);
System.out.println("aaa");
res = (String) call.invoke(new Object[] {null});//此处异常
System.out.println("bbb");
System.out.println("Result: " + res);
}
catch (Exception e) {
e.printStackTrace();
}
return res;
}
返回值是一个xml格式的字符串如下:
<WebUIData>
<TDefSize>
<SizeId>48</SizeId>
<SizeName>290</SizeName>
<SizeGroupId>2</SizeGroupId>
</TDefSize>
<TDefSize>
<SizeId>49</SizeId>
<SizeName>295</SizeName>
<SizeGroupId>2</SizeGroupId>
</TDefSize>
<TDefSize>
<SizeId>50</SizeId>
<SizeName>300</SizeName>
<SizeGroupId>2</SizeGroupId>
</TDefSize>
</WebUIData>
小数据量没有问题,当数据量太大(大约40000条左右)的时候取得webService返回值的时候报异常如下:
AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: org.xml.sax.SAXParseException: 分析器已达到由应用程序设置的实体扩展限制"64,000"。 faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace: org.xml.sax.SAXParseException: 分析器已达到由应用程序设置的实体扩展限制"64,000"。 at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3339) at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3333) at org.apache.crimson.parser.Parser2.expandEntityInContent(Parser2.java:2667) at org.apache.crimson.parser.Parser2.maybeReferenceInContent(Parser2.java:2569) at org.apache.crimson.parser.Parser2.content(Parser2.java:1980) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1654) at org.apache.crimson.parser.Parser2.content(Parser2.java:1926) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1654) at org.apache.crimson.parser.Parser2.content(Parser2.java:1926) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1654) at org.apache.crimson.parser.Parser2.content(Parser2.java:1926) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1654) at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:634) at org.apache.crimson.parser.Parser2.parse(Parser2.java:333) at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448) at javax.xml.parsers.SAXParser.parse(SAXParser.java:345) at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:242) at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538) at org.apache.axis.Message.getSOAPEnvelope(Message.java:376) at org.apache.axis.client.Call.invokeEngine(Call.java:2583) at org.apache.axis.client.Call.invoke(Call.java:2553) at org.apache.axis.client.Call.invoke(Call.java:2248) at org.apache.axis.client.Call.invoke(Call.java:2171) at org.apache.axis.client.Call.invoke(Call.java:1691) at client.webservice.WebServiceOperate.GetDataFromWebService(WebServiceOperate.java:54) at client.program.main(program.java:16)org.xml.sax.SAXParseException: 分析器已达到由应用程序设置的实体扩展限制"64,000"。 at org.apache.axis.AxisFault.makeFault(AxisFault.java:129) at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:543) at org.apache.axis.Message.getSOAPEnvelope(Message.java:376) at org.apache.axis.client.Call.invokeEngine(Call.java:2583) at org.apache.axis.client.Call.invoke(Call.java:2553) at org.apache.axis.client.Call.invoke(Call.java:2248) at org.apache.axis.client.Call.invoke(Call.java:2171) at org.apache.axis.client.Call.invoke(Call.java:1691) at client.webservice.WebServiceOperate.GetDataFromWebService(WebServiceOperate.java:54) at client.program.main(program.java:16)
希望高人指点!
public static String GetDataFromWebService(String FunName) {
String res = null;
try {
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(ClientApp.serviceUrl));
call.setOperationName(new QName(ClientApp.serviceNameSpace + "Req",
FunName));
call.setUseSOAPAction(true);
call.setSOAPActionURI(ClientApp.serviceNameSpace + FunName);
System.out.println("aaa");
res = (String) call.invoke(new Object[] {null});//此处异常
System.out.println("bbb");
System.out.println("Result: " + res);
}
catch (Exception e) {
e.printStackTrace();
}
return res;
}
返回值是一个xml格式的字符串如下:
<WebUIData>
<TDefSize>
<SizeId>48</SizeId>
<SizeName>290</SizeName>
<SizeGroupId>2</SizeGroupId>
</TDefSize>
<TDefSize>
<SizeId>49</SizeId>
<SizeName>295</SizeName>
<SizeGroupId>2</SizeGroupId>
</TDefSize>
<TDefSize>
<SizeId>50</SizeId>
<SizeName>300</SizeName>
<SizeGroupId>2</SizeGroupId>
</TDefSize>
</WebUIData>
小数据量没有问题,当数据量太大(大约40000条左右)的时候取得webService返回值的时候报异常如下:
AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: org.xml.sax.SAXParseException: 分析器已达到由应用程序设置的实体扩展限制"64,000"。 faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace: org.xml.sax.SAXParseException: 分析器已达到由应用程序设置的实体扩展限制"64,000"。 at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3339) at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3333) at org.apache.crimson.parser.Parser2.expandEntityInContent(Parser2.java:2667) at org.apache.crimson.parser.Parser2.maybeReferenceInContent(Parser2.java:2569) at org.apache.crimson.parser.Parser2.content(Parser2.java:1980) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1654) at org.apache.crimson.parser.Parser2.content(Parser2.java:1926) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1654) at org.apache.crimson.parser.Parser2.content(Parser2.java:1926) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1654) at org.apache.crimson.parser.Parser2.content(Parser2.java:1926) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1654) at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:634) at org.apache.crimson.parser.Parser2.parse(Parser2.java:333) at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448) at javax.xml.parsers.SAXParser.parse(SAXParser.java:345) at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:242) at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538) at org.apache.axis.Message.getSOAPEnvelope(Message.java:376) at org.apache.axis.client.Call.invokeEngine(Call.java:2583) at org.apache.axis.client.Call.invoke(Call.java:2553) at org.apache.axis.client.Call.invoke(Call.java:2248) at org.apache.axis.client.Call.invoke(Call.java:2171) at org.apache.axis.client.Call.invoke(Call.java:1691) at client.webservice.WebServiceOperate.GetDataFromWebService(WebServiceOperate.java:54) at client.program.main(program.java:16)org.xml.sax.SAXParseException: 分析器已达到由应用程序设置的实体扩展限制"64,000"。 at org.apache.axis.AxisFault.makeFault(AxisFault.java:129) at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:543) at org.apache.axis.Message.getSOAPEnvelope(Message.java:376) at org.apache.axis.client.Call.invokeEngine(Call.java:2583) at org.apache.axis.client.Call.invoke(Call.java:2553) at org.apache.axis.client.Call.invoke(Call.java:2248) at org.apache.axis.client.Call.invoke(Call.java:2171) at org.apache.axis.client.Call.invoke(Call.java:1691) at client.webservice.WebServiceOperate.GetDataFromWebService(WebServiceOperate.java:54) at client.program.main(program.java:16)
希望高人指点!
楼主【shenlanse0520_it】截止到2008-07-25 11:59:47的历史汇总数据(不包括此帖):
发帖的总数量:4 发帖的总分数:30 每贴平均分数:7
回帖的总数量:2 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:4 结贴的总分数:30
无满意结贴数:3 无满意结贴分:60
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:75.00 % 无满意结分率:200.00%
敬礼!