You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rampart-dev@ws.apache.org by Sanjay Vivek <Sa...@newcastle.ac.uk> on 2008/02/29 17:17:10 UTC

"Unable to engage module : rampart" exception.

Hi all,

I'm still unable to solve the "Unable to engage module : rampart"
problem. Basically, I downloaded the lasted rampart-SNAPSHOT.mar module.
However, when I try to call the policy based service with my client, I
get the following exception:

Exception in thread "main" org.apache.axis2.AxisFault: Unable to engage
module : rampart
	at
org.apache.axis2.client.ServiceClient.engageModule(ServiceClient.java:33
9)
	at
org.apache.rampart.policy.CommandLineClient.main(CommandLineClient.java:
64)

However, everything works perfectly with rampart-1.3.mar so it appears
the service itself is fine. 

I've also tried putting my axis2.xml as a parameter to the
ConfigurationContext object as suggested by Joana Trindade and as
described in [1] but no luck either. Is there anything else I need to
configure to get it working? Any pointers will be really helpful. I've
also added the client used to invoke the service below. Cheers.

[1] -
http://mail-archives.apache.org/mod_mbox/ws-rampart-dev/200802.mbox/%3c9
e2fff830802210213k53e2d394u9611f1ac5737829e@mail.gmail.com%3e

Regards
Sanjay

public class CommandLineClient {

      private static EndpointReference targetEPR = 
        new EndpointReference(
            "http://localhost:8080/axis2/services/PolicyEchoService");
	
	private static String confPath = "C:\\rampart\\policy";
	private static String axisPath =
"C:\\axis2-1.3\\conf\\axis2.xml";
	
	
	
    public static void main(String[] args) throws Exception {

        ConfigurationContext ctx = 
        	ConfigurationContextFactory.
        	   createConfigurationContextFromFileSystem(confPath,
axisPath);
    	
        ServiceClient client = new ServiceClient(ctx, null);
        Options options = new Options();
        options.setAction("urn:echo");
        options.setTo(targetEPR);
        options.setProperty(RampartMessageData.KEY_RAMPART_POLICY,
loadPolicy( confPath + "/conf/policy.xml"));
        
        
        //this username is authenticated against the PWHandlerClient
class
        options.setUserName("sanjay");
        client.setOptions(options);
        
        client.engageModule("addressing");
        client.engageModule("rampart");
        
        OMElement result = client.sendReceive(getPayload());
        
        String response = result.getFirstElement().getText();
        System.out.println(response);    
    }
    
    private static Policy loadPolicy(String xmlPath) throws Exception {
        StAXOMBuilder builder = new StAXOMBuilder(xmlPath);
        return PolicyEngine.getPolicy(builder.getDocumentElement());
    }
    
    
    private static OMElement getPayload() {
        OMFactory factory = OMAbstractFactory.getOMFactory();
        OMNamespace ns =
factory.createOMNamespace("http://policy.rampart.apache.org","ns1");
        OMElement elem = factory.createOMElement("echo", ns);
        
        return elem;
    }
    
}

Re: "Unable to engage module : rampart" exception.

Posted by mg...@hotmail.com.
Hi Sanjay

Nearest I can tell you have to use QNames for parameter to engageModule as
in
      client.engageModule(new QName("addressing"));
      client.engageModule(new QName("rampart"));

could you display the policy you are currently implementing?

M--
----- Original Message -----
Wrom: CGPKYLEJGDGVCJVTLBXFGGMEPYOQKEDOTWFAOBUZXUWLS
To: <ra...@ws.apache.org>
Sent: Friday, February 29, 2008 11:17 AM
Subject: "Unable to engage module : rampart" exception.


Hi all,

I'm still unable to solve the "Unable to engage module : rampart"
problem. Basically, I downloaded the lasted rampart-SNAPSHOT.mar module.
However, when I try to call the policy based service with my client, I
get the following exception:

Exception in thread "main" org.apache.axis2.AxisFault: Unable to engage
module : rampart
at
org.apache.axis2.client.ServiceClient.engageModule(ServiceClient.java:33
9)
at
org.apache.rampart.policy.CommandLineClient.main(CommandLineClient.java:
64)

However, everything works perfectly with rampart-1.3.mar so it appears
the service itself is fine.

I've also tried putting my axis2.xml as a parameter to the
ConfigurationContext object as suggested by Joana Trindade and as
described in [1] but no luck either. Is there anything else I need to
configure to get it working? Any pointers will be really helpful. I've
also added the client used to invoke the service below. Cheers.

[1] -
http://mail-archives.apache.org/mod_mbox/ws-rampart-dev/200802.mbox/%3c9
e2fff830802210213k53e2d394u9611f1ac5737829e@mail.gmail.com%3e

Regards
Sanjay

public class CommandLineClient {

      private static EndpointReference targetEPR =
        new EndpointReference(
            "http://localhost:8080/axis2/services/PolicyEchoService");

private static String confPath = "C:\\rampart\\policy";
private static String axisPath =
"C:\\axis2-1.3\\conf\\axis2.xml";



    public static void main(String[] args) throws Exception {

        ConfigurationContext ctx =
        ConfigurationContextFactory.
           createConfigurationContextFromFileSystem(confPath,
axisPath);

        ServiceClient client = new ServiceClient(ctx, null);
        Options options = new Options();
        options.setAction("urn:echo");
        options.setTo(targetEPR);
        options.setProperty(RampartMessageData.KEY_RAMPART_POLICY,
loadPolicy( confPath + "/conf/policy.xml"));


        //this username is authenticated against the PWHandlerClient
class
        options.setUserName("sanjay");
        client.setOptions(options);

        client.engageModule("addressing");
        client.engageModule("rampart");

        OMElement result = client.sendReceive(getPayload());

        String response = result.getFirstElement().getText();
        System.out.println(response);
    }

    private static Policy loadPolicy(String xmlPath) throws Exception {
        StAXOMBuilder builder = new StAXOMBuilder(xmlPath);
        return PolicyEngine.getPolicy(builder.getDocumentElement());
    }


    private static OMElement getPayload() {
        OMFactory factory = OMAbstractFactory.getOMFactory();
        OMNamespace ns =
factory.createOMNamespace("http://policy.rampart.apache.org","ns1");
        OMElement elem = factory.createOMElement("echo", ns);

        return elem;
    }

}


Re: "Unable to engage module : rampart" exception.

Posted by Ruchith Fernando <ru...@apache.org>.
Hi,

What is your axis2 version?

Please try with the current SNAPSHOT [1]

Thanks,
Ruchith

1. http://people.apache.org/dist/axis2/nightly/

Sanjay Vivek wrote:
> Hi all,
> 
> I'm still unable to solve the "Unable to engage module : rampart"
> problem. Basically, I downloaded the lasted rampart-SNAPSHOT.mar module.
> However, when I try to call the policy based service with my client, I
> get the following exception:
> 
> Exception in thread "main" org.apache.axis2.AxisFault: Unable to engage
> module : rampart
> 	at
> org.apache.axis2.client.ServiceClient.engageModule(ServiceClient.java:33
> 9)
> 	at
> org.apache.rampart.policy.CommandLineClient.main(CommandLineClient.java:
> 64)
> 
> However, everything works perfectly with rampart-1.3.mar so it appears
> the service itself is fine. 
> 
> I've also tried putting my axis2.xml as a parameter to the
> ConfigurationContext object as suggested by Joana Trindade and as
> described in [1] but no luck either. Is there anything else I need to
> configure to get it working? Any pointers will be really helpful. I've
> also added the client used to invoke the service below. Cheers.
> 
> [1] -
> http://mail-archives.apache.org/mod_mbox/ws-rampart-dev/200802.mbox/%3c9
> e2fff830802210213k53e2d394u9611f1ac5737829e@mail.gmail.com%3e
> 
> Regards
> Sanjay
> 
> public class CommandLineClient {
> 
>       private static EndpointReference targetEPR = 
>         new EndpointReference(
>             "http://localhost:8080/axis2/services/PolicyEchoService");
> 	
> 	private static String confPath = "C:\\rampart\\policy";
> 	private static String axisPath =
> "C:\\axis2-1.3\\conf\\axis2.xml";
> 	
> 	
> 	
>     public static void main(String[] args) throws Exception {
> 
>         ConfigurationContext ctx = 
>         	ConfigurationContextFactory.
>         	   createConfigurationContextFromFileSystem(confPath,
> axisPath);
>     	
>         ServiceClient client = new ServiceClient(ctx, null);
>         Options options = new Options();
>         options.setAction("urn:echo");
>         options.setTo(targetEPR);
>         options.setProperty(RampartMessageData.KEY_RAMPART_POLICY,
> loadPolicy( confPath + "/conf/policy.xml"));
>         
>         
>         //this username is authenticated against the PWHandlerClient
> class
>         options.setUserName("sanjay");
>         client.setOptions(options);
>         
>         client.engageModule("addressing");
>         client.engageModule("rampart");
>         
>         OMElement result = client.sendReceive(getPayload());
>         
>         String response = result.getFirstElement().getText();
>         System.out.println(response);    
>     }
>     
>     private static Policy loadPolicy(String xmlPath) throws Exception {
>         StAXOMBuilder builder = new StAXOMBuilder(xmlPath);
>         return PolicyEngine.getPolicy(builder.getDocumentElement());
>     }
>     
>     
>     private static OMElement getPayload() {
>         OMFactory factory = OMAbstractFactory.getOMFactory();
>         OMNamespace ns =
> factory.createOMNamespace("http://policy.rampart.apache.org","ns1");
>         OMElement elem = factory.createOMElement("echo", ns);
>         
>         return elem;
>     }
>     
> }
>