リクエストとレスポンスを取得できるように、残りのSOAPサービスとServlet Filter
を実装しています。コールが休止状態になる前にフィルタが呼び出されますが、ペイロードから要求の要素を取得できません。 したがって、フィルタが初期化されると、呼び出しはdoFilterに行きサービスを停止しますが、要求と応答の変数では、残りの要求と応答に関連するものは表示されません。 質問が明確になることを願っています。サーブレットフィルタを使用してリクエスト/レスポンスペイロードを取得する方法
フィルタクラス
public class ESignLoggingInterceptor implements Filter {
private static final Logger logger = Logger.getLogger(ESignLoggingInterceptor.class.getSimpleName());
@Override
public void init(FilterConfig config) throws ServletException {
System.out.println("Logging filter initiated");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
String path = null;
if(request != null && request instanceof HttpServletRequest) {
path = ((HttpServletRequest) request).getRequestURL().toString();
}
chain.doFilter(request, response);
System.out.println("Request URL:" + " " + path);
}
@Override
public void destroy() {
}
}
web.xmlの
<servlet>
<servlet-name>Jersey Spring</servlet-name>
<servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.mercuryinsurance.esignature.client.rest.service</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.JSPTemplatesBasePath</param-name>
<param-value>/WEB-INF/jsps/rest</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name>
<param-value>/(resources|(WEB-INF/jsp))/.*</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Spring</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
<filter>
<filter-name>LoggingFilter</filter-name>
<filter-class>com.mercuryinsurance.esignature.common.logging.ESignLoggingInterceptor</filter-class>
</filter>
<filter-mapping>
<filter-name>LoggingFilter</filter-name>
<url-pattern>/rest/*</url-pattern>
</filter-mapping>
ペイロードをキャプチャするためにサーブレット要求/応答をラップする必要があります。 – ThomasRS