Hi Sabra,

How are you running the jar?

probably the issue is that your classpath is not set to get the security
policy.

Try setting the appropriate classpath parameters. if you are running the
jar from the terminal you can refer to [1] as to how to set the classpath
parameters


[1]
http://stackoverflow.com/questions/18413014/run-jar-from-command-line-and-specify-classpath

regards
Awanthika



On Sat, Mar 21, 2015 at 10:19 AM, Sabra Ossen <sa...@wso2.com> wrote:

> 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
>
>


-- 
Awanthika Senarath
Software Engineer, WSO2 Inc.
Mobile: +94717681791
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to