kafka-jira mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Randall Hauch (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (KAFKA-6417) plugin.path pointing at a plugin directory causes ClassNotFoundException
Date Fri, 30 Mar 2018 15:29:00 GMT

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

Randall Hauch commented on KAFKA-6417:
--------------------------------------

[~ChrisEgerton], the output concept mentioned in KAFKA-6675 would include the JAR file path
in the "@" column (where the connector was found). For example, here's a sample output with
the last connector (in the fragment) being found in an uber JAR:

{noformat}
Source Connector(s):
  FileStreamSource  (org.apache.kafka.connect.file.FileStreamSourceConnector)       @ classpath
  FileStreamSink    (org.apache.kafka.connect.file.FileStreamSinkConnector)         @ classpath
  JdbcSource        (io.confluent.connect.jdbc.JdbcSourceConnector)                 @ /usr/local/share/java/kafka-connect-jdbc
  MySql             (io.acme.connector.mysql.MySqlConnector)                    @ /usr/local/plugins/acme-mysql-connector-0.7.0.jar
...
{noformat}

So it is explicit, but perhaps not obvious enough. Maybe append "(uber)" or "(self-contained)"
after the JAR file to help make it even more obvious?

> plugin.path pointing at a plugin directory causes ClassNotFoundException
> ------------------------------------------------------------------------
>
>                 Key: KAFKA-6417
>                 URL: https://issues.apache.org/jira/browse/KAFKA-6417
>             Project: Kafka
>          Issue Type: Bug
>          Components: KafkaConnect
>    Affects Versions: 1.0.0
>            Reporter: Dustin Cote
>            Priority: Major
>
> When using the {{plugin.path}} configuration for the Connect workers, the user is expected
to specify a list containing the following per the docs:
> {quote}
> The list should consist of top level directories that include any combination of: a)
directories immediately containing jars with plugins and their dependencies b) uber-jars with
plugins and their dependencies c) directories immediately containing the package directory
structure of classes of plugins and their dependencies 
> {quote}
> This means we would expect {{plugin.path=/usr/share/plugins}} for a structure like {{/usr/share/plugins/myplugin1}},{{/usr/share/plugins/myplugin2}},
etc. However if you specify {{plugin.path=/usr/share/plugins/myplugin1}} the resulting behavior
is that dependencies for {{myplugin1}} are not properly loaded. This causes a {{ClassNotFoundException}}
that is not intuitive to debug. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message