扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:中国IT实验室 来源:中国IT实验室 2007年9月30日
关键字:
在本页阅读全文(共3页)
但是对于Java而言调用一个.Net产生的WSDL简直被折磨了半死,Q公司又不肯提供技术支持,不断的进行调试跟踪最后才发现是一个setEncodingStyle参数设置的问题.

public class CpSpInterface ...{
protected Log logger = LogFactory.getLog(this.getClass());
private String endpoint = "http://192.168.1.2/Service1.asmx";
private String nameSpace = "GetSPInfo";
public String callGetIndexByType(String strTypeID, String strParaList,String strResultType) 
...{
String ret = "<?xml version=\"1.0\" encoding=\"gb2312\" ?><root status=\"1\" lines=\"0\"></root>"; 
try ...{
String methodName = "GetIndexByType";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTimeout(new Integer(120000));
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setUseSOAPAction(true);
call.setSOAPActionURI(nameSpace + "/GetIndexByType");
call.setOperationStyle(org.apache.axis.constants.Style.WRAPPED);
call.setEncodingStyle("literal");
call.setOperationName(new QName(nameSpace, methodName));
StringHolder holder = new StringHolder("0");
// Set Call Parameter
call.addParameter(new QName(nameSpace, "strTypeID"),
Constants.XSD_STRING, ParameterMode.IN);
…………略
//Set back Parameter
call.setReturnType(Constants.XSD_STRING); 
ret = (String) call.invoke(new Object[] ...{ strTypeID, strParaList,
strResultType });
ret = ret.replaceAll("utf-8","gb2312");
logger.debug("ret = "+ret);
logger.info("return errorcode = " + holder.value); 
} catch (Exception e) ...{
logger.error("Error " + e);
}
return ret;
}
}
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。