Hi Nandana,
Thanks a lot for the reply. Now I am getting following error:
org.apache.axis2.deployment.DeploymentException: The "Dispatch" phase is not
found on the global "InFlow" phase of the axis2.xml file. Make sure the
phase is within the axis2.xml file.
at
org.apache.axis2.deployment.DeploymentEngine.loadRepository(DeploymentEngine.java:158)
at
org.apache.axis2.deployment.FileSystemConfigurator.getAxisConfiguration(FileSystemConfigurator.java:133)
at
org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:68)
at
org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromFileSystem(ConfigurationContextFactory.java:184)....
My client code is:
try {
ctx =
ConfigurationContextFactory.createConfigurationContextFromFileSystem("D:/Codes/weblims3/exploded/WEB-INF",
"D:/Codes/weblims3/axis2.xml");
} catch (AxisFault axisFault) {
axisFault.printStackTrace();
}
The error is happening in the previous line. What does it meant by
"Repository Path"? Please find attached axis2.xml.
Chinmoy
On Thu, Jul 16, 2009 at 9:27 AM, Nandana Mihindukulasooriya <
[email protected]> wrote:
> Hi Chinmoy,
> As it seems, you don't have the "OutflowSecurity" parameter defined
> in the client side. So basically you need to have a client side axis2 with
> that parameter and then create a ConfigurationContext out of it. Rampart
> basic sample 01 shows how to do this [1],[2]. But you won't be able to pass
> username/password through options when you use parameter based
> configuration. Is there a possibility for you to use policy based
> configuration. If so, please look at following tutorial [2].
>
> regards,
> Nandana
>
> [1] -
> https://svn.apache.org/repos/asf/webservices/rampart/trunk/java/modules/rampart-samples/basic/sample01/client.axis2.xml
> [2] -
> https://svn.apache.org/repos/asf/webservices/rampart/trunk/java/modules/rampart-samples/basic/sample01/src/org/apache/rampart/samples/sample01/Client.java
> [3] - https://www.wso2.org/library/3190
>
>
> On Wed, Jul 15, 2009 at 5:45 PM, Chinmoy Chakraborty <[email protected]>wrote:
>
>> Hi,
>>
>> I am getting following error while trying to invoke a WS-Security enabled
>> client request:
>>
>> org.apache.axis2.AxisFault: WSDoAllReceiver: Incoming message does not
>> contain required Security header
>> at
>> org.apache.rampart.handler.WSDoAllReceiver.processBasic(WSDoAllReceiver.java:221)
>> at
>> org.apache.rampart.handler.WSDoAllReceiver.processMessage(WSDoAllReceiver.java:86)
>> at
>> org.apache.rampart.handler.WSDoAllHandler.invoke(WSDoAllHandler.java:72)
>> at org.apache.axis2.engine.Phase.invoke(Phase.java:317)
>> at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:264)
>> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:163)
>>
>> I am missing something I know but not sure what. Following is my client
>> code:
>>
>> ServiceClient client = new ServiceClient();
>> Options options = new Options();
>> options.setAction("invoke");
>> options.setUserName("system");
>> options.setPassword("manager");
>> options.setTo(new EndpointReference(wsServerUrl + "services/ABS"));
>> client.setOptions(options);
>> client.engageModule("rampart");
>> OMElement response = client.sendReceive(getPayload(args));
>>
>> Following is my services.xml:
>>
>> <service name="ABS" targetNamespace="http://www.abc.com/webservice">
>> <description>Service description for ABS</description>
>> <schema
>> schemaNamespace="http://www.abc.com/webservice"/<http://www.abc.com/webservice%22/>
>> >
>> <parameter name="ServiceClass">ABS</parameter>
>> <parameter name = "disasbleREST">true</parameter>
>> <operation name="invoke">
>> <messageReceiver
>> class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
>> </operation>
>> <module ref="soapmonitor"/>
>> <module ref="rampart" />
>> <parameter name = "InflowSecurity"><action>
>> <items>UsernameToken</items>
>> <passwordCallbackClass>web.ws.control.PWCBHandler</passwordCallbackClass>
>> </action>
>> </parameter>
>> <parameter name="OutflowSecurity">
>> <action>
>> <items>UsernameToken</items>
>>
>> <passwordCallbackClass>web.ws.control.PWCBHandler</passwordCallbackClass>
>> </action>
>> </parameter>
>> </service>
>>
>> Any idea?
>>
>> Chinmoy
>>
>
>
>
> --
> Nandana Mihindukulasooriya
> WSO2 inc.
>
> http://nandana83.blogspot.com/
> http://www.wso2.org
>
<axisconfig name="AxisJava2.0">
<module ref="rampart" />
<parameter name="OutflowSecurity">
<action>
<items>UsernameToken</items>
<user>system</user>
<passwordCallbackClass>labware.web.ws.control.PWCBHandler</passwordCallbackClass>
</action>
</parameter>
<parameter name="hotdeployment" locked="false">true</parameter>
<parameter name="hotupdate" locked="false">true</parameter>
<messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
<transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
<parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
</transportSender>
<phaseOrder type="inflow">
<!-- System pre defined phases -->
<phase name="Transport">
<handler name="RequestURIBasedDispatcher"
class="org.apache.axis2.engine.RequestURIBasedDispatcher">
<order phase="Dispatch"/>
</handler>
<handler name="SOAPActionBasedDispatcher"
class="org.apache.axis2.engine.SOAPActionBasedDispatcher">
<order phase="Dispatch"/>
</handler>
</phase>
<phase name="Security"/>
<phase name="PreDispatch"/>
<phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
<handler name="AddressingBasedDispatcher"
class="org.apache.axis2.engine.AddressingBasedDispatcher">
<order phase="Dispatch"/>
</handler>
<handler name="SOAPMessageBodyBasedDispatcher"
class="org.apache.axis2.engine.SOAPMessageBodyBasedDispatcher">
<order phase="Dispatch"/>
</handler>
<handler name="InstanceDispatcher"
class="org.apache.axis2.engine.InstanceDispatcher">
<order phase="PostDispatch"/>
</handler>
</phase>
<!-- System pre defined phases -->
<!-- After Postdispatch phase module author or or service author can add any phase he want -->
<phase name="OperationInPhase"/>
</phaseOrder>
<phaseOrder type="outflow">
<!-- user can add his own phases to this area -->
<phase name="OperationOutPhase"/>
<!--system predefined phase-->
<!--these phase will run irrespective of the service-->
<phase name="PolicyDetermination"/>
<phase name="MessageOut"/>
</phaseOrder>
<phaseOrder type="INfaultflow">
<phase name="PreDispatch"/>
<phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
<handler name="RequestURIBasedDispatcher"
class="org.apache.axis2.engine.RequestURIBasedDispatcher">
<order phase="Dispatch"/>
</handler>
<handler name="SOAPActionBasedDispatcher"
class="org.apache.axis2.engine.SOAPActionBasedDispatcher">
<order phase="Dispatch"/>
</handler>
<handler name="AddressingBasedDispatcher"
class="org.apache.axis2.engine.AddressingBasedDispatcher">
<order phase="Dispatch"/>
</handler>
<handler name="SOAPMessageBodyBasedDispatcher"
class="org.apache.axis2.engine.SOAPMessageBodyBasedDispatcher">
<order phase="Dispatch"/>
</handler>
<handler name="InstanceDispatcher"
class="org.apache.axis2.engine.InstanceDispatcher">
<order phase="PostDispatch"/>
</handler>
</phase>
<!-- user can add his own phases to this area -->
<phase name="OperationInFaultPhase"/>
</phaseOrder>
<phaseOrder type="Outfaultflow">
<!-- user can add his own phases to this area -->
<phase name="OperationOutFaultPhase"/>
<phase name="PolicyDetermination"/>
<phase name="MessageOut"/>
</phaseOrder>
</axisconfig>