Проблема с подключением библиотек
Kain-evil opened this issue · 5 comments
Здравствуйте!
Просьба сразу не закидывать камнями, но я нахожусь на самом начале написания программы на java и уже сутки не могу найти ошибку в самом начале кода. Библиотеку подключил к проекту, а к портфелю даже подключиться не могу, выводится ошибка
Exception in thread "main" java.lang.NoClassDefFoundError: okhttp3/OkHttpClient$Builder
at ru.tinkoff.invest.openapi.okhttp.OkHttpOpenApi.(OkHttpOpenApi.java:31)
at Example.(Example.java:17)
at Example.main(Example.java:50)
Caused by: java.lang.ClassNotFoundException: okhttp3.OkHttpClient$Builder
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 3 more
Вот код:
class Example {
public static void main(String[] args) {
private String token;
token = "...";
try {
boolean sandboxMode = false;
OkHttpOpenApi api = new OkHttpOpenApi(token, sandboxMode, Executors.newCachedThreadPool());
api.getOrdersContext();
} catch (Exception e) {
}
}
}
Уже все перерыл, глаза замылились. Прошу вашей помощи ткнуть меня, так сказать, в мои ошибки.
Для начала покажите свой pom.xml чтобы понимать, какие библиотеки вы подключаете.
pom проекта
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>groupId</groupId>
<artifactId>BrokersAnalytics</artifactId>
<version>1.0-SNAPSHOT</version>
</project>
pom openAPI
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>ru.tinkoff.invest</groupId>
<artifactId>openapi-java-sdk</artifactId>
<version>0.6-SNAPSHOT</version>
</parent>
<artifactId>openapi-java-sdk-example</artifactId>
<packaging>jar</packaging>
<name>${project.groupId}:${project.artifactId}</name>
<description>Example of SDK using</description>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/${project.build.finalName}.lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>${project.build.finalName}.lib</classpathPrefix>
<mainClass>ru.tinkoff.invest.openapi.example.App</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<source>11</source>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>3.0.0-M1</version>
<configuration>
<skip>false</skip>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>ru.tinkoff.invest</groupId>
<artifactId>openapi-java-sdk-java8</artifactId>
<version>0.6-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.30</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.7.30</version>
</dependency>
<dependency>
<groupId>org.reactivestreams</groupId>
<artifactId>reactive-streams</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>io.reactivex.rxjava3</groupId>
<artifactId>rxjava</artifactId>
<version>3.0.9</version>
</dependency>
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>13.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
Простите, но где вы взяли
<dependency> <groupId>ru.tinkoff.invest</groupId> <artifactId>openapi-java-sdk-java8</artifactId> <version>0.6-SNAPSHOT</version> </dependency>
Если тут https://mvnrepository.com/artifact/ru.tinkoff.invest/openapi-java-sdk-java8 есть только 0.5
Здесь https://jitpack.io/#TinkoffCreditSystems/invest-openapi-java-sdk/v0.5 тоже только 0.5 вижу.
Думаю исправление пома решит вашу проблему.
Не сразу увидел, что это пом опенапи.
Подучите работу с мавен. Вы совсем не поняли, как он работает!
Попробуйте своему проекту следующий пом:
`
4.0.0
<groupId>groupId</groupId>
<artifactId>BrokersAnalytics</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<java.version>11</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<org.projectlombok.version>1.18.16</org.projectlombok.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<release>${java.version}</release>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${org.projectlombok.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
<!--Tinkoff Api-->
<dependency>
<groupId>com.github.TinkoffCreditSystems.invest-openapi-java-sdk</groupId>
<artifactId>openapi-java-sdk-core</artifactId>
<version>v0.5</version>
</dependency>
<dependency>
<groupId>com.github.TinkoffCreditSystems.invest-openapi-java-sdk</groupId>
<artifactId>openapi-java-sdk-java8</artifactId>
<version>v0.5</version>
</dependency>
<dependency>
<groupId>com.github.TinkoffCreditSystems.invest-openapi-java-sdk</groupId>
<artifactId>openapi-java-sdk-example</artifactId>
<version>v0.5</version>
</dependency>
</dependencies>
`
Огромная благодарность за помощь! Изменил только версию java на 1.8 (11 не устанавливал).
Иду учить матчасть по maven