Hello, 

Any ideas about this? In case the message was too long, my problem is that I get the Phoenix JDBC jat rejected when I use it in the Saiku tomcat webapp. It looks like some kind of packaging problem. 

If you want some extra info like logs of something I will be happy to post it back

Greetings and thanks again for your help


2014-02-05 17:55 GMT+01:00 Juan Rodríguez Hortalá <juan.rodriguez.hortala@gmail.com>:
Hi list!,

I've built phoenix following the instructions of http://phoenix.incubator.apache.org/building.html in a Cloudera Quickstart VM for CDH 4.4.0 and I've obtained the following jars:

phoenix-core/target/phoenix-core-3.0.0-SNAPSHOT.jar
phoenix-assembly/target/phoenix-3.0.0-SNAPSHOT-client.jar

Then I have copied phoenix-core-3.0.0-SNAPSHOT.jar into /usr/lib/hbase/lib/ and restarted HBase and I'm able to access to HBase tables and create new HBase tables with sqlline.sh, which means phoenix-3.0.0-SNAPSHOT-client.jar is working ok. But now I would like to use Phoenix as a source for a saiku server I'm running in the host machine for the Cloudera VM, which is a windows 8. To do that, following http://docs.analytical-labs.com/saiku/documentation/2013/08/15/datasources.html, I have copied the client phoenix-3.0.0-SNAPSHOT-client.jar into saiku-server\tomcat\webapps\saiku\WEB-INF\lib for the Saiku installation and restarted Saiku, and here is where the problem occours, as tomcats rejects phoenix-3.0.0-SNAPSHOT-client.jar with the following message at catalina.*.log:

feb 05, 2014 4:20:59 P.M. org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(C:\Users\bc24u_000\Sistemas\Pentaho\saiku-server-foodmart-2.5\saiku-server\tomcat\webapps\saiku\WEB-INF\lib\phoenix-3.0.0-SNAPSHOT-client.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
feb 05, 2014 4:21:17 P.M. com.sun.jersey.api.core.PackagesResourceConfig init
INFO: Scanning for root resource and provider classes in the packages:
  org.saiku.web
....

After some searching I've found that the problem is that javax.servlet.Servlet.class is already defined in some other jar, so tomcat rejects any jar containing another definition of the same class. I've tried using the other client jars for phoenix by the class org.apache.phoenix.jdbc.PhoenixDriver seems to be missing in those other jars:

[cloudera@localhost target]$ jar tf phoenix-3.0.0-SNAPSHOT-client-without-hbase.jar | grep -i phoenix
[cloudera@localhost target]$ jar tf phoenix-3.0.0-SNAPSHOT-client-minimal.jar | grep -i phoenix
[cloudera@localhost target]$

I've also tried deleting that javax folder from the file phoenix-3.0.0-SNAPSHOT-client.jar, but it doesn't work anyway. I would appreciate any idea for solving this

Thanks in advance,

Greetings!

Juan Rodríguez Hortalá