Apache camel 通过Jboss fuse ESB访问跨多个网络与Servlet应用程序交互
在我们的本地网络中,我们有一个现有的web IDE类型的应用程序,可以通过流行的web浏览器访问该应用程序 我想使用Jboss FUSE ESBtobe/act作为本地和云/任何网络之间的隧道。Apache camel 通过Jboss fuse ESB访问跨多个网络与Servlet应用程序交互,apache-camel,integration,esb,jbossfuse,jboss-esb,Apache Camel,Integration,Esb,Jbossfuse,Jboss Esb,在我们的本地网络中,我们有一个现有的web IDE类型的应用程序,可以通过流行的web浏览器访问该应用程序 我想使用Jboss FUSE ESBtobe/act作为本地和云/任何网络之间的隧道。 因此,我们可以通过web浏览器客户端连接到应用程序,而不必考虑浏览器所在的网络。始终通过ESB将数据发送到客户端浏览器 我正在使用: 我在浏览器中键入一个url,它将我重定向到仅第一次使用ESB的应用程序 然后我开始以正常的方式与应用程序交互。但不是通过ESB JBOSS-FUSE-ESB是否可能实
因此,我们可以通过web浏览器客户端连接到应用程序,而不必考虑浏览器所在的网络。始终通过ESB将数据发送到客户端浏览器 我正在使用:
- 我在浏览器中键入一个url,它将我重定向到仅第一次使用ESB的应用程序李>
- 然后我开始以正常的方式与应用程序交互。但不是通过ESB李>
<camelContext trace="true" id="blueprintContext" xmlns="http://camel.apache.org/schema/blueprint">
<route id="REQUEST">
<from uri="jetty:http://0.0.0.0:1805/myRemoteApp?matchOnUriPrefix=true" id="TO-APP">
<description/>
</from>
<to uri="jetty:http://my.cpny.com:1804/myapp/mainServlet?bridgeEndpoint=true&throwExceptionOnFailure=false" id="RealServer-IN"/>
</route>
欢迎提出任何建议 听起来您应该发回一个HTTP重定向状态代码,其中包含web浏览器在不使用ESB的情况下直接与服务器交互时应该使用的url 您可以使用Camel消息上的头设置http状态代码和重定向位置,例如在第一次调用之后
<route id="REQUEST">
<from uri="jetty:http://0.0.0.0:1805/myRemoteApp?matchOnUriPrefix=true" id="TO-APP">
<description/>
</from>
<to uri="jetty:http://my.cpny.com:1804/myapp/mainServlet?bridgeEndpoint=true&throwExceptionOnFailure=false" id="RealServer-IN"/>
.. // add logic here to compute the new url and set that as Location header. And then set a status code 30x for redirect
<setHeader headerName="HttpStatusCode"><constant>300</constant></setHeader>
<setHeader headerName="Location"><constant>http:blabla</constant></setHeader>
</route>
.. // 在此处添加逻辑以计算新url并将其设置为位置标头。然后为重定向设置状态代码30x
300
http:blabla
所以在第一次重定向后不可能继续使用ESB,对吗?我不知道应用程序将如何告诉camel URL(响应)是/是什么,因为现在req res只是应用程序,而webBrowser ESB在第一次重定向(生成安全令牌等)后不再出现在图片中。URL保持不变,那么几乎所有的东西都是ajax。