使用 Spring-WS 进行服务器端日志记录

发布于 2024-12-28 09:35:27 字数 1412 浏览 4 评论 0原文

我已经使用 JaxWS-Spring 实现了 Web 服务。我想记录收到的 XML。我尝试了各种尝试,其中将适当的类别添加到我的 log4j.properties 文件中并使用拦截器。然而,我总是因为这样或那样的原因而失败(日志记录似乎被忽略——向我的应用程序上下文添加拦截器会带来其他问题)。

我的项目中的以下片段:

PS:我正在使用 Spring 2.5.6

web.xml

 <servlet>
            <servlet-name>jaxws-servlet</servlet-name>
            <servlet-class>com.sun.xml.ws.transport.http.servlet.WSSpringServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>


    <!-- Mapping to redirect all requests from 'FaxWebService' to jaxws-servlet. -->
        <servlet-mapping>
            <servlet-name>jaxws-servlet</servlet-name>
            <url-pattern>/FaxWebService</url-pattern>
        </servlet-mapping>

applicationContext.xml

<!-- Bind the URL FaxWebService to our bean FaxWebService. -->
    <wss:binding url="/FaxWebService">
        <wss:service>
            <ws:service bean="#faxWebService"/>
        </wss:service>
    </wss:binding>

<!-- Bean responsible of taking care of the webservice. -->
    <bean id="faxWebService" class="com.connexo.icubeplus3.dispatcher.webservices.FaxWebService"
          scope="singleton">
        <property name="dummyMode" value="${fax.dummy.mode}"/>
    </bean>

I have implemented a web services using JaxWS-Spring. I would like to log the XML being received. I have tried various attempts, among which to add the proper categories to my log4j.properties file and using interceptors. However I have always failed for one reason or another (logging seems to be ignored - adding interceptors to my application context gives other issues).

The following snippets from my project :

PS: I am using Spring 2.5.6

web.xml

 <servlet>
            <servlet-name>jaxws-servlet</servlet-name>
            <servlet-class>com.sun.xml.ws.transport.http.servlet.WSSpringServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>


    <!-- Mapping to redirect all requests from 'FaxWebService' to jaxws-servlet. -->
        <servlet-mapping>
            <servlet-name>jaxws-servlet</servlet-name>
            <url-pattern>/FaxWebService</url-pattern>
        </servlet-mapping>

applicationContext.xml

<!-- Bind the URL FaxWebService to our bean FaxWebService. -->
    <wss:binding url="/FaxWebService">
        <wss:service>
            <ws:service bean="#faxWebService"/>
        </wss:service>
    </wss:binding>

<!-- Bean responsible of taking care of the webservice. -->
    <bean id="faxWebService" class="com.connexo.icubeplus3.dispatcher.webservices.FaxWebService"
          scope="singleton">
        <property name="dummyMode" value="${fax.dummy.mode}"/>
    </bean>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

娇女薄笑 2025-01-04 09:35:28

您必须编写一个处理程序来记录它。网络上有各种示例,例如 http://docs。 oracle.com/cd/E13222_01/wls/docs103/webserv_adv_rpc/handlers.html

You will have to write a handler to log it. There are various examples in the web, like http://docs.oracle.com/cd/E13222_01/wls/docs103/webserv_adv_rpc/handlers.html

沫尐诺 2025-01-04 09:35:27

老实说,我怀疑这与 Spring WS 有什么关系。

如果要在 Spring WS 中记录传入消息,则需要将 org.springframework.ws.client.MessageTracing.sent 和 org.springframework.ws.client.MessageTracing.received 的日志记录级别提高到 TRACE。例如,在 log4j 配置中:

<logger name="org.springframework.ws.client.MessageTracing.sent">
    <level value="TRACE" />
    <appender-ref ref="stdout" />
</logger>
<logger name="org.springframework.ws.client.MessageTracing.received">
    <level value="TRACE" />
    <appender-ref ref="stdout" />
</logger>

I doubt this has anything to do with Spring WS to be honest.

If you want to log the incoming messages in Spring WS, you want to raise the logging level for org.springframework.ws.client.MessageTracing.sent and org.springframework.ws.client.MessageTracing.received to TRACE. For example, in log4j config:

<logger name="org.springframework.ws.client.MessageTracing.sent">
    <level value="TRACE" />
    <appender-ref ref="stdout" />
</logger>
<logger name="org.springframework.ws.client.MessageTracing.received">
    <level value="TRACE" />
    <appender-ref ref="stdout" />
</logger>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文