Zur Zeit habe ich einen einfachen Krieg, der eine Feder Integrationskonfiguration hält, und dieser Krieg wird in einen Anlegesteg Container eingesetzt mit diesem Code:Dynamische Konfiguration Integration int-http Frühling: Inbound-Gateway
protected void createWac(File file, ConnectorConfig config) throws Exception, InterruptedException {
WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/");
webapp.setWar(file.getAbsolutePath());
startServer(webapp, inboundConnector.getPort());
}
unter dem Frühling Integration Config, ich habe einen int-http: Inbound-Gateway wie diese
<!-- External listener definition -->
<int-http:inbound-gateway id="entryHttpInboundGateway"
request-channel="myRequestChannel"
path="myPath"
reply-channel="myReplyChannel"
request-payload-type="com.me.MyType"
supported-methods="POST" message-converters="converters"
reply-timeout="1000">
</int-http:inbound-gateway>
Mein Ziel, die Werte für myPath zu haben ist und die unterstützten-Methoden Werte dynamisch aufgebaut, der erste Ansatz, den ich ging, war Variablen zu haben, auf meiner XML-Datei, wie einige Leute auf diesen Beitrag vorschlagen: how to read System environment variable in Spring applicationContext
für, dass ich mit dieser Konfiguration versuchte
<!-- External listener definition -->
<int-http:inbound-gateway id="entryHttpInboundGateway"
request-channel="myRequestChannel"
path="#{ systemProperties['HTTP_PATH'] }"
reply-channel="myReplyChannel"
request-payload-type="com.me.MyType"
supported-methods="POST" message-converters="converters"
reply-timeout="1000">
</int-http:inbound-gateway>
und env auf meiner Maschine Einstellung, die seltsame Sache ist, dass, wenn ich diesen Satz, passiert nichts, noch einen Konfigurationsfehler, die Initialisierung des Kanals oder eine Eigenschaft nicht gefunden, ich weiß, denn wenn ich das Zeichen # entfernen, oder setze die tatsächliche uRL ich dies auf der Konsole:
IntegrationRequestMappingHandlerMapping - Mapped "{[/{ systemProperties['HTTP_PATH'] }],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public abstract void org.springframework.web.HttpRequestHandler.handleRequest(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) throws javax.servlet.ServletException,java.io.IOException
Alle Ideen, wie dieses Problem zu lösen, oder einen anderen Ansatz zu sein fähig, die Werte vorher in die Kontextdatei des Krieges zu injizieren es ist in den Steg Container entfaltet?