Ich entwickle einen Java-Webdienst. In diesem Moment kann ich Http Header Anfragen bekommen. Aber ich möchte mehr Header-Anfragen hinzufügen.Hinzufügen von HTTP-Headern zur JAX-WS-Dienstantwort
Ich mache dies derzeit in einem Servlet-Filter.
Das Problem mit dieser Strategie ist, dass der hinzugefügte Header statisch ist.
Mit SoapHandler Klasse kann ich eine SOAP-Nachricht erhalten - dynamisch:
public class SoapClass implements SOAPHandler<SOAPMessageContext> {
@Override
public boolean handleMessage(SOAPMessageContext messageContext) {
log(messageContext);
return true;
}
@Override
public Set<QName> getHeaders() {
Set<QName> qNames = Collections.EMPTY_SET;
return qNames;
}
@Override
public boolean handleFault(SOAPMessageContext messageContext) {
log(messageContext);
return true;
}
@Override
public void close(MessageContext context) {
}
public static String getMsgAsString(SOAPMessage message) {
String msg = null;
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
message.writeTo(baos);
msg = baos.toString();
} catch (SOAPException | IOException soape) {
}
return msg;
}
private String soapToString(SOAPMessage message, boolean indent) {
final StringWriter sw = new StringWriter();
try {
TransformerFactory.newInstance().newTransformer().transform(
new DOMSource(message.getSOAPPart()),
new StreamResult(sw));
} catch (TransformerException e) {
throw new RuntimeException(e);
}
return (indent ? sw.toString() : sw.toString().replaceAll("[\\r\\n]", ""));
}
Also, was ich wirklich wollte, war mit Filter dynamische Seife Nachricht zu verbinden. Wie kann ich das erreichen?
Was meinst du mit „der Header statisch“? Was ist ein statischer Header im Vergleich zu einem dynamischen Header? – kolossus
"Operation", "etwas" ist eine Wert-Statistik, die ich definiert habe. Ich möchte verschiedene Soap Content für jede Anfrage in der Lage sein – Goldbones
Ich verstehe es immer noch nicht Mann: Was ist ein "Wert statisch" vs "Seife Inhalt"? Möchten Sie einen HTTP-Header basierend auf einer Bedingung festlegen? Oder möchten Sie einen SOAP-Header festlegen? * Ich möchte unterschiedliche Soap-Inhalte für jede Anfrage * wirklich nicht gut übersetzen können. Kannst du eine Illustration oder etwas posten? – kolossus