首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在MySQL数据库中持久化SOAP消息-使用Axis客户端

如何在MySQL数据库中持久化SOAP消息-使用Axis客户端
EN

Stack Overflow用户
提问于 2011-11-21 07:43:18
回答 1查看 2.2K关注 0票数 3

我正在编写一个java axis客户端,我如何将原始xml持久化到数据库中,到目前为止,我已经找到了两种记录原始xml的方法,但它们是用于控制台或文件的,但是我需要将每个请求和响应保存到mysql数据库中,在这里我可以使用连接作为用户参数。

以下是我已经做过的事。

  1. 将原始ws xml记录到控制台
  2. 将原始ws xml记录到文件中。

我找到了一个解决方案,首先我们需要使用前面提到的自定义处理程序(1),我们可以在消息上下文中设置属性,如

代码语言:javascript
运行
复制
public class FedexWsHandler extends GenericHandler {

    public QName[] getHeaders() {
        return null;
    }

    public boolean handleRequest(MessageContext context) {
    try {
        SOAPMessageContext smc = (SOAPMessageContext) context;
        SOAPMessage reqMsg = smc.getMessage();
        context.setProperty("req-msg", reqMsg);
        } catch (Exception ex) {
        ex.printStackTrace();
            }
    return true;
    }

    public boolean handleResponse(MessageContext context) {
    try {
        SOAPMessageContext smc = (SOAPMessageContext) context;
        SOAPMessage reqMsg = smc.getMessage();
        context.setProperty("res-msg", reqMsg);
        } catch (Exception ex) {
        ex.printStackTrace();
            }
    return true;
    }

}

然后在我们的客户端,我们可以得到那个属性,做任何你想做的事情,比如

代码语言:javascript
运行
复制
MyServiceLocator locator = new MyServiceLocator(); 
MyService service = locator.getMyService(); 
service.getResults("foo", "bar"); // call the service

// I want to get that message I have set in request and response handler methods
MessageContext ctx = locator.getCall().getMessageContext();
SOAPMessage reqMsg = (SOAPMessage) requestContext.getProperty("req-msg");         
SOAPMessage resMsg = (SOAPMessage) requestContext.getProperty("res-msg");         

但是这样做并不安全,因为这不是线程安全。根据它的文档

……所以如果有人能给我一个更好的解决方案。

EN

回答 1

Stack Overflow用户

发布于 2012-10-05 05:39:51

JAXB : StringWriter输出有一个截断的标记值

请查看上面的文章,您可以将xml转换为java字符串,并且可以使用任何mysql数据类型来保存转换为string的xml。如果字符串非常大,可以使用blob。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8208653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档