如何在服务调用中排除Rampart模块

时间:2014-12-24 09:38:37

标签: java xml web-services axis2 rampart

我们有一个第2轴服务,它可以调用另外两个服务。对于一个服务调用,我们需要安全性。我们已经在我们的axis2.xml中配置了。但是在其他服务调用中,我想将rampart排除为no该调用需要安全性。但是因为只有1个axis2.xml是常见的,所以它在两个调用中都包含了wallart。如何排除它。

1 个答案:

答案 0 :(得分:0)

您可以在服务级别甚至是操作级别添加Rampart模块,例如

<service name="name of the service" scope="name of the scope" class="full qualifide name the service lifecycle class"   targetNamespace="target namespase for the service">
    <Description> The description of the service  </Description>  
    <module ref="rampart" />

    <operation name="echoString" mep="operation MEP"> 
        <actionMapping>Mapping to action</actionMapping>
         <module ref="rampart" />
        <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
    </operation>
</service>

Axis 2配置 http://axis.apache.org/axis2/java/core/docs/axis2config.html#Service_Configuration

对于客户端

REPOSITORY_PATH应该有一个名为'modules'的文件夹,而rampart mar应该在这个文件夹中。

ConfigurationContext ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem(REPOSITORY_PATH, null);
SimpleServiceStub stub = new SimpleServiceStub(ctx, "http://sbswsvm1426ou:9091/axis2/services/SimpleService?wsdl");
stub._getServiceClient().engageModule("rampart");