1.代码方式
public final class Server { public static void main(String args[]) throws Exception { CourseBuilderImpl implementor = new CourseBuilderImpl(); JaxWsServerFactoryBean svrFactory = new JaxWsServerFactoryBean(); svrFactory.setAddress("http://localhost:9000/CourseBuilder"); svrFactory.setServiceBean(implementor); svrFactory.getInInterceptors().add(new LoggingInInterceptor()); svrFactory.getOutInterceptors().add(new LoggingOutInterceptor()); svrFactory.create(); } }
2.注解方式
@WebService @InInterceptors(interceptors = "org.apache.cxf.interceptor.LoggingInInterceptor") @OutInterceptors(interceptors = "org.apache.cxf.interceptor.LoggingOutInterceptor") public class CourseBuilderImpl implements CourseBuilder { ...
3.Spring集成方式
<beans> ... <bean id="logIn" class="org.apache.cxf.interceptor.LoggingInInterceptor"/> <bean id="logOut" class="org.apache.cxf.interceptor.LoggingOutInterceptor"/> <jaxws:endpoint id="courseBuilder" implementor="demo.cxf.logging.CourseBuilderImpl" address="/CourseBuilder" > <jaxws:inInterceptors> <ref bean="logIn"/> </jaxws:inInterceptors> <jaxws:outInterceptors> <ref bean="logOut"/> </jaxws:outInterceptors> </jaxws:endpoint> </beans>
相关推荐
通过上述步骤,我们成功实现了使用CXF打印SOAP报文的功能,并能够有效地记录WebService的日志信息。这对于调试和维护基于CXF的服务来说是非常有用的。此外,通过扩展此类自定义拦截器,还可以添加更多的功能,如安全...
同时,CXF提供了多种拦截器阶段,如PRE_INVOKE、POST_INVOKE、PRE_LOGGING等,每个阶段对应消息处理的不同时间点。 在实际应用中,除了自定义拦截器,还可以利用CXF提供的内置拦截器,如LoggingInInterceptor和...
- 如果需要更细粒度的控制,可以创建自定义的日志拦截器实现`org.apache.cxf.interceptor.LoggingInterceptor`接口,然后在CXF的`<cxf:inInterceptors>`或`<cxf:outInterceptors>`中注册。 5. **日志输出格式**: ...
6. **调试和测试拦截器**:为了确保拦截器按预期工作,你需要了解如何在CXF中启用日志输出,这通常通过设置日志级别和使用如`java.util.logging`或`log4j`这样的日志框架来实现。 7. **异常处理**:自定义拦截器...
2. 消息日志:通过启用CXF的logging-interceptor,可以记录客户端发出和接收到的消息,便于调试。 3. 错误处理:CXF提供了异常处理机制,可以根据HTTP状态码或其他错误信息捕获和处理异常。 六、性能优化 1. 缓存:...
<cxf:logging /> </cxf:features> </cxf:bus> <cxf:serviceBeans> </cxf:serviceBeans> <cxf:frontend Simple /> <bean id="cxfServletTransport" class="org.apache.cxf.transport.servlet....