You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Senthil Sona <sw...@cisco.com> on 2009/08/19 18:14:31 UTC

Unable to get Header tags in custom module's inflow handler

Hi Rampart team,

    In a client class we have our custom module and rampart engaged. While
sending the request, we are setting some header tags in outflow handler of
custom module. while request going out, first custom module's outflow
handler is executing then rampart module's outflow handler is executing.
When request goes til webservice, (webservice is also having rampart and
custom module engage), then webservice custom module's inflow handler is
executing. We have a code to extract custom header tags in inflow handler.
But the custom header tags we have set in outflow handler is not coming till
inflow handler. And in inflow handler the envelope is in encrypt form. Could
you please tell me how to get these header values in inflow handler. 

    Please reply as soon as possible. This is very urgent.

Thanks,
Swapna Soni.
-- 
View this message in context: http://www.nabble.com/Unable-to-get-Header-tags-in-custom-module%27s-inflow-handler-tp25047272p25047272.html
Sent from the Axis - Dev mailing list archive at Nabble.com.


Re: Unable to get Header tags in custom module's inflow handler

Posted by soni swapna <sw...@cisco.com>.
Hi Amila,

   Could you please reply to my question . As this is high priority task and
iam unable to get any clue from google also. 

Thanks,
Swapna Soni.

soni swapna wrote:
> 
> Hi Amila,
> 
> Thanks for your reply. We are placing module phase in the same order as u
> said. Below is the code of our axis2.xml file.
> 
> <!--
>   ~ Licensed to the Apache Software Foundation (ASF) under one
>   ~ or more contributor license agreements. See the NOTICE file
>   ~ distributed with this work for additional information
>   ~ regarding copyright ownership. The ASF licenses this file
>   ~ to you under the Apache License, Version 2.0 (the
>   ~ "License"); you may not use this file except in compliance
>   ~ with the License. You may obtain a copy of the License at
>   ~
>   ~ http://www.apache.org/licenses/LICENSE-2.0
>   ~
>   ~ Unless required by applicable law or agreed to in writing,
>   ~ software distributed under the License is distributed on an
>   ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>   ~ KIND, either express or implied. See the License for the
>   ~ specific language governing permissions and limitations
>   ~ under the License.
>   -->
> 
> <axisconfig name="AxisJava2.0">
>     <!-- ================================================= -->
>     <!-- Parameters -->
>     <!-- ================================================= -->
>     <parameter name="hotdeployment">true</parameter>
>     <parameter name="hotupdate">false</parameter>
>     <parameter name="enableMTOM">false</parameter>
>     <parameter name="enableSwA">false</parameter>
>     
>     <!-- Including ASF-RM related parameter - yash -->
> 	<parameter name="ASFRMStorageManager" locked="false">inmemory</parameter>
> 
>     <!--Uncomment if you want to enable file caching for attachments -->
>     <!--parameter name="cacheAttachments">true</parameter>
>     <parameter name="attachmentDIR"></parameter>
>     <parameter name="sizeThreshold">4000</parameter-->
>     
>     <!--Uncomment if you want to plugin your own attachments lifecycle
> implementation -->
>     <!--<attachmentsLifecycleManager
> class="org.apache.axiom.attachments.lifecycle.impl.LifecycleManagerImpl"/>-->
> 
> 
>     <!--Uncomment if you want to enable the reduction of the in-memory
> cache of WSDL definitions -->
>     <!--In some server environments, the available memory heap is limited
> and can fill up under load -->
>     <!--Since in-memory copies of WSDL definitions can be large, some
> steps can be taken-->
>     <!--to reduce the memory needed for the cached WSDL definitions. -->
>     <!--parameter name="reduceWSDLMemoryCache">true</parameter-->
>                                                        
>     <!--This will give out the timout of the configuration contexts, in
> milliseconds-->
>     <parameter name="ConfigContextTimeoutInterval">30000</parameter>
> 
>     <!--During a fault, stack trace can be sent with the fault message.
> The following flag will control -->
>     <!--that behavior.-->
>     <parameter name="sendStacktraceDetailsWithFaults">false</parameter>
> 
>     <!--If there aren't any information available to find out the fault
> reason, we set the message of the exception-->
>     <!--as the faultreason/Reason. But when a fault is thrown from a
> service or some where, it will be -->
>     <!--wrapped by different levels. Due to this the initial exception
> message can be lost. If this flag-->
>     <!--is set, then Axis2 tries to get the first exception and set its
> message as the faultreason/Reason.-->
>     <parameter name="DrillDownToRootCauseForFaultReason">false</parameter>
> 
>     <parameter name="userName">admin</parameter>
>     <parameter name="password">axis2</parameter>
> 
>     <!--To override repository/services you need to uncomment following
> parameter and value SHOULD be absolute file path.-->
>     <!--ServicesDirectory only works on the following cases-->
>     <!---File based configurator and in that case the value should be a
> file URL (http:// not allowed)-->
>     <!---When creating URL Based configurator with URL file:// -->
>     <!--- War based configurator with expanded case , -->
> 
>     <!--All the other scenarios it will be ignored.-->
>     <!--<parameter name="ServicesDirectory">service</parameter>-->
>     <!--To override repository/modules you need to uncomment following
> parameter and value SHOULD be absolute file path-->
>     <!--<parameter name="ModulesDirectory">modules</parameter>-->
> 
> 
> 
>     <!--Following params will set the proper context paths for
> invocations. All the endpoints will have a commons context-->
>     <!--root which can configured using the following contextRoot
> parameter-->
>     <!--<parameter name="contextRoot">axis2</parameter>-->
> 
>     <!--Our HTTP endpoints can handle both REST and SOAP. Following
> parameters can be used to distinguiush those endpoints-->
>     <!--In case of a servlet, if you change this you have to manually
> change the settings of your servlet container to map this -->
>     <!--context path to proper Axis2 servlets-->
>     <!--<parameter name="servicePath">services</parameter>-->
>     <!--<parameter name="restPath">rest</parameter>-->
> 
>     <!-- Following parameter will completely disable REST handling in
> Axis2-->
>     <parameter name="disableREST" locked="false">false</parameter>
>     
>     <!-- Following parameter will suppress generation of SOAP 1.2 bindings
> in auto-generated WSDL files -->
>     <parameter name="disableSOAP12" locked="true">false</parameter>
> 
>     <!--POJO deployer , this will alow users to drop .class file and make
> that into a service-->
>     <deployer extension=".class" directory="pojo"
> class="org.apache.axis2.deployment.POJODeployer"/>
>     <deployer extension=".jar" directory="servicejars"
> class="org.apache.axis2.jaxws.framework.JAXWSDeployer"/>
> 
>     <!--<deployer extension=".jsa" directory="rmiservices"
> class="org.apache.axis2.rmi.deploy.RMIServiceDeployer"/>-->
>     
> 
>     <!-- Following parameter will set the host name for the epr-->
>     <!--<parameter name="hostname" locked="true">myhost.com</parameter>-->
> 
>     <!-- If you have a front end host which exposes this webservice using
> a different public URL  -->
>     <!-- use this parameter to override autodetected url -->
>     <!--<parameter
> name="httpFrontendHostUrl">https://someotherhost/context</parameter>-->
> 
> 
>     <!--    The way of adding listener to the system-->
>     <!--    <listener class="org.apache.axis2.ObserverIMPL">-->
>     <!--        <parameter
> name="RSS_URL">http://127.0.0.1/rss</parameter>-->
>     <!--    </listener>-->
>     
>     <threadContextMigrators>
>         <threadContextMigrator listId="JAXWS-ThreadContextMigrator-List"
> class="org.apache.axis2.jaxws.addressing.migrator.EndpointContextMapMigrator"/>
>     </threadContextMigrators>
> 
>     <!-- ================================================= -->
>     <!-- Message Receivers -->
>     <!-- ================================================= -->
>     <!--This is the deafult MessageReceiver for the system , if you want
> to have MessageReceivers for -->
>     <!--all the other MEP implement it and add the correct entry to here ,
> so that you can refer from-->
>     <!--any operation -->
>     <!--Note : You can ovrride this for a particular service by adding the
> same element with your requirement-->
>      <messageReceivers>
>         <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
>                         
> class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
>         <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
>                         
> class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
>         <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only"
>                         
> class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
>         <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out"
>                         
> class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
>     </messageReceivers>
> 
>     <!-- ================================================= -->
>     <!-- Message Formatter -->
>     <!-- ================================================= -->
>     <!--Following content type to message formatter mapping can be used to
> implement support for different message -->
>     <!--format  serialization in Axis2. These message formats are expected
> to be resolved based on the content type. -->
>     <messageFormatters>
>         <messageFormatter contentType="application/x-www-form-urlencoded"
>                         
> class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
>         <messageFormatter contentType="multipart/form-data"
>                         
> class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
>         <messageFormatter contentType="application/xml"
>                         
> class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
>         <messageFormatter contentType="text/xml"
>                         
> class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
>         <messageFormatter contentType="application/soap+xml"
>                         
> class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
>     </messageFormatters>
> 
>     <!-- ================================================= -->
>     <!-- Message Builders -->
>     <!-- ================================================= -->
>     <!--Following content type to builder mapping can be used to implement
> support for different message -->
>     <!--formats in Axis2. These message formats are expected to be
> resolved based on the content type. -->
>     <messageBuilders>
>         <messageBuilder contentType="application/xml"
>                         
> class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
>         <messageBuilder contentType="application/xml"
>                         
> class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
>         <messageBuilder contentType="application/x-www-form-urlencoded"
>                         
> class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
>         <messageBuilder contentType="multipart/form-data"
>                         
> class="org.apache.axis2.builder.MultipartFormDataBuilder"/>
>     </messageBuilders>
> 
>     <!-- ================================================= -->
>     <!-- Transport Ins -->
>     <!-- ================================================= -->
>     <transportReceiver name="http"
>                       
> class="org.apache.axis2.transport.http.SimpleHTTPServer">
>         <parameter name="port">8090</parameter>
>         <!-- Here is the complete list of supported parameters (see
> example settings further below):
>             port: the port to listen on (default 6060)
>             hostname:  if non-null, url prefix used in reply-to endpoint
> references                                 (default null)
>             originServer:  value of http Server header in outgoing
> messages                                         (default
> "Simple-Server/1.1")
>             requestTimeout:  value in millis of time that requests can
> wait for data                                (default 20000)
>             requestTcpNoDelay:  true to maximize performance and minimize
> latency                                   (default true)
>                                 false to minimize bandwidth consumption by
> combining segments
>             requestCoreThreadPoolSize:  number of threads available for
> request processing (unless queue fills up)  (default 25)
>             requestMaxThreadPoolSize:  number of threads available for
> request processing if queue fills up         (default 150)
>                                        note that default queue never fills
> up:  see HttpFactory
>             threadKeepAliveTime:  time to keep threads in excess of core
> size alive while inactive                  (default 180)
>                                   note that no such threads can exist with
> default unbounded request queue
>             threadKeepAliveTimeUnit:  TimeUnit of value in
> threadKeepAliveTime (default SECONDS)                    (default SECONDS)
>         -->
>         <!-- <parameter
> name="hostname">http://www.myApp.com/ws</parameter> -->
>         <!-- <parameter name="originServer">My-Server/1.1</parameter>          
> -->
>         <!-- <parameter name="requestTimeout">10000</parameter>                  
> -->
>         <!-- <parameter name="requestTcpNoDelay">false</parameter>                  
> -->
>         <!-- <parameter name="requestCoreThreadPoolSize">50</parameter>                     
> -->
>         <!-- <parameter name="requestMaxThreadPoolSize">100</parameter>                    
> -->
>         <!-- <parameter name="threadKeepAliveTime">240000</parameter>                 
> -->
>         <!-- <parameter
> name="threadKeepAliveTimeUnit">MILLISECONDS</parameter>            -->
>     </transportReceiver>
> 
>     <!--Uncomment this and configure as appropriate for JMS transport
> support, after setting up your JMS environment (e.g. ActiveMQ)
>     <transportReceiver name="jms"
> class="org.apache.axis2.transport.jms.JMSListener">
>         <parameter name="myTopicConnectionFactory">
>         	<parameter
> name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
>         	<parameter
> name="java.naming.provider.url">tcp://localhost:61616</parameter>
>         	<parameter
> name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
>         </parameter>
> 
>         <parameter name="myQueueConnectionFactory">
>         	<parameter
> name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
>         	<parameter
> name="java.naming.provider.url">tcp://localhost:61616</parameter>
>         	<parameter
> name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
>         </parameter>
> 
>         <parameter name="default">
>         	<parameter
> name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
>         	<parameter
> name="java.naming.provider.url">tcp://localhost:61616</parameter>
>         	<parameter
> name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
>         </parameter>
>     </transportReceiver>-->
> 
>     <!-- ================================================= -->
>     <!-- Non-blocking http/s Transport Listener  -->
> 
>     <!-- the non blocking http transport based on HttpCore + NIO
> extensions
>     <transportReceiver name="http"
> class="org.apache.axis2.transport.nhttp.HttpCoreNIOListener">
>     	<parameter name="port" locked="false">9000</parameter>
>     	<parameter name="non-blocking" locked="false">true</parameter>
>     </transportReceiver>-->
> 
>     <!-- the non blocking https transport based on HttpCore + SSL-NIO
> extensions
>     <transportReceiver name="https"
> class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLListener">
>     	<parameter name="port" locked="false">9002</parameter>
>     	<parameter name="non-blocking" locked="false">true</parameter>
>         <parameter name="keystore" locked="false">
>             <KeyStore>
>                 <Location>identity.jks</Location>
>                 <Type>JKS</Type>
>                 <Password>password</Password>
>                 <KeyPassword>password</KeyPassword>
>             </KeyStore>
>         </parameter>
>         <parameter name="truststore" locked="false">
>             <TrustStore>
>                 <Location>trust.jks</Location>
>                 <Type>JKS</Type>
>                 <Password>password</Password>
>             </TrustStore>
>         </parameter>-->
>         <!--<parameter name="SSLVerifyClient">require</parameter>
>             supports optional|require or defaults to none -->
>     <!--</transportReceiver>-->
> 
>     <!-- ================================================= -->
>     <!-- Mail Transport Listener  -->
>     <!-- This is a sample configuration. It assumes a mail server running
> in localhost.
>          Listener pops  messages that comes to the email address
> red@localhost. Users
>          password is red. Listener connect to the server every 3000
> milliseconds.
>          Parameters with "transport." prefix is Axis2 specific. Others are
> all from Java Mail API. 
>          http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
>      -->
>     <!-- ================================================= -->
>     <!--<transportReceiver name="mailto"
> class="org.apache.axis2.transport.mail.SimpleMailListener">
>         <parameter name="mail.pop3.host">localhost</parameter>
>         <parameter name="mail.pop3.user">red</parameter>
>         <parameter name="mail.store.protocol">pop3</parameter>
>         <parameter name="transport.mail.pop3.password">red</parameter>
>         <parameter
> name="transport.mail.replyToAddress">red@localhost</parameter>
>         <parameter name="transport.listener.interval">3000</parameter>
>     </transportReceiver>-->
> 
> 	<!--Uncomment if you want to have TCP transport support-->
>     <!-- transportReceiver name="tcp"
>                        class="org.apache.axis2.transport.tcp.TCPServer">
>         <parameter name="port">6060</parameter -->
>         <!--If you want to give your own host address for EPR
> generation-->
>         <!--uncomment the following paramter , and set it as you
> required.-->
>         <!--<parameter name="hostname">tcp://myApp.com/ws</parameter>-->
>     <!-- /transportReceiver -->
> 
>     <!-- ================================================= -->
>     <!-- Transport Outs -->
>     <!-- ================================================= -->
> 
>     <transportSender name="tcp"
>                     
> class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
>     <transportSender name="local"
>                     
> class="org.apache.axis2.transport.local.LocalTransportSender"/>
>     <transportSender name="http"
>                     
> class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
>         <parameter name="PROTOCOL">HTTP/1.1</parameter>
>         <parameter name="Transfer-Encoding">chunked</parameter>
> 
>         <!-- If following is set to 'true', optional action part of the
> Content-Type will not be added to the SOAP 1.2 messages -->
>         <!--  <parameter name="OmitSOAP12Action">true</parameter>  -->
>     </transportSender>
> 
>     <transportSender name="https"
>                     
> class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
>         <parameter name="PROTOCOL">HTTP/1.1</parameter>
>         <parameter name="Transfer-Encoding">chunked</parameter>
>     </transportSender>
>     
>     <!-- Please enable this if you need the java transport -->
>     <!-- <transportSender name="java"
>                     
> class="org.apache.axis2.transport.java.JavaTransportSender"/> -->
> 
>     <!--<transportSender name="jms"-->
>                     
> <!--class="org.apache.axis2.transport.jms.JMSSender"/>-->
> 
>     <!-- ================================================= -->
>     <!-- Non-blocking http/s Transport Sender  -->
> 
>     <!-- the non-blocking http transport sender based on HttpCore + NIO
> extensions
>     <transportSender name="http" 
> class="org.apache.axis2.transport.nhttp.HttpCoreNIOSender">
>         <parameter name="non-blocking" locked="false">true</parameter>
>     </transportSender>-->
> 
>     <!-- the non-blocking https transport sender based on HttpCore + NIO
> SSL extensions
>     <transportSender name="https"
> class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLSender">
>         <parameter name="non-blocking" locked="false">true</parameter>
>         <parameter name="keystore" locked="false">
>             <KeyStore>
>                 <Location>identity.jks</Location>
>                 <Type>JKS</Type>
>                 <Password>password</Password>
>                 <KeyPassword>password</KeyPassword>
>             </KeyStore>
>         </parameter>
>         <parameter name="truststore" locked="false">
>             <TrustStore>
>                 <Location>trust.jks</Location>
>                 <Type>JKS</Type>
>                 <Password>password</Password>
>             </TrustStore>
>         </parameter>-->
>         <!--<parameter
> name="HostnameVerifier">DefaultAndLocalhost</parameter>
>             supports Strict|AllowAll|DefaultAndLocalhost or the default if
> none specified -->
>     <!--</transportSender>-->
> 
>     <!-- ================================================= -->
>     <!-- Mail Transport Sender  -->
>     <!--Only need to uncomment the sender. Configuration is achieved with
> every client.
>         At any instant mail host should be given. Sample configuration has
> been given.
>         http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
>    -->
>     <!-- ================================================= -->
>    <!--<transportSender name="mailto"
> class="org.apache.axis2.transport.mail.MailTransportSender">
>         <parameter name="mail.smtp.host">localhost</parameter>
>     </transportSender>-->
> 
>     <!-- ================================================= -->
>     <!-- Global Modules  -->
>     <!-- ================================================= -->
>     <!-- Comment this to disable Addressing -->
>     <module ref="addressing"/>
> 
>     <!--Configuring module , providing parameters for modules whether they
> refer or not-->
>     <!--<moduleConfig name="addressing">-->
>     <!--<parameter name="addressingPara">N/A</parameter>-->
>     <!--</moduleConfig>-->
> 
>     <!-- ================================================= -->
>     <!-- Clustering  -->
>     <!-- ================================================= -->
>     <!-- Configure and uncomment following for preparing Axis2 to a
> clustered environment -->
>     <!--
>     <cluster class="org.apache.axis2.cluster.tribes.TribesClusterManager">
>         <parameter name="param1">value1</parameter>
>         <parameter name="domain">apache.axis2.domain</parameter>
>         <parameter name="synchronizeAll">true</parameter>
>         <parameter name="maxRetries">10</parameter>
>     	<configurationManager
> class="org.apache.axis2.cluster.configuration.TribesConfigurationManager">
>     	    <listener
> class="org.apache.axis2.cluster.configuration.DefaultConfigurationManagerListener"/>
>     	</configurationManager>
>     	<contextManager
> class="org.apache.axis2.cluster.context.TribesContextManager">
>     	    <listener
> class="org.apache.axis2.cluster.context.DefaultContextManagerListener"/>
>     	</contextManager>
>     </cluster>
>     -->
> 
>     <!-- ================================================= -->
>     <!-- Phases  -->
>     <!-- ================================================= -->
>     <phaseOrder type="InFlow">
>         <!--  System predefined phases       -->
>         <phase name="Transport">
>             <handler name="RequestURIBasedDispatcher"
>                     
> class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
>                 <order phase="Transport"/>
>             </handler>
>             <handler name="SOAPActionBasedDispatcher"
>                     
> class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
>                 <order phase="Transport"/>
>             </handler>
>         </phase>
>         <phase name="Addressing">
>              <handler name="AddressingBasedDispatcher"
>                     
> class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
>                  <order phase="Addressing"/>
>             </handler>
>         </phase>
>         <phase name="Security"/>
>         <phase name="PreDispatch"/>
>         <phase name="Dispatch"
> class="org.apache.axis2.engine.DispatchPhase">
>             <handler name="RequestURIBasedDispatcher"
>                     
> class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
>             <handler name="SOAPActionBasedDispatcher"
>                     
> class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
>             <handler name="RequestURIOperationDispatcher"
>                     
> class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
>             <handler name="SOAPMessageBodyBasedDispatcher"
>                     
> class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
>             <handler name="HTTPLocationBasedDispatcher"
>                     
> class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
>             <handler name="GenericProviderDispatcher"
>                     
> class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>
>             <handler name="MustUnderstandValidationDispatcher"
>                     
> class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>
>         </phase>
>         <phase name="RMPhase"/>
>         <phase name="meshaPhase"/>  <!--  Yash -->
>         <!--  System predefined phases       -->
>         <!--   After Postdispatch phase module author or service author
> can add any phase he want      -->
>         <phase name="OperationInPhase">
>             <handler name="MustUnderstandChecker"
>                     
> class="org.apache.axis2.jaxws.dispatchers.MustUnderstandChecker">
>                 <order phase="OperationInPhase"/>
>             </handler>
>         </phase>
>         <phase name="soapmonitorPhase"/>
>     </phaseOrder>
>     <phaseOrder type="OutFlow">
>         <!--      user can add his own phases to this area  -->
>         <phase name="soapmonitorPhase"/>
>         <phase name="OperationOutPhase"/>
>         <!--system predefined phase-->
>         <!--these phase will run irrespective of the service-->
>     	<phase name="meshaPhase"/>  <!-- yash -->
>         <phase name="RMPhase"/>
>         <phase name="PolicyDetermination"/>
>         <phase name="MessageOut"/>
>         <phase name="Security"/>
>     </phaseOrder>
>     <phaseOrder type="InFaultFlow">
>         <phase name="Addressing">
>              <handler name="AddressingBasedDispatcher"
>                     
> class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
>                  <order phase="Addressing"/>
>             </handler>
>         </phase>
>         <phase name="Security"/>
>         <phase name="PreDispatch"/>
>         <phase name="Dispatch"
> class="org.apache.axis2.engine.DispatchPhase">
>             <handler name="RequestURIBasedDispatcher"
>                     
> class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
>             <handler name="SOAPActionBasedDispatcher"
>                     
> class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
>             <handler name="RequestURIOperationDispatcher"
>                     
> class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
>             <handler name="SOAPMessageBodyBasedDispatcher"
>                     
> class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
>             <handler name="HTTPLocationBasedDispatcher"
>                     
> class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
>             <handler name="GenericProviderDispatcher"
>                     
> class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>
>             <handler name="MustUnderstandValidationDispatcher"
>                     
> class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>
>         </phase>
>         <phase name="RMPhase"/>
>         <phase name="meshaPhase"/>  <!--  Yash -->
>         <!--      user can add his own phases to this area  -->
>         <phase name="OperationInFaultPhase"/>
>         <phase name="soapmonitorPhase"/>
>     </phaseOrder>
>     <phaseOrder type="OutFaultFlow">
>         <!--      user can add his own phases to this area  -->
>         <phase name="soapmonitorPhase"/>
>         <phase name="OperationOutFaultPhase"/>
>         <phase name="meshaPhase"/>  <!--  Yash -->
>         <phase name="RMPhase"/>
>         <phase name="PolicyDetermination"/>
>         <phase name="MessageOut"/>
>         <phase name="Security"/>
>     </phaseOrder>
> </axisconfig>
> 
> I am getting the same error. Please suggest me how can i resolve this
> issue.
> 
> Thanks,
> Swapna Soni.
> 
> Amila Suriarachchi wrote:
>> 
>> On Wed, Aug 19, 2009 at 9:44 PM, Senthil Sona <sw...@cisco.com> wrote:
>> 
>>>
>>> Hi Rampart team,
>>>
>>>    In a client class we have our custom module and rampart engaged.
>>> While
>>> sending the request, we are setting some header tags in outflow handler
>>> of
>>> custom module. while request going out, first custom module's outflow
>>> handler is executing then rampart module's outflow handler is executing.
>>> When request goes til webservice, (webservice is also having rampart and
>>> custom module engage), then webservice custom module's inflow handler is
>>> executing. We have a code to extract custom header tags in inflow
>>> handler.
>>> But the custom header tags we have set in outflow handler is not coming
>>> till
>>> inflow handler. And in inflow handler the envelope is in encrypt form.
>>> Could
>>> you please tell me how to get these header values in inflow handler.
>> 
>> 
>> If you look at the axis2.xml phases you can see the Out flow handler
>> order
>> is the reverse of inflow handler order.
>> so when you add handlers you need to think like that. If custom out
>> handler
>> is before security phase in out flow then
>> custom in handler should be after security phase in inflow.
>> 
>> thanks,
>> Amila.
>> 
>>>
>>>
>>>    Please reply as soon as possible. This is very urgent.
>>>
>>> Thanks,
>>> Swapna Soni.
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Unable-to-get-Header-tags-in-custom-module%27s-inflow-handler-tp25047272p25047272.html
>>> Sent from the Axis - Dev mailing list archive at Nabble.com.
>>>
>>>
>> 
>> 
>> -- 
>> Amila Suriarachchi
>> WSO2 Inc.
>> blog: http://amilachinthaka.blogspot.com/
>> 
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Unable-to-get-Header-tags-in-custom-module%27s-inflow-handler-tp25047272p25168595.html
Sent from the Axis - Dev mailing list archive at Nabble.com.


Re: Unable to get Header tags in custom module's inflow handler

Posted by soni swapna <sw...@cisco.com>.
Hi Amila,

Thanks for your reply. We are placing module phase in the same order as u
said. Below is the code of our axis2.xml file.

<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements. See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership. The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License. You may obtain a copy of the License at
  ~
  ~ http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied. See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  -->

<axisconfig name="AxisJava2.0">
    <!-- ================================================= -->
    <!-- Parameters -->
    <!-- ================================================= -->
    <parameter name="hotdeployment">true</parameter>
    <parameter name="hotupdate">false</parameter>
    <parameter name="enableMTOM">false</parameter>
    <parameter name="enableSwA">false</parameter>
    
    <!-- Including ASF-RM related parameter - yash -->
	<parameter name="ASFRMStorageManager" locked="false">inmemory</parameter>

    <!--Uncomment if you want to enable file caching for attachments -->
    <!--parameter name="cacheAttachments">true</parameter>
    <parameter name="attachmentDIR"></parameter>
    <parameter name="sizeThreshold">4000</parameter-->
    
    <!--Uncomment if you want to plugin your own attachments lifecycle
implementation -->
    <!--<attachmentsLifecycleManager
class="org.apache.axiom.attachments.lifecycle.impl.LifecycleManagerImpl"/>-->


    <!--Uncomment if you want to enable the reduction of the in-memory cache
of WSDL definitions -->
    <!--In some server environments, the available memory heap is limited
and can fill up under load -->
    <!--Since in-memory copies of WSDL definitions can be large, some steps
can be taken-->
    <!--to reduce the memory needed for the cached WSDL definitions. -->
    <!--parameter name="reduceWSDLMemoryCache">true</parameter-->
                                                       
    <!--This will give out the timout of the configuration contexts, in
milliseconds-->
    <parameter name="ConfigContextTimeoutInterval">30000</parameter>

    <!--During a fault, stack trace can be sent with the fault message. The
following flag will control -->
    <!--that behavior.-->
    <parameter name="sendStacktraceDetailsWithFaults">false</parameter>

    <!--If there aren't any information available to find out the fault
reason, we set the message of the exception-->
    <!--as the faultreason/Reason. But when a fault is thrown from a service
or some where, it will be -->
    <!--wrapped by different levels. Due to this the initial exception
message can be lost. If this flag-->
    <!--is set, then Axis2 tries to get the first exception and set its
message as the faultreason/Reason.-->
    <parameter name="DrillDownToRootCauseForFaultReason">false</parameter>

    <parameter name="userName">admin</parameter>
    <parameter name="password">axis2</parameter>

    <!--To override repository/services you need to uncomment following
parameter and value SHOULD be absolute file path.-->
    <!--ServicesDirectory only works on the following cases-->
    <!---File based configurator and in that case the value should be a file
URL (http:// not allowed)-->
    <!---When creating URL Based configurator with URL file:// -->
    <!--- War based configurator with expanded case , -->

    <!--All the other scenarios it will be ignored.-->
    <!--<parameter name="ServicesDirectory">service</parameter>-->
    <!--To override repository/modules you need to uncomment following
parameter and value SHOULD be absolute file path-->
    <!--<parameter name="ModulesDirectory">modules</parameter>-->



    <!--Following params will set the proper context paths for invocations.
All the endpoints will have a commons context-->
    <!--root which can configured using the following contextRoot
parameter-->
    <!--<parameter name="contextRoot">axis2</parameter>-->

    <!--Our HTTP endpoints can handle both REST and SOAP. Following
parameters can be used to distinguiush those endpoints-->
    <!--In case of a servlet, if you change this you have to manually change
the settings of your servlet container to map this -->
    <!--context path to proper Axis2 servlets-->
    <!--<parameter name="servicePath">services</parameter>-->
    <!--<parameter name="restPath">rest</parameter>-->

    <!-- Following parameter will completely disable REST handling in
Axis2-->
    <parameter name="disableREST" locked="false">false</parameter>
    
    <!-- Following parameter will suppress generation of SOAP 1.2 bindings
in auto-generated WSDL files -->
    <parameter name="disableSOAP12" locked="true">false</parameter>

    <!--POJO deployer , this will alow users to drop .class file and make
that into a service-->
    <deployer extension=".class" directory="pojo"
class="org.apache.axis2.deployment.POJODeployer"/>
    <deployer extension=".jar" directory="servicejars"
class="org.apache.axis2.jaxws.framework.JAXWSDeployer"/>

    <!--<deployer extension=".jsa" directory="rmiservices"
class="org.apache.axis2.rmi.deploy.RMIServiceDeployer"/>-->
    

    <!-- Following parameter will set the host name for the epr-->
    <!--<parameter name="hostname" locked="true">myhost.com</parameter>-->

    <!-- If you have a front end host which exposes this webservice using a
different public URL  -->
    <!-- use this parameter to override autodetected url -->
    <!--<parameter
name="httpFrontendHostUrl">https://someotherhost/context</parameter>-->


    <!--    The way of adding listener to the system-->
    <!--    <listener class="org.apache.axis2.ObserverIMPL">-->
    <!--        <parameter
name="RSS_URL">http://127.0.0.1/rss</parameter>-->
    <!--    </listener>-->
    
    <threadContextMigrators>
        <threadContextMigrator listId="JAXWS-ThreadContextMigrator-List"
class="org.apache.axis2.jaxws.addressing.migrator.EndpointContextMapMigrator"/>
    </threadContextMigrators>

    <!-- ================================================= -->
    <!-- Message Receivers -->
    <!-- ================================================= -->
    <!--This is the deafult MessageReceiver for the system , if you want to
have MessageReceivers for -->
    <!--all the other MEP implement it and add the correct entry to here ,
so that you can refer from-->
    <!--any operation -->
    <!--Note : You can ovrride this for a particular service by adding the
same element with your requirement-->
     <messageReceivers>
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
                        
class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
                        
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
        <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only"
                        
class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
        <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out"
                        
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
    </messageReceivers>

    <!-- ================================================= -->
    <!-- Message Formatter -->
    <!-- ================================================= -->
    <!--Following content type to message formatter mapping can be used to
implement support for different message -->
    <!--format  serialization in Axis2. These message formats are expected
to be resolved based on the content type. -->
    <messageFormatters>
        <messageFormatter contentType="application/x-www-form-urlencoded"
                        
class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
        <messageFormatter contentType="multipart/form-data"
                        
class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
        <messageFormatter contentType="application/xml"
                        
class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
        <messageFormatter contentType="text/xml"
                        
class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
        <messageFormatter contentType="application/soap+xml"
                        
class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
    </messageFormatters>

    <!-- ================================================= -->
    <!-- Message Builders -->
    <!-- ================================================= -->
    <!--Following content type to builder mapping can be used to implement
support for different message -->
    <!--formats in Axis2. These message formats are expected to be resolved
based on the content type. -->
    <messageBuilders>
        <messageBuilder contentType="application/xml"
                        
class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
        <messageBuilder contentType="application/xml"
                        
class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
        <messageBuilder contentType="application/x-www-form-urlencoded"
                        
class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
        <messageBuilder contentType="multipart/form-data"
                        
class="org.apache.axis2.builder.MultipartFormDataBuilder"/>
    </messageBuilders>

    <!-- ================================================= -->
    <!-- Transport Ins -->
    <!-- ================================================= -->
    <transportReceiver name="http"
                      
class="org.apache.axis2.transport.http.SimpleHTTPServer">
        <parameter name="port">8090</parameter>
        <!-- Here is the complete list of supported parameters (see example
settings further below):
            port: the port to listen on (default 6060)
            hostname:  if non-null, url prefix used in reply-to endpoint
references                                 (default null)
            originServer:  value of http Server header in outgoing messages                                        
(default "Simple-Server/1.1")
            requestTimeout:  value in millis of time that requests can wait
for data                                (default 20000)
            requestTcpNoDelay:  true to maximize performance and minimize
latency                                   (default true)
                                false to minimize bandwidth consumption by
combining segments
            requestCoreThreadPoolSize:  number of threads available for
request processing (unless queue fills up)  (default 25)
            requestMaxThreadPoolSize:  number of threads available for
request processing if queue fills up         (default 150)
                                       note that default queue never fills
up:  see HttpFactory
            threadKeepAliveTime:  time to keep threads in excess of core
size alive while inactive                  (default 180)
                                  note that no such threads can exist with
default unbounded request queue
            threadKeepAliveTimeUnit:  TimeUnit of value in
threadKeepAliveTime (default SECONDS)                    (default SECONDS)
        -->
        <!-- <parameter name="hostname">http://www.myApp.com/ws</parameter>
-->
        <!-- <parameter name="originServer">My-Server/1.1</parameter>          
-->
        <!-- <parameter name="requestTimeout">10000</parameter>                  
-->
        <!-- <parameter name="requestTcpNoDelay">false</parameter>                  
-->
        <!-- <parameter name="requestCoreThreadPoolSize">50</parameter>                     
-->
        <!-- <parameter name="requestMaxThreadPoolSize">100</parameter>                    
-->
        <!-- <parameter name="threadKeepAliveTime">240000</parameter>                 
-->
        <!-- <parameter
name="threadKeepAliveTimeUnit">MILLISECONDS</parameter>            -->
    </transportReceiver>

    <!--Uncomment this and configure as appropriate for JMS transport
support, after setting up your JMS environment (e.g. ActiveMQ)
    <transportReceiver name="jms"
class="org.apache.axis2.transport.jms.JMSListener">
        <parameter name="myTopicConnectionFactory">
        	<parameter
name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
        	<parameter
name="java.naming.provider.url">tcp://localhost:61616</parameter>
        	<parameter
name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
        </parameter>

        <parameter name="myQueueConnectionFactory">
        	<parameter
name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
        	<parameter
name="java.naming.provider.url">tcp://localhost:61616</parameter>
        	<parameter
name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
        </parameter>

        <parameter name="default">
        	<parameter
name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
        	<parameter
name="java.naming.provider.url">tcp://localhost:61616</parameter>
        	<parameter
name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
        </parameter>
    </transportReceiver>-->

    <!-- ================================================= -->
    <!-- Non-blocking http/s Transport Listener  -->

    <!-- the non blocking http transport based on HttpCore + NIO extensions
    <transportReceiver name="http"
class="org.apache.axis2.transport.nhttp.HttpCoreNIOListener">
    	<parameter name="port" locked="false">9000</parameter>
    	<parameter name="non-blocking" locked="false">true</parameter>
    </transportReceiver>-->

    <!-- the non blocking https transport based on HttpCore + SSL-NIO
extensions
    <transportReceiver name="https"
class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLListener">
    	<parameter name="port" locked="false">9002</parameter>
    	<parameter name="non-blocking" locked="false">true</parameter>
        <parameter name="keystore" locked="false">
            <KeyStore>
                <Location>identity.jks</Location>
                <Type>JKS</Type>
                <Password>password</Password>
                <KeyPassword>password</KeyPassword>
            </KeyStore>
        </parameter>
        <parameter name="truststore" locked="false">
            <TrustStore>
                <Location>trust.jks</Location>
                <Type>JKS</Type>
                <Password>password</Password>
            </TrustStore>
        </parameter>-->
        <!--<parameter name="SSLVerifyClient">require</parameter>
            supports optional|require or defaults to none -->
    <!--</transportReceiver>-->

    <!-- ================================================= -->
    <!-- Mail Transport Listener  -->
    <!-- This is a sample configuration. It assumes a mail server running in
localhost.
         Listener pops  messages that comes to the email address
red@localhost. Users
         password is red. Listener connect to the server every 3000
milliseconds.
         Parameters with "transport." prefix is Axis2 specific. Others are
all from Java Mail API. 
         http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
     -->
    <!-- ================================================= -->
    <!--<transportReceiver name="mailto"
class="org.apache.axis2.transport.mail.SimpleMailListener">
        <parameter name="mail.pop3.host">localhost</parameter>
        <parameter name="mail.pop3.user">red</parameter>
        <parameter name="mail.store.protocol">pop3</parameter>
        <parameter name="transport.mail.pop3.password">red</parameter>
        <parameter
name="transport.mail.replyToAddress">red@localhost</parameter>
        <parameter name="transport.listener.interval">3000</parameter>
    </transportReceiver>-->

	<!--Uncomment if you want to have TCP transport support-->
    <!-- transportReceiver name="tcp"
                       class="org.apache.axis2.transport.tcp.TCPServer">
        <parameter name="port">6060</parameter -->
        <!--If you want to give your own host address for EPR generation-->
        <!--uncomment the following paramter , and set it as you
required.-->
        <!--<parameter name="hostname">tcp://myApp.com/ws</parameter>-->
    <!-- /transportReceiver -->

    <!-- ================================================= -->
    <!-- Transport Outs -->
    <!-- ================================================= -->

    <transportSender name="tcp"
                    
class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
    <transportSender name="local"
                    
class="org.apache.axis2.transport.local.LocalTransportSender"/>
    <transportSender name="http"
                    
class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
        <parameter name="PROTOCOL">HTTP/1.1</parameter>
        <parameter name="Transfer-Encoding">chunked</parameter>

        <!-- If following is set to 'true', optional action part of the
Content-Type will not be added to the SOAP 1.2 messages -->
        <!--  <parameter name="OmitSOAP12Action">true</parameter>  -->
    </transportSender>

    <transportSender name="https"
                    
class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
        <parameter name="PROTOCOL">HTTP/1.1</parameter>
        <parameter name="Transfer-Encoding">chunked</parameter>
    </transportSender>
    
    <!-- Please enable this if you need the java transport -->
    <!-- <transportSender name="java"
                    
class="org.apache.axis2.transport.java.JavaTransportSender"/> -->

    <!--<transportSender name="jms"-->
                    
<!--class="org.apache.axis2.transport.jms.JMSSender"/>-->

    <!-- ================================================= -->
    <!-- Non-blocking http/s Transport Sender  -->

    <!-- the non-blocking http transport sender based on HttpCore + NIO
extensions
    <transportSender name="http" 
class="org.apache.axis2.transport.nhttp.HttpCoreNIOSender">
        <parameter name="non-blocking" locked="false">true</parameter>
    </transportSender>-->

    <!-- the non-blocking https transport sender based on HttpCore + NIO SSL
extensions
    <transportSender name="https"
class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLSender">
        <parameter name="non-blocking" locked="false">true</parameter>
        <parameter name="keystore" locked="false">
            <KeyStore>
                <Location>identity.jks</Location>
                <Type>JKS</Type>
                <Password>password</Password>
                <KeyPassword>password</KeyPassword>
            </KeyStore>
        </parameter>
        <parameter name="truststore" locked="false">
            <TrustStore>
                <Location>trust.jks</Location>
                <Type>JKS</Type>
                <Password>password</Password>
            </TrustStore>
        </parameter>-->
        <!--<parameter
name="HostnameVerifier">DefaultAndLocalhost</parameter>
            supports Strict|AllowAll|DefaultAndLocalhost or the default if
none specified -->
    <!--</transportSender>-->

    <!-- ================================================= -->
    <!-- Mail Transport Sender  -->
    <!--Only need to uncomment the sender. Configuration is achieved with
every client.
        At any instant mail host should be given. Sample configuration has
been given.
        http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
   -->
    <!-- ================================================= -->
   <!--<transportSender name="mailto"
class="org.apache.axis2.transport.mail.MailTransportSender">
        <parameter name="mail.smtp.host">localhost</parameter>
    </transportSender>-->

    <!-- ================================================= -->
    <!-- Global Modules  -->
    <!-- ================================================= -->
    <!-- Comment this to disable Addressing -->
    <module ref="addressing"/>

    <!--Configuring module , providing parameters for modules whether they
refer or not-->
    <!--<moduleConfig name="addressing">-->
    <!--<parameter name="addressingPara">N/A</parameter>-->
    <!--</moduleConfig>-->

    <!-- ================================================= -->
    <!-- Clustering  -->
    <!-- ================================================= -->
    <!-- Configure and uncomment following for preparing Axis2 to a
clustered environment -->
    <!--
    <cluster class="org.apache.axis2.cluster.tribes.TribesClusterManager">
        <parameter name="param1">value1</parameter>
        <parameter name="domain">apache.axis2.domain</parameter>
        <parameter name="synchronizeAll">true</parameter>
        <parameter name="maxRetries">10</parameter>
    	<configurationManager
class="org.apache.axis2.cluster.configuration.TribesConfigurationManager">
    	    <listener
class="org.apache.axis2.cluster.configuration.DefaultConfigurationManagerListener"/>
    	</configurationManager>
    	<contextManager
class="org.apache.axis2.cluster.context.TribesContextManager">
    	    <listener
class="org.apache.axis2.cluster.context.DefaultContextManagerListener"/>
    	</contextManager>
    </cluster>
    -->

    <!-- ================================================= -->
    <!-- Phases  -->
    <!-- ================================================= -->
    <phaseOrder type="InFlow">
        <!--  System predefined phases       -->
        <phase name="Transport">
            <handler name="RequestURIBasedDispatcher"
                    
class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
                <order phase="Transport"/>
            </handler>
            <handler name="SOAPActionBasedDispatcher"
                    
class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
                <order phase="Transport"/>
            </handler>
        </phase>
        <phase name="Addressing">
             <handler name="AddressingBasedDispatcher"
                    
class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
                 <order phase="Addressing"/>
            </handler>
        </phase>
        <phase name="Security"/>
        <phase name="PreDispatch"/>
        <phase name="Dispatch"
class="org.apache.axis2.engine.DispatchPhase">
            <handler name="RequestURIBasedDispatcher"
                    
class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
            <handler name="SOAPActionBasedDispatcher"
                    
class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
            <handler name="RequestURIOperationDispatcher"
                    
class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
            <handler name="SOAPMessageBodyBasedDispatcher"
                    
class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
            <handler name="HTTPLocationBasedDispatcher"
                    
class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
            <handler name="GenericProviderDispatcher"
                    
class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>
            <handler name="MustUnderstandValidationDispatcher"
                    
class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>
        </phase>
        <phase name="RMPhase"/>
        <phase name="meshaPhase"/>  <!--  Yash -->
        <!--  System predefined phases       -->
        <!--   After Postdispatch phase module author or service author can
add any phase he want      -->
        <phase name="OperationInPhase">
            <handler name="MustUnderstandChecker"
                    
class="org.apache.axis2.jaxws.dispatchers.MustUnderstandChecker">
                <order phase="OperationInPhase"/>
            </handler>
        </phase>
        <phase name="soapmonitorPhase"/>
    </phaseOrder>
    <phaseOrder type="OutFlow">
        <!--      user can add his own phases to this area  -->
        <phase name="soapmonitorPhase"/>
        <phase name="OperationOutPhase"/>
        <!--system predefined phase-->
        <!--these phase will run irrespective of the service-->
    	<phase name="meshaPhase"/>  <!-- yash -->
        <phase name="RMPhase"/>
        <phase name="PolicyDetermination"/>
        <phase name="MessageOut"/>
        <phase name="Security"/>
    </phaseOrder>
    <phaseOrder type="InFaultFlow">
        <phase name="Addressing">
             <handler name="AddressingBasedDispatcher"
                    
class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
                 <order phase="Addressing"/>
            </handler>
        </phase>
        <phase name="Security"/>
        <phase name="PreDispatch"/>
        <phase name="Dispatch"
class="org.apache.axis2.engine.DispatchPhase">
            <handler name="RequestURIBasedDispatcher"
                    
class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
            <handler name="SOAPActionBasedDispatcher"
                    
class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
            <handler name="RequestURIOperationDispatcher"
                    
class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
            <handler name="SOAPMessageBodyBasedDispatcher"
                    
class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
            <handler name="HTTPLocationBasedDispatcher"
                    
class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
            <handler name="GenericProviderDispatcher"
                    
class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>
            <handler name="MustUnderstandValidationDispatcher"
                    
class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>
        </phase>
        <phase name="RMPhase"/>
        <phase name="meshaPhase"/>  <!--  Yash -->
        <!--      user can add his own phases to this area  -->
        <phase name="OperationInFaultPhase"/>
        <phase name="soapmonitorPhase"/>
    </phaseOrder>
    <phaseOrder type="OutFaultFlow">
        <!--      user can add his own phases to this area  -->
        <phase name="soapmonitorPhase"/>
        <phase name="OperationOutFaultPhase"/>
        <phase name="meshaPhase"/>  <!--  Yash -->
        <phase name="RMPhase"/>
        <phase name="PolicyDetermination"/>
        <phase name="MessageOut"/>
        <phase name="Security"/>
    </phaseOrder>
</axisconfig>

I am getting the same error. Please suggest me how can i resolve this issue.

Thanks,
Swapna Soni.

Amila Suriarachchi wrote:
> 
> On Wed, Aug 19, 2009 at 9:44 PM, Senthil Sona <sw...@cisco.com> wrote:
> 
>>
>> Hi Rampart team,
>>
>>    In a client class we have our custom module and rampart engaged. While
>> sending the request, we are setting some header tags in outflow handler
>> of
>> custom module. while request going out, first custom module's outflow
>> handler is executing then rampart module's outflow handler is executing.
>> When request goes til webservice, (webservice is also having rampart and
>> custom module engage), then webservice custom module's inflow handler is
>> executing. We have a code to extract custom header tags in inflow
>> handler.
>> But the custom header tags we have set in outflow handler is not coming
>> till
>> inflow handler. And in inflow handler the envelope is in encrypt form.
>> Could
>> you please tell me how to get these header values in inflow handler.
> 
> 
> If you look at the axis2.xml phases you can see the Out flow handler order
> is the reverse of inflow handler order.
> so when you add handlers you need to think like that. If custom out
> handler
> is before security phase in out flow then
> custom in handler should be after security phase in inflow.
> 
> thanks,
> Amila.
> 
>>
>>
>>    Please reply as soon as possible. This is very urgent.
>>
>> Thanks,
>> Swapna Soni.
>> --
>> View this message in context:
>> http://www.nabble.com/Unable-to-get-Header-tags-in-custom-module%27s-inflow-handler-tp25047272p25047272.html
>> Sent from the Axis - Dev mailing list archive at Nabble.com.
>>
>>
> 
> 
> -- 
> Amila Suriarachchi
> WSO2 Inc.
> blog: http://amilachinthaka.blogspot.com/
> 
> 

-- 
View this message in context: http://www.nabble.com/Unable-to-get-Header-tags-in-custom-module%27s-inflow-handler-tp25047272p25166477.html
Sent from the Axis - Dev mailing list archive at Nabble.com.


Re: Unable to get Header tags in custom module's inflow handler

Posted by Amila Suriarachchi <am...@gmail.com>.
On Wed, Aug 19, 2009 at 9:44 PM, Senthil Sona <sw...@cisco.com> wrote:

>
> Hi Rampart team,
>
>    In a client class we have our custom module and rampart engaged. While
> sending the request, we are setting some header tags in outflow handler of
> custom module. while request going out, first custom module's outflow
> handler is executing then rampart module's outflow handler is executing.
> When request goes til webservice, (webservice is also having rampart and
> custom module engage), then webservice custom module's inflow handler is
> executing. We have a code to extract custom header tags in inflow handler.
> But the custom header tags we have set in outflow handler is not coming
> till
> inflow handler. And in inflow handler the envelope is in encrypt form.
> Could
> you please tell me how to get these header values in inflow handler.


If you look at the axis2.xml phases you can see the Out flow handler order
is the reverse of inflow handler order.
so when you add handlers you need to think like that. If custom out handler
is before security phase in out flow then
custom in handler should be after security phase in inflow.

thanks,
Amila.

>
>
>    Please reply as soon as possible. This is very urgent.
>
> Thanks,
> Swapna Soni.
> --
> View this message in context:
> http://www.nabble.com/Unable-to-get-Header-tags-in-custom-module%27s-inflow-handler-tp25047272p25047272.html
> Sent from the Axis - Dev mailing list archive at Nabble.com.
>
>


-- 
Amila Suriarachchi
WSO2 Inc.
blog: http://amilachinthaka.blogspot.com/

RE: Unable to get Header tags in custom module's inflow handler

Posted by Martin Gainty <mg...@hotmail.com>.
In Axis2, the user cannot set inflow and outflow parameters.

 Therefore, we need to map the Axis2 specific inflow and outflow
 parameters to WSS4J 
params (such as action)

action parameters for inflowSecurity are described at
http://ws.apache.org/axis2/modules/rampart/1_2/sec-conf/in.action.xsd

action parameters for outflowSecurity are described at
http://ws.apache.org/axis2/modules/rampart/1_2/sec-conf/out-action.xsd

complete examples for inflowSecurity and outflowSecurity are located at

Example 1: An outflow configuration to add a timestamp, sign and encrypt the message once

policy:      http://ws.apache.org/rampart/samples/policy/sample03.xml
request:  http://ws.apache.org/rampart/samples/msgs/req01.xml
response: http://ws.apache.org/rampart/samples/msgs/res01.xml

Example 2: An outflow configuration to sign the message twice and add a timestamp

policy:       http://ws.apache.org/rampart/samples/policy/sample02.xml
request:    http://ws.apache.org/rampart/samples/msgs/req02.xml
response: http://ws.apache.org/rampart/samples/msgs/res02.xml

http://ws.apache.org/rampart/samples.html
HTH
Martin Gainty 
______________________________________________ 
Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité
 
Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich dem Austausch von Informationen und entfaltet keine rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen.
Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le destinataire prévu, nous te demandons avec bonté que pour satisfaire informez l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci est interdite. Ce message sert à l'information seulement et n'aura pas n'importe quel effet légalement obligatoire. Étant donné que les email peuvent facilement être sujets à la manipulation, nous ne pouvons accepter aucune responsabilité pour le contenu fourni.




> Date: Wed, 26 Aug 2009 07:45:08 -0700
> From: swsoni@cisco.com
> To: axis-dev@ws.apache.org
> Subject: Re: Unable to get Header tags in custom module's inflow handler
> 
> 
> Hi Axis/Rampart Team,
> 
>       Could you please provide us any clue why i am facing this issue. Its
> very urgent. Please help.
> 
> Thanks,
> Swapna Soni.
> 
> soni swapna wrote:
> > 
> > Hi Rampart team,
> > 
> >     In a client class we have our custom module and rampart engaged. While
> > sending the request, we are setting some header tags in outflow handler of
> > custom module. while request going out, first custom module's outflow
> > handler is executing then rampart module's outflow handler is executing.
> > When request goes til webservice, (webservice is also having rampart and
> > custom module engage), then webservice custom module's inflow handler is
> > executing. We have a code to extract custom header tags in inflow handler.
> > But the custom header tags we have set in outflow handler is not coming
> > till inflow handler. And in inflow handler the envelope is in encrypt
> > form. Could you please tell me how to get these header values in inflow
> > handler. 
> > 
> >     Please reply as soon as possible. This is very urgent.
> > 
> > Thanks,
> > Swapna Soni.
> > 
> 
> -- 
> View this message in context: http://www.nabble.com/Unable-to-get-Header-tags-in-custom-module%27s-inflow-handler-tp25047272p25151399.html
> Sent from the Axis - Dev mailing list archive at Nabble.com.
> 

_________________________________________________________________
Windows Live: Keep your friends up to date with what you do online.
http://windowslive.com/Campaign/SocialNetworking?ocid=PID23285::T:WLMTAGL:ON:WL:en-US:SI_SB_online:082009

Re: Unable to get Header tags in custom module's inflow handler

Posted by prabath <pr...@wso2.com>.
Hi;

It seems like your custom handler being placed before rampart handlers 
in the inflow - place it after.

Thanks & regards.
-Prabath
http://RampartFAQ.com

soni swapna wrote:
> Hi Axis/Rampart Team,
>
>       Could you please provide us any clue why i am facing this issue. Its
> very urgent. Please help.
>
> Thanks,
> Swapna Soni.
>
> soni swapna wrote:
>   
>> Hi Rampart team,
>>
>>     In a client class we have our custom module and rampart engaged. While
>> sending the request, we are setting some header tags in outflow handler of
>> custom module. while request going out, first custom module's outflow
>> handler is executing then rampart module's outflow handler is executing.
>> When request goes til webservice, (webservice is also having rampart and
>> custom module engage), then webservice custom module's inflow handler is
>> executing. We have a code to extract custom header tags in inflow handler.
>> But the custom header tags we have set in outflow handler is not coming
>> till inflow handler. And in inflow handler the envelope is in encrypt
>> form. Could you please tell me how to get these header values in inflow
>> handler. 
>>
>>     Please reply as soon as possible. This is very urgent.
>>
>> Thanks,
>> Swapna Soni.
>>
>>     
>
>   


Re: Unable to get Header tags in custom module's inflow handler

Posted by soni swapna <sw...@cisco.com>.
Hi Axis/Rampart Team,

      Could you please provide us any clue why i am facing this issue. Its
very urgent. Please help.

Thanks,
Swapna Soni.

soni swapna wrote:
> 
> Hi Rampart team,
> 
>     In a client class we have our custom module and rampart engaged. While
> sending the request, we are setting some header tags in outflow handler of
> custom module. while request going out, first custom module's outflow
> handler is executing then rampart module's outflow handler is executing.
> When request goes til webservice, (webservice is also having rampart and
> custom module engage), then webservice custom module's inflow handler is
> executing. We have a code to extract custom header tags in inflow handler.
> But the custom header tags we have set in outflow handler is not coming
> till inflow handler. And in inflow handler the envelope is in encrypt
> form. Could you please tell me how to get these header values in inflow
> handler. 
> 
>     Please reply as soon as possible. This is very urgent.
> 
> Thanks,
> Swapna Soni.
> 

-- 
View this message in context: http://www.nabble.com/Unable-to-get-Header-tags-in-custom-module%27s-inflow-handler-tp25047272p25151399.html
Sent from the Axis - Dev mailing list archive at Nabble.com.