elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Capturar petición y respuesta XML de SOAP con CXF
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Capturar petición y respuesta XML de SOAP con CXF  (Leído 2,277 veces)
alberto2

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Capturar petición y respuesta XML de SOAP con CXF
« en: 22 Febrero 2016, 21:10 pm »

Buenas tardes a todos,
¿Qué tal? Espero que os vaya bien a todos.
Quiero un filtro para que me de la petición de XML que mando con el SOAP y la respuesta XML que recibo con el SOAP y quiero transformarlo en un String peticion y en otro String respuesta. No consigo obtener ni la peticion ni la respuesta en un String. Un compañero me ha dicho que hay que hacerlo con un byteArrayTengo el siguiente codigo:

Código:
import java.io.CharArrayWriter;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;

public class UpperCaseFilter implements Filter {
  protected FilterConfig config;

  public void init(FilterConfig config) throws ServletException {
    this.config = config;
  }

  public void destroy() {
  }

  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
      throws ServletException, IOException {
    ServletResponse newResponse = response;

    if (request instanceof HttpServletRequest) {
      newResponse = new CharResponseWrapper((HttpServletResponse) response);
    }

    chain.doFilter(request, newResponse);

    if (newResponse instanceof CharResponseWrapper) {
      String text = newResponse.toString();
      if (text != null) {
        response.getWriter().write(text);
      }
    }
  }
}

class CharResponseWrapper extends HttpServletResponseWrapper {
  protected CharArrayWriter charWriter;

  protected PrintWriter writer;

  protected boolean getOutputStreamCalled;

  protected boolean getWriterCalled;

  public CharResponseWrapper(HttpServletResponse response) {
    super(response);

    charWriter = new CharArrayWriter();
  }

  public ServletOutputStream getOutputStream() throws IOException {
    if (getWriterCalled) {
      throw new IllegalStateException("getWriter already called");
    }

    getOutputStreamCalled = true;
    return super.getOutputStream();
  }

  public PrintWriter getWriter() throws IOException {
    if (writer != null) {
      return writer;
    }
    if (getOutputStreamCalled) {
      throw new IllegalStateException("getOutputStream already called");
    }
    getWriterCalled = true;
    writer = new PrintWriter(charWriter);
    return writer;
  }

  public String toString() {
    String s = null;

    if (writer != null) {
      s = charWriter.toString();
    }
    return s;
  }
}

Simple response wrapper that utilizes a local CharArrayWriter for output


<filter>
  <filter-name>Upper Case Filter</filter-name>
  <filter-class>com.omh.filters.UpperCaseFilter</filter-class>
</filter>

<filter-mapping>
  <filter-name>Upper Case Filter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

*/


Alguien sabe cómo lo puedo hacer? Me han dicho con un ByteArray. Me interesa capturar los xml tanto de peticion como de respuesta del SOAP.

Muchas gracias a todos los que me ayuden.
Saludos.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Borrado de respuesta sin motivo aparente (petición de traduccion)
Sugerencias y dudas sobre el Foro
Silici0 5 4,122 Último mensaje 17 Abril 2009, 13:02 pm
por Novlucker
Llamada a WebService mediante SOAP
PHP
|Miguel| 3 6,112 Último mensaje 10 Junio 2012, 12:13 pm
por |Miguel|
Problema con SOAP y PHP
PHP
WHK 1 4,932 Último mensaje 20 Julio 2012, 21:38 pm
por WHK
llenar spinner con webservice soap
Programación General
hades645 0 1,924 Último mensaje 21 Mayo 2019, 00:23 am
por hades645
soap generico
Programación Visual Basic
adla 2 1,888 Último mensaje 19 Diciembre 2020, 08:24 am
por BlackZeroX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines