Oopsie! Okay, too early for my eyes to pick up on that difference.
Indeed, it works now. Thanks a million, Bryan!
On 7/14/20 8:25 AM, Bryan Bende wrote:
The one I referenced is actually "nifi-kerberos-credentials-service-api"
and you have "nifi-kerberos-credentials-service".
On Tue, Jul 14, 2020 at 10:24 AM Russell Bateman <r...@windofkeltia.com>
wrote:
Thanks for the responses. I did have this dependency already before
mailing to the forum:
<!-- Here's the version of NiFi we're targeting! -->
<nifi.version>1.11.0</nifi.version>
...
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-kerberos-credentials-service</artifactId>
<version>${nifi.version}</version>
</dependency>
Other thoughts? I tried debugging through this as both test scope and no
specified scope. The result is the same.
On 7/14/20 8:12 AM, Matt Burgess wrote:
Don't forget to include that service with "test" scope so it doesn't
get included in the "real" bundle.
On Tue, Jul 14, 2020 at 9:49 AM Bryan Bende <bbe...@gmail.com> wrote:
It looks like you are missing a dependency in your project...
https://github.com/apache/nifi/blob/main/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/pom.xml#L50-L55
On Mon, Jul 13, 2020 at 5:24 PM Russell Bateman <r...@windofkeltia.com>
wrote:
I'm trying to use Apache Derby as the DBCP controller in JUnit tests.
For the first test, I start off vetting my ability to inject Derby as
the DBCP controller I want to use. But, right off, I get this Kerberos
error. I wasn't trying to use Kerberos, but maybe I'm missing
configuration to tell that to DBCPConnectionPool?
public void test() throws Exception
{
final DBCPConnectionPool service = new DBCPConnectionPool();
*java.lang.NoClassDefFoundError:
org/apache/nifi/kerberos/KerberosCredentialsService at
org.apache.nifi.dbcp.DBCPConnectionPool.<clinit>(DBCPConnectionPool.java:243)
at
com.windofkeltia.processor.TestWithDerby.test(TestWithDerby.java:111)
< 26 internal calls> Caused by: java.lang.ClassNotFoundException:
org.apache.nifi.kerberos.KerberosCredentialsService < 2 internal calls
at
java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at
java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ...*
runner.addControllerService( "Derby service", service );
runner.setProperty( service, DBCPConnectionPool.DATABASE_URL,
"jdbc:derby:memory:sampledb;create=true" );
runner.setProperty( service, DBCPConnectionPool.DB_USER,
"sa" );
runner.setProperty( service, DBCPConnectionPool.DB_PASSWORD,
"sa" );
runner.setProperty( service, DBCPConnectionPool.DB_DRIVERNAME,
"org.apache.derby.jdbc.EmbeddedDriver" );
runner.enableControllerService( service );
runner.assertValid( service );
final DBCPService derbyService = ( DBCPService )
runner.getProcessContext()
.getControllerServiceLookup()
.getControllerService( "Derby service" );
// get and verify connections to Derby...
for( int count = 0; count < 10; count++ )
{
final Connection connection = service.getConnection();
if( VERBOSE )
System.out.println( connection );
assertNotNull( connection );
assertValidConnectionDerby( connection, count );
}
final Map< String, String > properties = new HashMap<>();
runner.setProperty( TestWithDerby.DBCP_SERVICE, "Derby service" );
runner.setIncomingConnection( false );
runner.setIncomingConnection( false );
runner.run();
}