Пакет не найден при создании источника данных с использованием верблюда

Я попытался воспроизвести тот же пример, что и в следующем вопросе.

import javax.sql.DataSource;    
import org.apache.camel.main.Main;
import org.apache.camel.builder.RouteBuilder;
import org.apache.commons.dbcp.BasicDataSource;

public class JDBCExample {

    private Main main;

    public static void main(String[] args) throws Exception {
        JDBCExample example = new JDBCExample();
        example.boot();
    }

    public void boot() throws Exception {
        // create a Main instance
        main = new Main();
        // enable hangup support so you can press ctrl + c to terminate the JVM
        main.enableHangupSupport();

        String url = "jdbc:oracle:thin:@MYSERVER:1521:myDB";
        DataSource dataSource = setupDataSource(url);

        // bind dataSource into the registery
        main.bind("myDataSource", dataSource);

        // add routes
        main.addRouteBuilder(new MyRouteBuilder());

        // run until you terminate the JVM
        System.out.println("Starting Camel. Use ctrl + c to terminate the JVM.\n");
        main.run();
    }

    class MyRouteBuilder extends RouteBuilder {
        public void configure() {
            String dst = "C:/Local Disk E/TestData/Destination";
            from("direct:myTable")
               .setBody(constant("select * from myTable"))
               .to("jdbc:myDataSource")
                .to("file:" + dst);
        }
    }

    private DataSource setupDataSource(String connectURI) {
        BasicDataSource ds = new BasicDataSource();
        ds.setDriverClassName("oracle.jdbc.driver.OracleDriver");
        ds.setUsername("sa");
        ds.setPassword("devon1");
        ds.setUrl(connectURI);
        return ds;
    }
}

Я включил camel-jdbc-3.0.1.jar и свой файл jar, специфичный для базы данных, в свой путь к классу.

Когда я пытаюсь скомпилировать код с помощью следующей команды

javac -cp .;D:\Code\bin JDBCExample.java

Я получаю следующую ошибку.

JDBCExample.java:2: error: package org.apache.camel.main does not exist
import org.apache.camel.main.Main;
                            ^
JDBCExample.java:3: error: package org.apache.camel.builder does not exist
import org.apache.camel.builder.RouteBuilder;
                               ^
JDBCExample.java:4: error: package org.apache.commons.dbcp does not exist
import org.apache.commons.dbcp.BasicDataSource;

Где я ошибаюсь? Я попытался добавить верблюжье ядро ​​в путь к классам, но это не помогло.

Пожалуйста, дайте мне знать ваши мысли, спасибо заранее.


person Subramanian    schedule 26.02.2020    source источник


Ответы (1)


Вы преуспели, добавив верблюжье ядро ​​в свой путь к классам, но верблюда-ядра и верблюда-jdbc недостаточно, вы также должны добавить следующие зависимости:

JDBCExample.java:2: ошибка: пакет org.apache.camel.main не существует import org.apache.camel.main.Main;

Добавить зависимость camel-main

JDBCExample.java:4: ошибка: пакет org.apache.commons.dbcp не существует import org.apache.commons.dbcp.BasicDataSource;

Добавить зависимость commons-dbcp

JDBCExample.java:3: ошибка: пакет org.apache.camel.builder не существует import org.apache.camel.builder.RouteBuilder;

Добавить зависимость camel-core

С ними и зависимостью camel-jdbc все готово.

Я предлагаю вам использовать maven для обработки ваших зависимостей (и многого другого), если вы можете... Если вы не использовали его до этого быстрый старт за пять минут мягко познакомит вас с ним.

Вот пример pom.xml, который правильно разрешает все эти зависимости.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>demo</groupId>
  <artifactId>camel-jdbc-demo</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>camel-jdbc-demo</name>
  <url>http://maven.apache.org</url>
  <dependencies>

    <!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->
    <dependency>
        <groupId>commons-dbcp</groupId>
        <artifactId>commons-dbcp</artifactId>
        <version>1.4</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.camel/camel-main -->
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-main</artifactId>
        <version>3.0.1</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.camel/camel-core -->
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
        <version>3.0.1</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.camel/camel-jdbc -->
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-jdbc</artifactId>
        <version>3.0.1</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
person alainlompo    schedule 26.02.2020
comment
Ваше предложение помогло. Спасибо. - person Subramanian; 26.02.2020