java.lang.String.size报错怎么解决

img


前端传过来的的参数访问后端xml的时候出现的这个错误怎么解决

看下ibatis配置的sql,String的长度不能使用.size,要用.length

  • 这篇博客: APP微信支付---Java服务端接口(不使用证书)中的 生成签名方法,将请求参数转换为xml格式的string的方法 工具类 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • public class PayCommonUtil {
    	/** 
    	 * @Description:sign签名 
    	 * @return 
    	 */  
    	public static String createSign(String characterEncoding, SortedMap<Object, Object> packageParams, String API_KEY) {  
    		StringBuffer sb = new StringBuffer();  
    		Set es = packageParams.entrySet();  
    		Iterator it = es.iterator();  
    		while (it.hasNext()) {  
    			Map.Entry entry = (Map.Entry) it.next();  
    			String k = entry.getKey().toString();  
    			String v = entry.getValue().toString();  
    			if (null != v && !"".equals(v) && !"sign".equals(k) && !"key".equals(k)) {  
    				sb.append(k + "=" + v + "&");  
    			}  
    		}  
    		sb.append("key=" + API_KEY);  
    		String sign = WeixMD5.MD5Encode(sb.toString(), characterEncoding).toUpperCase();  
    		return sign;  
    	}  
    	   
    	/** 
    	 * @Description:将请求参数转换为xml格式的string 
    	 * @return 
    	 */  
    	public static String getRequestXml(SortedMap<Object, Object> parameters) {  
    		StringBuffer sb = new StringBuffer();  
    		sb.append("<xml>");  
    		Set es = parameters.entrySet();  
    		Iterator it = es.iterator();  
    		while (it.hasNext()) {  
    			Map.Entry entry = (Map.Entry) it.next();  
    			String k = entry.getKey().toString();  
    			String v = entry.getValue().toString();   
    			if ("attach".equalsIgnoreCase(k) || "body".equalsIgnoreCase(k) || "sign".equalsIgnoreCase(k)) {  
    				sb.append("<" + k + ">"  + v + "</" + k + ">");  
    			} else {  
    				sb.append("<" + k + ">" + v + "</" + k + ">");  
    			}  
    		}  
    		sb.append("</xml>");  
    		return sb.toString();  
    	}  
    }