Hi Michale,
Thanks for responding. Here is my xml file. Since we are using very old Spring version 2.0.4 I don't want to jump straight away to another major version like 3.0.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:cxf="http://cxf.apache.org/core"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
<import resource="classpath:META-INF/cxf/cxf.xml"/>
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>
<import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>
<import resource="classpath:META-INF/cxf/cxf-extension-jaxws.xml"/>
<!--
<bean id="messageLogger" class="com.focus.rcl.MessageLogger">
<constructor-arg type="java.lang.String" value="soap-messages.log"/>
</bean>
-->
<bean id="logInbound" class="org.apache.cxf.interceptor.LoggingInInterceptor">
<!--<constructor-arg ref="messageLogger"/>-->
<!--<property name="limit" value="16777216"/>-->
</bean>
<bean id="logOutbound" class="org.apache.cxf.interceptor.LoggingOutInterceptor">
<!--<constructor-arg ref="messageLogger"/>-->
<!--<property name="limit" value="16777216"/>-->
</bean>
<bean id="hibernateExport" class="com.focus.rcl.HibernateExportInterceptor">
<property name="sessionFactory" ref="rclSessionFactory">
</property>
</bean>
<bean id="sessionInterceptor" class="com.focus.rcl.UserSessionInterceptor">
<constructor-arg type="java.lang.String" value="pre-invoke"/>
</bean>
<cxf:bus>
<cxf:inInterceptors>
<ref bean="logInbound"/>
<ref bean="sessionInterceptor"/>
</cxf:inInterceptors>
<cxf:outInterceptors>
<ref bean="hibernateExport"/>
<ref bean="logOutbound"/>
</cxf:outInterceptors>
<cxf:inFaultInterceptors>
<ref bean="logOutbound"/>
</cxf:inFaultInterceptors>
</cxf:bus>
<!--WEB SERVICE SECURITY CONFIGURATION GOES HERE-->
<bean id="passwordCallback" class="com.focus.rcl.wssecurity.PasswordCallback">
<property name="rclUserService">
<ref bean="userService"/>
</property>
</bean>
<bean id="wss4jIn" class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">
<constructor-arg>
<map>
<entry key="action" value="UsernameToken Timestamp"/>
<!--<entry key="passwordType" value="PasswordDigest"/>-->
<entry key="passwordType" value="PasswordText"/>
<entry>
<key>
<value>passwordCallbackRef</value>
</key>
<ref bean="passwordCallback"/>
</entry>
<!--<entry key="signaturePropFile" value="sign.properties"></entry>-->
</map>
</constructor-arg>
</bean>
<!--WEB SERVICE IMPLEMENATION BEANS GO HERE-->
<bean id="wsBase" abstract="true" class="com.focus.rcl.ws.AbstractWebService">
<property name="userDao">
<ref bean="userDao"/>
</property>
</bean>
<bean id="wsUserImpl" class="com.focus.rcl.ws.WsUser" parent="wsBase">
<property name="userService">
<ref bean="userService"/>
</property>
<property name="organizationService">
<ref bean="organizationService"/>
</property>
</bean>
<bean id="wsOrganizationImpl" class="com.focus.rcl.ws.WsOrganization" parent="wsBase">
<property name="organizationService">
<ref bean="organizationService"/>
</property>
</bean>
<tx:advice id="txAdvice" transaction-manager="rclTransactionManager">
<tx:attributes>
<tx:method name="*"/>
<tx:method name="submit*" propagation="NEVER"/>
</tx:attributes>
</tx:advice>
<!--<aop:config>-->
<!--<aop:pointcut id="webServiceOperation" expression="execution(* com.focus.rcl.ws.Ws*.*(..))"/>-->
<!--<aop:advisor advice-ref="txAdvice" pointcut-ref="webServiceOperation"/>-->
<!--</aop:config>-->
<bean id="wsContentManagementImpl" class="com.focus.rcl.ws.WsContentManagement" parent="wsBase">
<property name="contentManagementService">
<ref bean="contentManagementService"/>
</property>
</bean>
<bean id="wsReportImpl" class="com.focus.rcl.ws.WsReport" parent="wsBase">
<property name="reportService">
<ref bean="reportService"/>
</property>
<property name="contentManagementService">
<ref bean="contentManagementService"/>
</property>
</bean>
<bean id="wsSecurityImpl" class="com.focus.rcl.ws.WsSecurity" parent="wsBase">
<property name="passwordCallback">
<ref local="passwordCallback"/>
</property>
</bean>
<!--WEB SERVICE ENDPOINT CONFIGURATION GOES HERE-->
<jaxws:endpoint id="wsUser" implementor="#wsUserImpl" address="@ws.transport@User">
<jaxws:inInterceptors>
<bean class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor"/>
<ref local="wss4jIn"/>
</jaxws:inInterceptors>
</jaxws:endpoint>
<bean id="localTransportFactory" class="org.apache.cxf.transport.local.LocalTransportFactory" lazy-init="false">
<property name="transportIds">
<list>
<value>
http://cxf.apache.org/transports/local</value>
<value>
http://schemas.xmlsoap.org/soap/http</value>
<value>
http://schemas.xmlsoap.org/wsdl/soap/http</value>
</list>
</property>
</bean>
<jaxws:endpoint id="wsContentManagement" implementor="#wsContentManagementImpl"
address="@ws.transport@ContentManagement">
<jaxws:inInterceptors>
<bean class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor"/>
<ref local="wss4jIn"/>
</jaxws:inInterceptors>
</jaxws:endpoint>
<jaxws:endpoint id="wsReport" implementor="#wsReportImpl" address="/Report">
<jaxws:inInterceptors>
<bean class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor"/>
<ref local="wss4jIn"/>
</jaxws:inInterceptors>
</jaxws:endpoint>
<jaxws:endpoint id="wsOrganization" implementor="#wsOrganizationImpl" address="@ws.transport@Organization">
<jaxws:inInterceptors>
<bean class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor"/>
<ref local="wss4jIn"/>
</jaxws:inInterceptors>
</jaxws:endpoint>
<bean id="loginPasswordCallback" class="com.focus.rcl.wssecurity.LookupPasswordCallback">
<property name="rclUserDao">
<ref bean="userDao"/>
</property>
</bean>
<jaxws:endpoint id="wsSecurity" implementor="#wsSecurityImpl" address="@ws.transport@Security">
<jaxws:outInterceptors>
<bean class="org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor"/>
<bean class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor">
<constructor-arg>
<map>
<entry key="action" value="UsernameToken Timestamp"/>
<entry key="passwordType" value="PasswordText"/>
<entry>
<key>
<value>passwordCallbackRef</value>
</key>
<ref bean="loginPasswordCallback"/>
</entry>
</map>
</constructor-arg>
</bean>
</jaxws:outInterceptors>
</jaxws:endpoint>
</beans>