0

Here's class GenericService:

@Service
@Validated
public class GenericService {
@Autowired OkHttpClient okHttpClient;

@Autowired CmdContext cmdContext;

public GenericService(OkHttpClient okHttpClient) {
    this.okHttpClient = okHttpClient;
}

public Object doCmdIfPresents(Map requestMap){
    if (requestMap.containsKey("TRANS_CODE") && cmdContext.hasCmd((String) requestMap.get("TRANS_CODE"))){
        String transCode = (String) requestMap.get("TRANS_CODE");
        return doCmd(
                ObjectMapperWrapper.convertValue(requestMap, cmdContext.getRequestType(transCode)),
                cmdContext.getUrl(transCode),
                cmdContext.getResponseType(transCode));
    } else {
        return "illegal TRANS_CODE("+requestMap.getOrDefault("TRANS_CODE","null")+")!!";
    }
}

@SneakyThrows
public <T,Q> @Valid Q doCmd(@Valid T requestMsg, String url, Class<Q> responseClass){

    com.heytea.bank.citic.util.Call<T, Q> caller = new Call<>(okHttpClient);
    Q response = caller.execCall(requestMsg, url, responseClass);
    return response;
}
}

Here's class UserService:

@Service
@Validated
public class UserService {

private final OkHttpClient okHttpClient;

private final XstreamWrapper xStream = new XstreamWrapper();

public UserService(OkHttpClient okHttpClient) {
    this.okHttpClient = okHttpClient;
}

/**
 * 用户注册
 */
public @Valid T21000001Response register(@Valid T21000001Request requestMsg){
    com.heytea.bank.citic.util.Call<T21000001Request, T21000001Response> caller = new Call<>(okHttpClient);
    T21000001Response response = caller.execCall(requestMsg, "https://localhost:8443/api/donothing", T21000001Response.class);
    return response;
}
}

When I request the same request with different url, the userservice checked request and response, while the genericservice didn't. The javax validate version is 6.2.5 Final. enter image description here

0 Answers0