[ 
https://issues.apache.org/jira/browse/RANGER-3025?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17242619#comment-17242619
 ] 

Rami Darwish commented on RANGER-3025:
--------------------------------------

Managed to get it working by changing the import for jersey client. They where 
conflicting with the ones used by ranger

 
{code:java}
diff --git a/plugin-schema-registry/pom.xml b/plugin-schema-registry/pom.xml
index 28e8b7e7e..e31fb8fd1 100644
--- a/plugin-schema-registry/pom.xml
+++ b/plugin-schema-registry/pom.xml
@@ -230,6 +230,11 @@
             <artifactId>jersey-client</artifactId>
             <version>${jersey.version}</version>
         </dependency>
+       <dependency>
+            <groupId>com.hortonworks.registries</groupId>
+            <artifactId>jersey-shaded</artifactId>
+            <version>0.9.1</version>
+       </dependency>
     </dependencies>
 
     <build>
diff --git 
a/plugin-schema-registry/src/main/java/org/apache/ranger/services/schema/registry/client/connection/DefaultSchemaRegistryClient.java
 
b/plugin-schema-registry/src/main/java/org/apache/ranger/services/schema/registry/client/connection/DefaultSchemaRegistryClient.java
index 3a46436bf..375fbd5c6 100644
--- 
a/plugin-schema-registry/src/main/java/org/apache/ranger/services/schema/registry/client/connection/DefaultSchemaRegistryClient.java
+++ 
b/plugin-schema-registry/src/main/java/org/apache/ranger/services/schema/registry/client/connection/DefaultSchemaRegistryClient.java
@@ -25,15 +25,15 @@
 import 
org.apache.ranger.services.schema.registry.client.connection.util.SecurityUtils;
 import org.codehaus.jettison.json.JSONArray;
 import org.codehaus.jettison.json.JSONObject;
-import org.glassfish.jersey.client.ClientConfig;
-import org.glassfish.jersey.client.ClientProperties;
-import org.glassfish.jersey.client.JerseyClientBuilder;
+import 
com.hortonworks.registries.shaded.org.glassfish.jersey.client.ClientConfig;
+import 
com.hortonworks.registries.shaded.org.glassfish.jersey.client.ClientProperties;
+import 
com.hortonworks.registries.shaded.org.glassfish.jersey.client.JerseyClientBuilder;
 
 import javax.net.ssl.SSLContext;
-import javax.ws.rs.client.ClientBuilder;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;;
+import com.hortonworks.registries.shaded.javax.ws.rs.client.ClientBuilder;
+import com.hortonworks.registries.shaded.javax.ws.rs.client.WebTarget;
+import com.hortonworks.registries.shaded.javax.ws.rs.core.MediaType;
+import com.hortonworks.registries.shaded.javax.ws.rs.core.Response;;
 import java.io.UnsupportedEncodingException;
 import java.lang.reflect.InvocationTargetException;
 import java.net.URLEncoder;
@@ -56,7 +56,7 @@
     private static final String SCHEMAS_PATH = SCHEMA_REGISTRY_PATH + 
"/schemas/";
     private static final String SCHEMA_REGISTRY_VERSION_PATH = 
SCHEMA_REGISTRY_PATH + "/version";
     private static final String SSL_ALGORITHM = "TLS";
-    private final javax.ws.rs.client.Client client;
+    private final com.hortonworks.registries.shaded.javax.ws.rs.client.Client 
client;
     private final Login login;
     private final UrlSelector urlSelector;
     private final Map<String, SchemaRegistryTargets> urlWithTargets;

{code}
I still had to include the following jars in my CLASSPATH :

common-auth-0.9.0.jar

schema-registry-client-0.9.1.jar

schema-registry-common-0.9.1.jar

jersey-shaded-0.9.1.jar (from com.hortonworks.registries)

 

 

 

> Schema Registry service fails with NoClassDefFoundError
> -------------------------------------------------------
>
>                 Key: RANGER-3025
>                 URL: https://issues.apache.org/jira/browse/RANGER-3025
>             Project: Ranger
>          Issue Type: Bug
>          Components: admin
>    Affects Versions: 2.1.0
>         Environment: jdk1.8.0_241/Centos7
>            Reporter: Rami Darwish
>            Priority: Major
>
> schema registry  service fails when we Test Connection or try to query 
> registry-service/schema-group/serde
>  
> java.lang.NoClassDefFoundError: 
> com/hortonworks/registries/schemaregistry/client/UrlSelector.
>  
> Steps to reproduce
> Clean install from apache-ranger-2.1.0.tar.gz
> Try to add add Schema Registry service and Test Connection.
> or
> Add the service anyway. Add a policy and try to search 
> registry-service/schema-group/serde
> will fail with ERROR org.apache.ranger.rest.ServiceREST 
> (ServiceREST.java:1236) - lookupResource(SR2, 
> ResourceLookupContext=\{resourceName=serde,userInput=df,resources={serde=[]}})
>  failed
> org.apache.ranger.plugin.client.HadoopException: 
> java.lang.NoClassDefFoundError: 
> com/hortonworks/registries/schemaregistry/client/UrlSelector
>  
> I tried adding the missing jars from horton schema-registry but got blocked 
> with conflicting class files.
> java.lang.LinkageError: ClassCastException: attempting to 
> castjar:file:/opt/ranger-2.1.0-admin/ews/webapp/WEB-INF/lib/jersey-bundle-1.19.3.jar!/javax/ws/rs/ext/RuntimeDelegate.class
>  to 
> jar:file:/home/bambam/lib/javax.ws.rs-api-2.0.1.jar!/javax/ws/rs/ext/RuntimeDelegate.class.
> Looks like jersey-bundle-1.19.3.jar and javax.ws.rs-api-2.0.1.jar share some 
> class files
> Not sure if I missed something. There is not much documentation on how to 
> plug schema-registry with ranger
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to