LoggingOutInterceptor 到 java 中的字符串
LoggingOutInterceptor to a string in java
我有这样的记录:
org.apache.cxf.endpoint.Client client = ClientProxy.getClient(test);
client.getInInterceptors().add(new LoggingInInterceptor());
client.getOutInterceptors().add(new LoggingOutInterceptor());
捕获 soap 请求和响应。它正在完美地打印输出到控制台。但我想将该输出捕获到一个字符串中,以便我可以在程序的其他部分使用它。那么有没有办法将其捕获到字符串而不是控制台?
创建一个扩展 AbstractPhaseInterceptor<Message>
的 class。你可以用那里的肥皂消息做任何你想做的事。
import javax.xml.bind.JAXBException;
import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.jaxb.JAXBDataBinding;
import org.apache.cxf.message.Message;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
import org.apache.cxf.phase.Phase;
public class CustomOutInterceptor extends AbstractPhaseInterceptor<Message> {
@Override
public void handleMessage(Message message) throws Fault {
//do something with your message here
}
public CustomOutInterceptor() {
super(Phase.POST_LOGICAL);
}
}
消息对象包含您的肥皂消息。你可以按照你想要的任何方式处理它。
所以在你的代码中你必须去:
org.apache.cxf.endpoint.Client client = ClientProxy.getClient(test);
client.getOutInterceptors().add(new CustomOutInterceptor());
我有这样的记录:
org.apache.cxf.endpoint.Client client = ClientProxy.getClient(test);
client.getInInterceptors().add(new LoggingInInterceptor());
client.getOutInterceptors().add(new LoggingOutInterceptor());
捕获 soap 请求和响应。它正在完美地打印输出到控制台。但我想将该输出捕获到一个字符串中,以便我可以在程序的其他部分使用它。那么有没有办法将其捕获到字符串而不是控制台?
创建一个扩展 AbstractPhaseInterceptor<Message>
的 class。你可以用那里的肥皂消息做任何你想做的事。
import javax.xml.bind.JAXBException;
import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.jaxb.JAXBDataBinding;
import org.apache.cxf.message.Message;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
import org.apache.cxf.phase.Phase;
public class CustomOutInterceptor extends AbstractPhaseInterceptor<Message> {
@Override
public void handleMessage(Message message) throws Fault {
//do something with your message here
}
public CustomOutInterceptor() {
super(Phase.POST_LOGICAL);
}
}
消息对象包含您的肥皂消息。你可以按照你想要的任何方式处理它。 所以在你的代码中你必须去:
org.apache.cxf.endpoint.Client client = ClientProxy.getClient(test);
client.getOutInterceptors().add(new CustomOutInterceptor());