WsInInterceptor.java 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. //package com.malk.hangshi.config;
  2. //
  3. //import lombok.extern.slf4j.Slf4j;
  4. //import org.apache.commons.lang3.StringUtils;
  5. //import org.apache.cxf.binding.soap.SoapMessage;
  6. //import org.apache.cxf.helpers.IOUtils;
  7. //import org.apache.cxf.interceptor.Fault;
  8. //import org.apache.cxf.phase.AbstractPhaseInterceptor;
  9. //
  10. //import java.io.ByteArrayInputStream;
  11. //import java.io.InputStream;
  12. //
  13. //@Slf4j
  14. //public class WsInInterceptor extends AbstractPhaseInterceptor<SoapMessage> {
  15. //
  16. // public WsInInterceptor(String phase) {
  17. // super(phase);
  18. // }
  19. //
  20. // @Override
  21. // public void handleMessage(SoapMessage message) throws Fault {
  22. // try {
  23. // // 从流中获取请求消息体并以字符串形式输出,注意IOUtils是cxf的包;
  24. // String input = IOUtils.toString(message.getContent(InputStream.class), "UTF-8");
  25. // // 如果内容不为空(第一次连接也会被拦截,此时input为空)
  26. // if (StringUtils.isNotBlank(input)) {
  27. // // 修改请求消息体为webservice服务要求的格式
  28. // input = input.replace("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">", "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ser=\"http://server.dandelion.com\">")
  29. // .replace("<esb:getData xmlns:esb=\"mdm.stardand.com\">", "<ser:getData>")
  30. // .replace("</esb:getData>", "</ser:getData>").replace("ns2:InvokeResponse", "InvokeResponse");
  31. // log.info("ns2:InvokeResponse, {}", input);
  32. // }
  33. //
  34. // // 重新写入
  35. // message.setContent(InputStream.class, new ByteArrayInputStream(input.getBytes()));
  36. // } catch (Exception e) {
  37. // System.out.println(String.format("解析报文异常: %s", e.getMessage()));
  38. // }
  39. // }
  40. //}