包装 @Endpoint 注解的 Spring-WS 端点的调用
(Java 6、Spring 3、Spring-WS 2、JAXB2、Tomcat 6)
我需要将请求和响应 XML 记录到数据库表中。我希望能够在收到请求 XML 时创建一条记录,并在响应 XML(或故障)准备就绪时更新相同的记录。有没有办法用 Spring-WS 2 做到这一点?
我想在解组 XML 之前包装端点的调用,以便可以保存请求 XML、调用端点,最后保存响应 XML。保存请求 XML 后,我将使用从数据库返回的唯一 ID 来标识需要使用响应 XML 更新的记录。
非常感谢所有帮助!
(Java 6, Spring 3, Spring-WS 2, JAXB2, Tomcat 6)
I have a requirement to log the request and response XML to a database table. I would like to be able to create a record on receipt of the request XML and update the same record when the response XML (or fault) is ready. Is there a way to do this with Spring-WS 2?
I want to wrap the invocation of the endpoint prior to unmarshalling the XML so I can save request XML, invoke the endpoint, and finally save response XML. I would use the unique ID returned from the DB after saving the request XML to identify the record that needs to be updated with the response XML.
All help is much appreciated!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 Spring-WS EndpointInterceptors。
实现拦截器。
您必须实现
org.springframework.ws.server.EndpointInterceptor
接口,其中提供了对请求和响应事件进行操作的方法。通过访问 MessageContext 对象,您可以检索请求和响应消息(getRequest 和 getResponse 方法)。
您还可以使用 setProperty 方法在请求时刻存储可在响应中访问的信息以关联信息(例如,要在数据库中更新的记录的 ID)。
配置拦截器。
拦截器可以针对特定请求进行配置,也可以针对所有 Web 服务进行全局配置。我从文档中复制了一些配置:
You can use Spring-WS EndpointInterceptors.
Implement an interceptor.
You have to implement the
org.springframework.ws.server.EndpointInterceptor
interface where methods to act on the request and response events are provided.By accessing the MessageContext object, you can retrieve the request and response mesages (getRequest and getResponse methods).
You can also use the setProperty method to store information in the request moment that is accessible in the response to correlate information (e.g., the ID of the record to update in the DB for example).
Configure the interceptor.
The interceptor either can be configured for a specific request or globally for all the web services. I copy some configuration from the documentation:
是的,您可以通过在 log4j.properties 文件中复制以下行来记录肥皂请求和响应。
您可以从此链接获取更多信息 http://static .springsource.org/spring-ws/sites/2.0/reference/html/common.html
Yes you can log the soap request and response by copying the following line in your log4j.properties file.
You can get more information from this link http://static.springsource.org/spring-ws/sites/2.0/reference/html/common.html