2015-08-13 4 views
3

Я пытаюсь создать простой прокси-сервер SOAP в Spring интеграции. Для этого мне нужно перейти к SOAPAction через клиент, вызывающий мою услугу, на прокси-сервер службы. К сожалению, похоже, что это значение теряется при преобразовании объекта Spring Integration Message. Объект Message имеет полезную нагрузку и заголовок. Я ожидал найти SOAPAction в заголовке (как «ws_soapAction»), но его там нет. Единственными заголовками являются answerChannel, errorChannel, id и timestamp. Это стандартные заголовки Spring Integration. Я могу установить ws_soapAction путем жесткого кодирования, но это делает работу гораздо менее динамичной. Я пробовал как SOAP 1.1, так и SOAP 1.2.SOAPAction не прошел через весну Интеграция

Вот приложение:

@SpringBootApplication 
public class OmgApplication { 

public static void main(String[] args) { 
    SpringApplication.run(OmgApplication.class, args); 
} 

@Autowired 
MarshallingWebServiceInboundGateway entryPoint; 

@Autowired 
MarshallingWebServiceOutboundGateway omgGateway; 

@Bean 
IntegrationFlow flow() { 
    return IntegrationFlows.from(entryPoint) 
      .handle(omgGateway) 
      .get(); 
    } 
} 

И шлюзы:

@Bean 
MarshallingWebServiceInboundGateway entryPoint() { 
    MarshallingWebServiceInboundGateway entryPoint = new MarshallingWebServiceInboundGateway(jaxb2Marshaller()); 
    entryPoint.setHeaderMapper(new DefaultSoapHeaderMapper()); 
    return entryPoint; 
} 

@Bean 
MarshallingWebServiceOutboundGateway omgGateway() { 
    MarshallingWebServiceOutboundGateway omgGateway = new MarshallingWebServiceOutboundGateway(
      "https://url.to.the/service", jaxb2Marshaller(), jaxb2Marshaller() 
    ); 
    omgGateway.setHeaderMapper(new DefaultSoapHeaderMapper()); 
    return omgGateway; 
} 

ответ

1

Это будет доступно в разделе 4.2. См. this JIRA.

Кандидат на выпуск 4.2 должен состояться на этой неделе с фактическим выпуском в начале сентября.

В настоящее время он доступен в 4.2.0.BUILD-SNAPSHOT.

Но JIRA также имеет обход для более ранних версий.