我需要在使用EasyNetQ的C#
微服务和使用Spring Amqp的Java
之间发送消息。
问题是属性消息,Spring Boot Amqp中的Type位于属性__type__
header容器中,而EasynetQ中的Type则来自名为type
的外层属性。
有人能告诉我我需要自定义什么才能让他们交流吗?
Spring Amqp :
"Headers":{"__TypeId__":"com.fastdeliveryservice.service.Info"}
EasynetQ:
"type" : "com.fastdeliveryservice.service.Info"
答案 0 :(得分:0)
您可以通过将Jackson2JsonMessageConverter
配置为自定义Jackson2JavaTypeMapper
来自定义DefaultJackson2JavaTypeMapper
。对getClassIdFieldName()
进行子类化并覆盖type
方法以返回__TypeId__
而不是 public static Camera mCamera;
Camera.Parameters parameters = mCamera.getParameters();
parameters.getSupportedPictureSizes();
List<Camera.Size> supportedSizes = parameters.getSupportedPictureSizes();
mSizePicture1 = supportedSizes.get(0);
int cameraSize = supportedSizes.size();
mSizePicture2 = supportedSizes.get(cameraSize - 1);
if (mSizePicture1.height < mSizePicture2.height)
mSizePicture = supportedSizes.get(cameraSize - 1);
else
mSizePicture = supportedSizes.get(0);
parameters.setPictureSize(mSizePicture.width, mSizePicture.height);
。