Мне нужно реализовать собственный источник http с перекрестным происхождением: *.
Как это сделать? Документ Spring XD
Нужны примеры
Мне нужно реализовать собственный источник http с перекрестным происхождением: *.
Как это сделать? Документ Spring XD
Нужны примеры
Для разработки собственного исходного кода вам потребуются базовые знания по интеграции Spring. В любом случае вот пример:
Вам потребуется написать 4 файла:
crossoriginsource.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:int="http://www.springframework.org/schema/integration"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-4.2.xsd">
<context:component-scan base-package="com.yourbasepackage"></context:component-scan>
<context:annotation-config></context:annotation-config>
<!-- The name of the chaannel is output.(Mandatory to have the name as output) -->
<int:channel id="output"></int:channel>
<int:inbound-channel-adapter ref="crossOriginHttpCaller" method="makeHttpCall" channel="output"></int:inbound-channel-adapter>
</beans>
crossoriginsource.properties
info.shortDescription = Gets data from cross origin sources.
options_class = com.yourbasepackage.CrossOriginSourceMetadata
CrossOriginSourceMetadata.java
package com.yourbasepackage;
public class CrossOriginSourceMetadata {
// All the module related configurable properties goes here
// The properties values for which you would like to take then while defining a stream.
}
CrossOriginHttpCaller.java
@Component
public class CrossOriginHttpCaller {
public Message<String> makeHttpCall() {
// your http calling logic goes here
}
}
После того, как вы разработали модуль, вы должны поддерживать его в определенной структуре папок.
crossoriginsource
|
|---config
| |--crossoriginsource.xml
| |--crossoriginsource.properties
|
|---lib
| |--jar containing CrossOriginHttpCaller.java and CrossOriginSourceMetadata.java
| |--all the other dependent jars for this module
После того, как вы закончите упаковывать приложение в эту структуру, вы должны скопировать его в xd/modules/source
и определить поток примерно так:
stream create --name "test" --definition "crossoriginsource | log" --deploy
Надеюсь это поможет.
Нужно реализовать MessageProducerSupport.
С заголовками ответа: response.setHeader("Access-Control-Allow-Origin", "*");
Например: fork spring-xd-http-extension.
Посмотрите в качестве примера NettyHttpInboundChannelAdapter.