Commit 26a284b5 by Patryk Czarnik

InfoHandler - więcej szczegółów

parent af412b3a
package ogloszenia.soap.handlers; package ogloszenia.soap.handlers;
import jakarta.xml.soap.SOAPException;
import jakarta.xml.soap.SOAPHeader;
import jakarta.xml.soap.SOAPHeaderElement;
import jakarta.xml.soap.SOAPMessage;
import jakarta.xml.ws.handler.MessageContext; import jakarta.xml.ws.handler.MessageContext;
import jakarta.xml.ws.handler.soap.SOAPHandler; import jakarta.xml.ws.handler.soap.SOAPHandler;
import jakarta.xml.ws.handler.soap.SOAPMessageContext; import jakarta.xml.ws.handler.soap.SOAPMessageContext;
import javax.xml.namespace.QName; import javax.xml.namespace.QName;
import java.time.LocalTime;
import java.util.Set; import java.util.Set;
public class InfoHandler implements SOAPHandler<SOAPMessageContext> { public class InfoHandler implements SOAPHandler<SOAPMessageContext> {
private static final QName NAGLOWEK = new QName("http://nasze_szkolenie.com/naglowki", "czas");
{ {
System.out.println("Powstaje obiekt InfoHandler"); System.out.println("Powstaje obiekt InfoHandler");
} }
...@@ -20,7 +27,31 @@ public class InfoHandler implements SOAPHandler<SOAPMessageContext> { ...@@ -20,7 +27,31 @@ public class InfoHandler implements SOAPHandler<SOAPMessageContext> {
@Override @Override
public boolean handleMessage(SOAPMessageContext context) { public boolean handleMessage(SOAPMessageContext context) {
System.out.println("InfoHandler.handleMessage"); boolean wychodzaca = (Boolean) context.get(SOAPMessageContext.MESSAGE_OUTBOUND_PROPERTY);
String jaka = wychodzaca ? "out" : "in";
System.out.println("A handleMessage " + jaka);
SOAPMessage message = context.getMessage();
QName operacja = (QName)context.get(SOAPMessageContext.WSDL_OPERATION);
System.out.println("operacja: " + operacja);
// HttpServletRequest req = (HttpServletRequest) context.get(SOAPMessageContext.SERVLET_REQUEST);
// System.out.println(" adres klienta: " + req.getLocalAddr());
// dopisanie nagłówka czas:
if(wychodzaca) {
try {
SOAPHeader soapHeader = message.getSOAPHeader();
if(soapHeader != null) {
SOAPHeaderElement nowyNaglowek = soapHeader.addHeaderElement(NAGLOWEK);
nowyNaglowek.setTextContent(LocalTime.now().toString());
}
} catch (SOAPException e) {
e.printStackTrace();
}
}
System.out.println("Koniec handleMessage");
return true; return true;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment