This explains how to setup and run standard Apache Rampart samples in an Axis2 instance hosted in Apache Rampart.
Apache Rampart - 1.4
Apache Axis2 - 1.4.1
http://ws.apache.org/axis2/
http://ws.apache.org/rampart/
You need to have the following to try this:
- Apache Axis2 Standard Binary Distribution (Version 1.4.1)
- Apache Axis2 WAR (Web Archive) Distribution (Version 1.4.1)
- Apache Rampart Standard Binary Distribution (Version 1.4)
- Apache Tomcat
- Apache Ant
- Make sure you have patched your JRE with Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files.
The policy/sample03 of Apache Rampart samples will be used to demonstrate this. You can use the same steps to
deploy and run other samples as well.
Step 1:
Extract Apache Axis2 war distribution and copy axis2.war into the "webapps" directory of Apache Tomcat.
Stop Apache Tomcat.
Step 2:
Extract Apache Axis2 Standard binary distribution and Apache Rampart standard binary distribution and
- Download and copy bcprov-jdk**-140.jar from bouncycastle.org to <extracted-rampart-dist>/lib/
- Set AXIS2_HOME environment variable to the extracted Apache Axis2 Standard binary distribution directory.
- Run 'ant' from the samples directory to copy all required jars into the <extracted-rampart-dist>/lib to setup classpath to run the clients.
- Update the addressing.mar property of build.xml file of samples/policy to :
- To build the service archive, change directory to <extracted-rampart-dist>/samples/policy/ and do
$ 'ant service.03'
This will start the simple axis2 server, you can simply stop it using Ctrl+C.
If you have Apache Tomcat started at this point there might be a conflict of ports when axis2 server is trying to start!
Step 3:
Now we have the client and the service ready! Lets move the secured service to the Axis2 instance in Tomcat.
- Make sure Tomcat not running
- Copy all jar files in <extracted-rampart-dist>/lib/ directory to <tomcat>/webapps/axis2/WEB-INF/lib/
- Copy rampart-1.4.mar to <tomcat>/webapps/axis2/WEB-INF/modules/
- Copy <extracted-rampart-dist>/samples/policy/build/service_repositories/sample03/services/sample03.aar into <tomcat>/webapps/axis2/WEB-INF/services/
- Note that the required keys are packed with the service archive.
- Start Apache Tomcat!
- If you are running tomcat on port 8080 you should be able to point your browser to http://localhost:8080/axis2/services/listServices and verify that the secured service is successfully hosted!
Step 4: Running the client
- Simply change directory to "<extracted-rampart-dist>/samples/policy/" and do
$ ant client.03
Ruchith Fernando, ruchithf AT apache.org
Good tutorial
Hi. Would like to acknowledge that this tutorial has been a great help. Thanks a lot for putting up such insightful discussion.
George Clooney Movies
http://GeorgeClooneymovies.org/
The rampart module is not valid or has not been deployed error.
Hello Ruchith,
I tried the sample3 in this tutorial but got the following error while testing it out.
I have followed all necessary steps to configure Rampart but still have this error.
Please, what might be likely wrong or what am I doing wrong.
Thank you.
The error stack:
Error: org.apache.axis2.deployment.DeploymentException: The rampart module is not valid or has not been deployed. at org.apache.axis2.deployment.repository.util.ArchiveReader.processServiceGroup(ArchiveReader.java:150) at org.apache.axis2.deployment.ServiceDeployer.deploy(ServiceDeployer.java:81) at org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136) at org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:659) at org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:144) at org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:337) at org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:241) at org.apache.axis2.deployment.RepositoryListener.startListener(RepositoryListener.java:331) at org.apache.axis2.deployment.scheduler.SchedulerTask.checkRepository(SchedulerTask.java:64) at org.apache.axis2.deployment.scheduler.SchedulerTask.run(SchedulerTask.java:71) at org.apache.axis2.deployment.scheduler.Scheduler$SchedulerTimerTask.run(Scheduler.java:90) at java.util.TimerThread.mainLoop(Unknown Source) at java.util.TimerThread.run(Unknown Source) Caused by: org.apache.axis2.deployment.DeploymentException: The rampart module is not valid or has not been deployed. at org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:431) at org.apache.axis2.deployment.repository.util.ArchiveReader.buildServiceGroup(ArchiveReader.java:101) at org.apache.axis2.deployment.repository.util.ArchiveReader.processServiceGroup(ArchiveReader.java:143) ... 12 more Caused by: org.apache.axis2.deployment.DeploymentException: The rampart module is not valid or has not been deployed. at org.apache.axis2.deployment.ServiceBuilder.processModuleRefs(ServiceBuilder.java:678) at org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:327) ... 14 more Caused by: org.apache.axis2.deployment.DeploymentException: The rampart module is not valid or has not been deployed. at org.apache.axis2.deployment.ServiceBuilder.processModuleRefs(ServiceBuilder.java:670) ... 15 more
Hello, In addition, as part
Hello,
In addition, as part of efforts to resolve this problem I added to conf/axis2.xml
to engage the Rampart module but got "Internal Server" error afterward.
Please, I will appreciate any help you could offer to solve this lingering problem as soon as possible.
Thank you.
Question on Step 2 updating addressing.mar
On the update the addressing.mar part, what value do we update it to? It's just a blank after the colon in your instructions.
It should be addressing-1.41.mar
As in <property name="addressing.mar" value="addressing-1.41.mar"/>
Hope this helps.
Peter