Tinkoff/invest-openapi-java-sdk

Проблема с подключением библиотек

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