在 java 6 中,我尝试从服务中获取数据。 IT 有时返回布尔值,有时返回字符串,所以我为字符串示例响应制作了通用响应类:
{
"data": "D",
"success": true,
"error": null,
"validations": null
}
布尔值:
{
"data": true,
"success": true,
"error": null,
"validations": null
}
应对类:
@XmlRootElement
public class BaseResponsefaj<T>{
private T data;
private boolean success = true;
private ExceptionInfo error;
private List<ValidationInfo> validations;
public BaseResponsefaj(T data){
this.data = data;
}
public BaseResponsefaj(T data, boolean success){
this.data = data;
this.success = success;
}
public BaseResponsefaj(){
}
public BaseResponsefaj(boolean success, ExceptionInfo error) {
super();
this.success = success;
this.error = error;
}
public BaseResponsefaj(boolean success, ExceptionInfo error, T data) {
super();
this.data = data;
this.success = success;
this.error = error;
}
public ExceptionInfo getError() {
return error;
}
public void setError(ExceptionInfo error) {
this.error = error;
}
public List<ValidationInfo> getValidations() {
return validations;
}
public void setValidations(List<ValidationInfo> validations) {
this.validations = validations;
}
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
@Override
public String toString() {
return "BaseResponse{" +
"data=" + data +
", success=" + success +
", error=" + error +
", validations=" + validations +
'}';
}
}
尝试从服务中获取 from 时出错:
java.lang.ClassCastException: org.apache.xerces.dom.ElementNSImpl incompatible with java.lang.String
还有布尔值。
这就是我的称呼:
final BaseResponsefaj<?> response;
ClientResponse getResponse = webResource
.header("x-api-key", getAhtapotService().getapi())
.accept("application/json")
.type(MediaType.APPLICATION_JSON_TYPE)
.get(ClientResponse.class);
final int status = getResponse.getStatus();
if (HttpStatus.SC_OK == status) {
直到这里对于 2 个服务相同,字符串和布尔值。之后,我得到:
response = getResponse.getEntity(BaseResponsefaj.class);
并在一项服务中转换为布尔值,在其他字符串中:
(String) response.getData();
但它给出了错误。这是 jersey-bundle-1.19.1.jar 来打电话。
我不想为每个创建 2 个响应类。将来可能会有更多类型。所以通用会更好,但我无法解决这个问题。而且我不知道布尔响应类是否也可以修复
它给出了那个错误
"java.lang.ClassCastException:" org.apache.xerces.dom.ElementNSImpl"" incompatible" with java.lang.Boolean
有时它给
Class has two properties of the same name "data"