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