我不确定,如果您在 solrj 中看到一个非零代码,因为org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpRequestBase, ResponseParser):491
对于每个非 ok 状态代码,都会抛出一个 SolrException (sorlj 5.3.0) 。
可能的值是(根据this,Solr 1.x)在org.apache.solr.core.SolrCore
Method 中设置postDecorateResponse
(Solr 5.2.1,在此之前它曾经是 Method setResponseHeaderValues
),它将500
用于一般 Exceptions 或code
of SolrException
(参见 Enum SolrException.ErrorCode
) :
400 - BAD_REQUEST
401 - UNAUTHORIZED
403 - FORBIDDEN
404 - NOT_FOUND
409 - CONFLICT
415 - UNSUPPORTED_MEDIA_TYPE
500 - SERVER_ERROR
503 - SERVICE_UNAVAILABLE
510 - INVALID_STATE
0 - UNKNOWN
我最终将每个响应传递给一个检查方法,这将引发一个异常:
private void checkResponse(SolrResponseBase response){
if(response.getStatus() != 0){
throw new RuntimeException(String.format("Solr-Response has error code %s",response.getStatus()));
}
}