Ich entwickle einen Web-Service mit Glassfish und verwende SOAP. Ich habe mehrere Web-Methoden, und ich möchte meinen Webmethodennamen und seine Parameter zu HTTP-Kopf-Anfrage vorstellen.Anforderungsparameter aus XML mit WebFilter abrufen
Zum Beispiel:
Ich habe diesen Weg:
Kontext: WebServices
webMethods: makeSomething
Parameter: a = 2
So erstelle ich eine Klasse mit dem Namen ProfilingFilter:
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws java.io.IOException, javax.servlet.ServletException {
if (request.getContentLength() != -1 && context != null) {
((HttpServletResponse) response).addHeader("Operation", -->PATH+PARAMETERS);
// ((HttpServletResponse) response).addHeader("Operation", -->makeSomething?a=2);
}
}
Es ist möglich, Servlet-Antworten oder Servlet-Anfrage zu verwenden, um diese Informationen zu bekommen?
Wenn nicht, wie kann ich das tun?
Da dies ein SOAP-Dienst ist, gibt es KEINE HTTP-Leseanforderung. Alle SOAP-Vorgänge werden über die HTTP PUT-Methode ausgeführt. Mein Vorschlag ist, dass Sie etwas wie WireShark installieren und die XML-Anfrage erfassen oder sogar die SOAP-Benutzeroberfläche verwenden, um die XML-Anfrage zu erfassen und sich eine aktuelle Anfrage anzusehen. Dies wird Ihnen einen Einblick geben, wie Sie erreichen müssen, was Sie wollen. – Namphibian
Ihre Frage ist nicht sehr klar. Es sieht so aus, als ob Sie versuchen, der Web-Service-Anfrage HTTP-Header hinzuzufügen, bevor sie an Ihren Web-Service-Bean gelangen. Ist das korrekt? Führen Sie einen JAX-WS-Webservice aus? Was meinst du mit "Web-Methode"? Beziehen Sie sich auf HTTP-Vorgänge oder tatsächliche Webdienstvorgänge wie in einer WSDL? – kolossus
Nein. Wenn ich eine Anfrage mache, möchte ich Soap Message Response HTTP-Header, über HTTP Servlet Response oder etwas ähnliches hinzufügen. Ja, ich habe jax-ws. WebMethod ist eine Methode in meinem WebService. – Goldbones