RegisterRestClient не является правильным значением Passign в JavaJAVA

Программисты JAVA общаются здесь
Anonymous
RegisterRestClient не является правильным значением Passign в Java

Сообщение Anonymous »

У меня ниже клиент REST в Java, как ниже: < /p>
import jakarta.ws.rs.*;
import org.eclipse.microprofile.rest.client.annotation.RegisterClientHeaders;
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;

import a.b.c.TransferClientHeaders;

import jakarta.enterprise.context.ApplicationScoped;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
@RegisterRestClient(configKey = "personkey")
@RegisterClientHeaders(TransferClientHeaders.class)
@ApplicationScoped

public interface PersonClient {

@Path("/person/deletePersonBySKey")
@DELETE
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
Response deletePersonBySKey(String personSKey);

}

public class TransferClientHeaders implements ClientHeadersFactory {

private static final Logger logger = LoggerFactory.getLogger(EntityService.class);

@Override
public MultivaluedMap update(MultivaluedMap incomingHeaders, MultivaluedMap outgoingHeaders) {
MultivaluedMap transferredHeaders = new MultivaluedHashMap();
transferredHeaders.putAll(outgoingHeaders);
transferredHeaders.put("ofs_remote_user", incomingHeaders.get("remote_user"));
logger.debug("modified headers {}", incomingHeaders.get("remote_user"));
return transferredHeaders;
}
}
< /code>
В коде сервера конечная точка похожа: < /p>
@FunctionsAllowed("F1,F2")
@DeleteMapping(value = "/deletePersonBySKey")
public ResponseEntity deletePersonBySKey(@RequestBody String personSKey) throws Exception {

logger.debug("Inside The Person Controller");
// logic
} catch (Exception e) {
logger.error("Exception occurred ", e);

try {
responseJson.put("STATUS", "FAILED");
responseJson.put("MESSAGE", "Person Services delete failed with exception: " + e.getMessage());
} catch (JSONException e1) {
logger.error("Exception occurred ", e1);
}
return new ResponseEntity(responseJson.toString(), HttpStatus.OK);
}
return ResponseEntity.ok("200");
}
< /code>
Я называю это от клиента, как ниже: < /p>
@Inject
@RestClient
PersonClient personClient;

personClient.deletePersonBySKey("1234");
< /code>
Это достигается на стороне сервера, но в журнале я вижу исключение: 400 bad_request. < /p>

Я попытался, не давая @produces и @consumes, не удачи < /li>
Я пытался изменить переводчики для добавления типа контента как json, plain
text ect. но не удачи < /li>
Я пытался дать json String, как PersonClient.deletePersonByskey ("" 12345 ""); Но не повезло < /li>
Я не могу изменить конечную точку на стороне сервера < /li>
< /ul>
Я застрял в этом. Не уверен, что такое правильный способ передачи этого
personskey < /p>

Подробнее здесь: https://stackoverflow.com/questions/793 ... ue-in-java

Вернуться в «JAVA»