在控制器和Spring集成配置中配置相同的端点

时间:2017-03-31 21:34:07

标签: spring spring-integration

我们有一个带有基本路径的休息控制器作为/诊断,差异路径配置有如下所示的差异方法。

  • 发布:/诊断
  • 获取:/ diagnosis / {diagnosisId}
  • 放:/诊断
  • delete:/ diagnosis / {diagnosisId}

这两个终点正被两个不同的系统所消耗。现在我们正在计划两个工具弹簧集成,以便我们可以使用路由器和变换器为两个系统产生两种类型的响应。现在我正在编写SI配置,并希望在SI中为Post方法/诊断设置相同的终点,并删除控制器中Post的方法级别配置。当我这样做时,我得到方法不允许例外。

可以这样配置吗?我想在SI中设置相同的终点并在控制器中删除,因为我不想打扰目前消耗这个终点的系统

控制器:

@RestController
@RequestMapping("/diagnosissurvey")
public class DiagnosisSurveyServiceController {

    public ResponseForSfdcAndHybris saveDiagnosis(@RequestBody SurveyLevel submitRequest) {

    //some code here
    }

    @RequestMapping(value = "/questions/{categoryId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
        public ResponseObject getQuestions(@PathVariable String categoryId) throws JsonProcessingException {
    //some code here
    }

}

SI XML文件:

 <int-http:inbound-gateway id="hybrisDiagnosisInboundGateway" 
      path="/diagnosissurvey" 
      supported-methods="POST"
      request-channel="hybrisDiagnosisInbound"
      reply-channel="diagnosisOutBoundToRouter"      
      request-payload-type="com.cardinalhealth.chh.model.SurveyLevel"  >
 </int-http:inbound-gateway>        

 <int:service-activator ref="diagnosisSurveyServiceController" method="saveDiagnosis" input-channel="hybrisDiagnosisInbound" output-channel="diagnosisOutBoundToRouter"/>

*更新

0 个答案:

没有答案