Hi, I have created a jar with dependencies using the maven assembly plugin in order to push data to secure web service in WSO2 DSS.
The code works fine when run in intelliJ idea, but when the jar is run I get the following exception. java.lang.RuntimeException: Undefined 'Security policy namespace cannot be null.' resource property at org.apache.rampart.RampartException.getMessage(RampartException.java:81) at org.apache.rampart.RampartException.<init>(RampartException.java:41) at org.apache.rampart.RampartException.<init>(RampartException.java:57) at org.apache.rampart.RampartMessageData.setWSSecurityVersions(RampartMessageData.java:422) at org.apache.rampart.RampartMessageData.<init>(RampartMessageData.java:263) at org.apache.rampart.MessageBuilder.build(MessageBuilder.java:61) at org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:65) at org.apache.axis2.engine.Phase.invokeHandler(Phase.java:340) at org.apache.axis2.engine.Phase.invoke(Phase.java:313) at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:262) at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:427) at org.apache.axis2.description.OutOnlyAxisOperationClient.executeImpl(OutOnlyAxisOperation.java:278) at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165) at org.wso2.dashboard.marketing.client.WSO2MarketingDashboardDataServiceStub.insertWebsiteVisitorsPerWeek(WSO2MarketingDashboardDataServiceStub.java:610) at org.wso2.dashboard.marketing.publish.data.DataPublisher.insertToWebsiteVisitorsWeeklyDB(DataPublisher.java:358) at org.wso2.dashboard.marketing.publish.data.DataPublisher.publishData(DataPublisher.java:46) at org.wso2.dashboard.marketing.publish.data.Application.main(Application.java:8) The pom is as follows. <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <properties> <JDK_VERSION>1.6</JDK_VERSION> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <axis2.version>1.6.1-wso2v9</axis2.version> <rampart.version>1.6.1-wso2v12</rampart.version> </properties> <groupId>org.wso2.dashboard.marketing</groupId> <artifactId>DataAccess</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <repositories> <repository> <id>codehaus</id> <url>http://repository.codehaus.org/org/codehaus</url> </repository> <repository> <id>wso2.releases</id> <name>WSO2 Releases Repository</name> <url>http://maven.wso2.org/nexus/content/repositories/releases/</url> <releases> <enabled>true</enabled> <updatePolicy>daily</updatePolicy> <checksumPolicy>ignore</checksumPolicy> </releases> </repository> <!-- WSO2 Snapshot artifact repository --> <repository> <id>wso2.snapshots</id> <name>WSO2 Snapshot Repository</name> <url>http://maven.wso2.org/nexus/content/repositories/snapshots/</url> <snapshots> <enabled>true</enabled> <updatePolicy>daily</updatePolicy> </snapshots> <releases> <enabled>false</enabled> </releases> </repository> <repository> <id>wso2-nexus</id> <name>WSO2 internal Repository</name> <url>http://maven.wso2.org/nexus/content/groups/wso2-public/</url> <releases> <enabled>true</enabled> <updatePolicy>daily</updatePolicy> <checksumPolicy>ignore</checksumPolicy> </releases> </repository> </repositories> <dependencies> <!--Google Analytics--> <dependency> <groupId>com.google.apis</groupId> <artifactId>google-api-services-analytics</artifactId> <version>v3-rev98-1.19.0</version> </dependency> <dependency> <groupId>com.google.oauth-client</groupId> <artifactId>google-oauth-client-jetty</artifactId> <version>1.19.0</version> </dependency> <!--Sales Force--> <dependency> <groupId>com.force.api</groupId> <artifactId>force-wsc</artifactId> <version>33.0.1</version> </dependency> <!--Jackson for JSON--> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency> <dependency> <groupId>org.wso2.carbon</groupId> <artifactId>org.wso2.carbon.authenticator.stub</artifactId> <version>3.2.0</version> </dependency> <!--Axis2 Dependencies--> <dependency> <groupId>org.apache.axis2</groupId> <artifactId>axis2</artifactId> <version>${axis2.version}</version> </dependency> <dependency> <groupId>org.apache.axis2</groupId> <artifactId>axis2-transport-local</artifactId> <version>${axis2.version}</version> </dependency> <dependency> <groupId>org.apache.axis2</groupId> <artifactId>axis2-transport-http</artifactId> <version>${axis2.version}</version> </dependency> <!-- Apache Rampart--> <dependency> <groupId>org.apache.rampart</groupId> <artifactId>rampart-core</artifactId> <version>${rampart.version}</version> <exclusions> <exclusion> <groupId>org.apache.axis2</groupId> <artifactId>addressing</artifactId> </exclusion> </exclusions> </dependency> <!--Rampart Dependencies--> <dependency> <groupId>org.apache.neethi</groupId> <artifactId>neethi</artifactId> <version>2.0.5</version> </dependency> <!--SalesForce--> <dependency> <groupId>org.wso2.dashboard.marketing</groupId> <artifactId>SalesforceEnterprise</artifactId> <version>1.0</version> </dependency> <!--Service Client--> <dependency> <groupId>org.wso2.dashboard.marketing</groupId> <artifactId>WebserviceClient</artifactId> <version>1.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <configuration> <source>${JDK_VERSION}</source> <target>${JDK_VERSION}</target> <excludes> </excludes> </configuration> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>org.wso2.dashboard.marketing.publish.data.Application</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> </project> The policy xml file is as follows. <?xml version="1.0" encoding="UTF-8"?> <wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UTOverTransport"> <wsp:ExactlyOne> <wsp:All> <sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> <wsp:Policy> <sp:TransportToken> <wsp:Policy> <sp:HttpsToken RequireClientCertificate="false"/> </wsp:Policy> </sp:TransportToken> <sp:AlgorithmSuite> <wsp:Policy> <sp:Basic256/> </wsp:Policy> </sp:AlgorithmSuite> <sp:Layout> <wsp:Policy> <sp:Lax/> </wsp:Policy> </sp:Layout> <sp:IncludeTimestamp/> </wsp:Policy> </sp:TransportBinding> <sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> <wsp:Policy> <sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient"/> </wsp:Policy> </sp:SignedSupportingTokens> </wsp:All> </wsp:ExactlyOne> </wsp:Policy> This is the code used to connect to the web service. String epr = "https://10.224.144.179:9443/services/WSO2MarketingDashboardDataService"; System.setProperty("javax.net.ssl.trustStore", (new File("./wso2carbon.jks")).getAbsolutePath()); System.setProperty("javax.net.ssl.trustStorePassword", "wso2carbon"); ConfigurationContext ctx = ConfigurationContextFactory .createConfigurationContextFromFileSystem("/home/sabra/repository", null); WSO2MarketingDashboardDataServiceStub stub = new WSO2MarketingDashboardDataServiceStub(ctx,epr); ServiceClient client = stub._getServiceClient(); Options options = client.getOptions(); client.engageModule("rampart"); options.setUserName("admin"); options.setPassword("admin"); options.setProperty(RampartMessageData.KEY_RAMPART_POLICY, loadPolicy("./wso2MDPolicy.xml")); where loadPolicy is as follows. private static Policy loadPolicy(String path) throws Exception { InputStream resource = new FileInputStream(path); StAXOMBuilder builder = new StAXOMBuilder(resource); return PolicyEngine.getPolicy(builder.getDocumentElement()); } Any help on resolving or understanding this issue is highly appreciated. Thank you. -- Sabra Ossen *Software Engineering Intern* Mobile : +94 (0) 775 837 356 sa...@wso2.com
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev