Spring Ampq类型名称和EasyNetQ

时间:2017-09-27 12:09:27

标签: java c# spring-boot spring-amqp easynetq

我需要在使用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"

1 个答案:

答案 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);