1
私はWebサービスを作成しました。私は内部から別のWebサービスを呼び出します。内部から呼び出す応答メディアの種類に応じて、私は本当の反応を返します。springbootでWebサービス応答のメディアタイプを設定するにはどうすればよいですか?
私が何をしても、すべての応答はJSONオブジェクトとして返されました。
私のWebサービスクラスは次のとおりです。
@RestController
@RequestMapping("/changeservicemode")
public class ChangeServiceMode {
@RequestMapping(method = RequestMethod.GET)
public Response changeMode(@RequestHeader(value = "serviceUrl") String serviceUrl,
@RequestHeader(value = "serviceMode") String serviceMode) {
IVirtualDocumentService docService = UtilsForSpring.getSingleBeanOfType(IVirtualDocumentService.class);
VirtualDocument documentByUrl = docService.findDocumentByVirtualUrl(serviceUrl);
String mediaType = MediaType.APPLICATION_XML;//I'll get media type from another response that will call above code in this point
if (documentByUrl == null) {
return Response.status(Status.NOT_FOUND).type(mediaType).entity("This url not found on DB!").build();
}
if (SimulationMode.LEARN.equalsIgnoreCase(serviceMode)) documentByUrl.setSimulationMode(SimulationMode.LEARN);
if (SimulationMode.SIMULATE.equalsIgnoreCase(serviceMode)) documentByUrl.setSimulationMode(SimulationMode.SIMULATE);
if (SimulationMode.STOP.equalsIgnoreCase(serviceMode)) documentByUrl.setSimulationMode(SimulationMode.STOP);
docService.save(documentByUrl);
String entity = "url: " + serviceUrl + ", mode: " + documentByUrl.getSimulationMode();
return Response.status(Status.OK).entity(entity).type(mediaType).build();
}
}
ここに私の応答です;
{
"context": {
"headers": {
"Content-Type": [
{
"type": "application",
"subtype": "xml",
"parameters": {},
"wildcardSubtype": false,
"wildcardType": false
}
]
},
"entity": "url: http://localhost:8066/virtual/wsapi/personelvirtual/getallpersonels, mode: SIMULATE",
"entityType": "java.lang.String",
"entityAnnotations": [],
"entityStream": {
"closed": false,
"committed": false
},
"length": -1,
"language": null,
"location": null,
"lastModified": null,
.
.
.
. continue..
あなたの言ったことを変更しましたが、今は406ステータスエラーがあり、何も表示されていません。 406受け入れられませんこの要求リソースはコンテンツを受け入れることができません。 –
OK !.それは私たちのWebサービスについてではなく、それはクライアントのヘッダ(accept:xml、text、json ..)です。ありがとうございます! –