Java 位于com.paypal.core.soap.merchantallPreHandler.processPayLoadForFormatting的PatternSyntaxException
我在android gradle项目中使用maven的merchant sdk java进行快速结账集成,我收到以下错误:Java 位于com.paypal.core.soap.merchantallPreHandler.processPayLoadForFormatting的PatternSyntaxException,java,android,paypal-sandbox,paypal,Java,Android,Paypal Sandbox,Paypal,我在android gradle项目中使用maven的merchant sdk java进行快速结账集成,我收到以下错误: 08-10 15:42:30.233 26631-26731/com.spec.paypalpoc W/System.err﹕ java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 15: 08-10 15:42:30.234 26631-26731/com.spe
08-10 15:42:30.233 26631-26731/com.spec.paypalpoc W/System.err﹕ java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 15:
08-10 15:42:30.234 26631-26731/com.spec.paypalpoc W/System.err﹕ (?<!{[01]{1})}
08-10 15:42:30.234 26631-26731/com.spec.paypalpoc W/System.err﹕ ^
08-10 15:42:30.234 26631-26731/com.spec.paypalpoc W/System.err﹕ at java.util.regex.Pattern.compileImpl(Native Method)
08-10 15:42:30.237 26631-26731/com.spec.paypalpoc W/System.err﹕ at java.util.regex.Pattern.compile(Pattern.java:411)
08-10 15:42:30.237 26631-26731/com.spec.paypalpoc W/System.err﹕ at java.util.regex.Pattern.(Pattern.java:394)
08-10 15:42:30.237 26631-26731/com.spec.paypalpoc W/System.err﹕ at java.util.regex.Pattern.compile(Pattern.java:381)
08-10 15:42:30.237 26631-26731/com.spec.paypalpoc W/System.err﹕ at java.lang.String.replaceAll(String.java:1600)
08-10 15:42:30.237 26631-26731/com.spec.paypalpoc W/System.err﹕ at com.paypal.core.soap.MerchantAPICallPreHandler.processPayLoadForFormatting(MerchantAPICallPreHandler.java:466)
08-10 15:42:30.237 26631-26731/com.spec.paypalpoc W/System.err﹕ at com.paypal.core.soap.MerchantAPICallPreHandler.getPayLoadUsingSOAPHeader(MerchantAPICallPreHandler.java:447)
08-10 15:42:30.237 26631-26731/com.spec.paypalpoc W/System.err﹕ at com.paypal.core.soap.MerchantAPICallPreHandler.getPayLoad(MerchantAPICallPreHandler.java:317)
08-10 15:42:30.237 26631-26731/com.spec.paypalpoc W/System.err﹕ at com.paypal.core.BaseService.call(BaseService.java:264)
08-10 15:42:30.237 26631-26731/com.spec.paypalpoc W/System.err﹕ at urn.ebay.api.PayPalAPI.PayPalAPIInterfaceServiceService.setExpressCheckout(PayPalAPIInterfaceServiceService.java:2196)
08-10 15:42:30.237 26631-26731/com.spec.paypalpoc W/System.err﹕ at urn.ebay.api.PayPalAPI.PayPalAPIInterfaceServiceService.setExpressCheckout(PayPalAPIInterfaceServiceService.java:2148)
08-10 15:42:30.233 26631-26731/com.spec.paypalpoc W/System.err﹕ java.util.regex.PatternSyntaxException:索引15附近的regexp模式中出现语法错误:
08-10 15:42:30.234 26631-26731/com.spec.paypalpoc W/System.err﹕ (?
所以基本上当我研究这个方法时:
/**
* Process the payload before using message formatting
*/
private String processPayLoadForFormatting(String payLoad) {
Matcher match = REGEX_PATTERN.matcher(payLoad);
StringBuffer sb = new StringBuffer();
while (match.find()) {
match.appendReplacement(sb, "'" + match.group());
}
match.appendTail(sb);
// Fix json strings in element values by replacing {
// by '{' and matching } by '}'
return sb.toString().replaceAll("(?<!\\{[01]{1})}", "'}' ")
.replaceAll("\\{(?![01]})", "'{' ");
}
/**
*在使用消息格式化之前处理有效负载
*/
私有字符串处理PayloadForFormatting(字符串负载){
Matcher match=REGEX_PATTERN.Matcher(有效载荷);
StringBuffer sb=新的StringBuffer();
while(match.find()){
match.appendReplacement(sb,“”+match.group());
}
匹配(某人);
//通过替换{
//通过“{”和通过“}”匹配}
return sb.toString().replaceAll(“(?我面临同样的问题。请帮助我。我面临同样的问题。请帮助我。
return sb.toString().replaceAll("(?<!\\{[01]{1})}", "'}' ")
.replaceAll("\\{(?![01]})", "'{' ");