I have single node data torrent/Apex installation. Software installed under 
"/opt/datatorrent/releases/3.2.0”. When I uploaded and launched my application 
I get error finding the class  “KafkaSinglePortStringInputOperator”.  I could 
compile the application after adding the dt-contrib dependency but not sure how 
dt-contrib jars be available for application when running on single node data 
torrent installation.

Appreciate help!

—Suhas
PS: I explicitly copied the  dt-contrib-3.1.1.jar to  
/opt/datatorrent/current/lib/dt-contrib-3.1.1.jar and restarted the gateway..


Error launching the application:

An error occurred trying to launch the application. Server message: 
java.lang.NoClassDefFoundError: 
com/datatorrent/contrib/kafka/KafkaSinglePortStringInputOperator at 
io.ampool.demo.adtech.Application.populateDAG(Application.java:44) at 
com.datatorrent.stram.plan.logical.LogicalPlanConfiguration.prepareDAG(LogicalPlanConfiguration.java:2108)
 at 
com.datatorrent.stram.client.StramAppLauncher$1.createApp(StramAppLauncher.java:407)
 at 
com.datatorrent.stram.client.StramAppLauncher.launchApp(StramAppLauncher.java:482)
 at com.datatorrent.stram.cli.DTCli$LaunchCommand.execute(DTCli.java:2047) at 
com.datatorrent.stram.cli.DTCli.launchAppPackage(DTCli.java:3450) at 
com.datatorrent.stram.cli.DTCli.access$7000(DTCli.java:106) at 
com.datatorrent.stram.cli.DTCli$LaunchCommand.execute(DTCli.java:1892) at 
com.datatorrent.stram.cli.DTCli$3.run(DTCli.java:1449) Caused by: 
java.lang.ClassNotFoundException: 
com.datatorrent.contrib.kafka.KafkaSinglePortStringInputOperator at 
java.net.URLClassLoader.findClass(URLClassLoader.java:381) at 
java.lang.ClassLoader.loadClass(ClassLoader.java:424) at 
java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:810) at 
java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 9 more Fatal error 
encountered




Application.java



import com.datatorrent.api.StreamingApplication;

import com.datatorrent.api.DAG;

import com.datatorrent.api.DAG.Locality;

import com.datatorrent.lib.io.ConsoleOutputOperator;

import com.datatorrent.contrib.kafka.KafkaSinglePortStringInputOperator;


@ApplicationAnnotation(name = "AdStream")

public class Application implements StreamingApplication

{

  @Override

  public void populateDAG(DAG dag, Configuration entries)

  {

    KafkaSinglePortStringInputOperator input =  
dag.addOperator("MessageReader", new KafkaSinglePortStringInputOperator());


    ConsoleOutputOperator output = dag.addOperator("Output", new 
ConsoleOutputOperator());


    dag.addStream("MessageData", input.outputPort, output.input);

  }

}

Reply via email to