我有一个程序(称为 programA),它在本地计算机上作为 Windows 服务运行,它拦截对端口 80 的任何请求,并在将请求转发到 Web 服务器/应用程序服务器之前对请求进行一些额外的工作。
我有一个应用程序服务器在另一台服务器上运行 Sring MVC 应用程序(programB),该服务器提供页面,这些页面将在运行 programA 的同一台机器上查看。同一个应用服务器运行着一个可以接受 SOAP 消息并返回 SOAP 请求的 Web 服务(programC)。
现在我想做的是使用以下事件序列生成 SOAP 消息。
Step 1 - User loads the GUI application (programB) on the browser.
Step 2 - User selects a link on the page which results in an HTTP request to be generated.
Step 3 - On its way out, the HTTP request is intercepted by programA and formatted into a SOAP message and forward the request as a SOAP request to the web service (programC).
Step 4 - The web service(programC) processes the request and returns the SOAP response back to programA.
Step 5 - programA formats the response and returns it back as an HTTP response back to programA as the response for the original HTTP request for it to be displayed on the GUI.
programA 和 programC 是已经存在的现有应用程序,所以我只需要开发 MVC GUI 和HTTP --> SOAP
和SOAP --> HTTP
接口。
我正在努力解决的主要领域是第 3 步和第 5 步。具体来说,从 programB 到 programA 的数据格式是什么。
programA 是一个基于 java 的应用程序,可以接受任何基于文本的格式,并且可以配置为理解最常见的格式(XML、URL 参数等),或者可以更新以支持另一种格式(例如 Json)。
我的主要问题如下:
- 将程序A的请求作为HTTP请求发送到程序B以便程序B可以生成SOAP请求的最常见方法是什么。
- XML 可能是 programA 最容易处理的格式,但是否可以将 XML 作为 HTTP 请求的一部分发送?我在考虑 Javascript,但有没有一种更简洁的方法来代替手动构建 XML 文本?
- 请求可以在每个链接中包含 name=value 参数。这些可以由programA使用,但听起来不够干净。
你有什么意见,你会使用什么格式?