Ошибки в классах-оболочках, созданных Web3j: «Невозможно найти символ: class LinkReference» и неправильное имя пакета.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Ошибки в классах-оболочках, созданных Web3j: «Невозможно найти символ: class LinkReference» и неправильное имя пакета.

Сообщение Anonymous »

Тело:
Я работаю над проектом Spring Boot, который взаимодействует со смарт-контрактами Ethereum. Я использую Web3j для компиляции контрактов Solidity и создания ABI, двоичных файлов и классов-оболочек Java. Однако сгенерированные классы-оболочки содержат следующие проблемы:
  • Ошибка компиляции:

    Код: Выделить всё

    /home/abdulmueedshahbaz/springboot/eth/eth/src/main/java/generated/com/zuehlke/blockchain/model/HelloWorld.java:204:51
    java: cannot find symbol
    symbol:   class LinkReference
    location:  class org.web3j.tx.Contract
    
    Эта ошибка предполагает, что класс LinkReference отсутствует в сгенерированном коде.
  • Неверное имя пакета:

    Сгенерированные классы-оболочки имеют неправильное имя пакета, что противоречит структуре моего проекта и препятствует правильному импорту.
    < /li>
Из-за этих проблем я не могу запустить мое приложение Spring Boot.
Моя настройка:
Зависимости (Maven):

Код: Выделить всё


org.springframework.boot
spring-boot-starter


org.web3j
core
5.0.0


org.web3j
crypto
5.0.0


org.web3j
utils
5.0.0


org.web3j
abi
5.0.0


com.fasterxml.jackson.core
jackson-databind
2.18.2


Сборка плагинов (Maven):

Код: Выделить всё



org.springframework.boot
spring-boot-maven-plugin


org.web3j
web3j-maven-plugin
4.12.3

com.zuehlke.blockchain.model
src/main/java/generated
true
java,bin

src/main/resources/solidity/

**/*.sol



src/main/java/generated
src/bin/generated
src/abi/generated



HelloWorld


mortal



dep=../dependencies





Шаги, которые я выполнил:
  • Добавил файлы Solidity в src/main/resources/solidity/ .
  • Запустил mvn web3j:generate-sources, чтобы сгенерировать классы ABI, двоичные файлы и оболочки.
  • Попытка сборки и запуска приложение.
Проблемы:
  • Класс-оболочка HelloWorld.java ссылается на LinkReference класс, которого, похоже, не существует в org.web3j.tx.Contract.
  • Сгенерированные классы-оболочки Java имеют имя пакета (

    Код: Выделить всё

    com.zuehlke.blockchain.model
    ), который не соответствует моей предполагаемой структуре проекта.
Вопрос:
  • Как устранить ошибку отсутствия LinkReference в классах-оболочках, созданных Web3j?
  • Есть ли способ гарантировать, что во время оболочки используется правильное имя пакета генерация классов?
  • Известны ли какие-либо проблемы совместимости между контрактами Web3j (v5.0.0) и Solidity?
Будем очень признательны за любые рекомендации!


Подробнее здесь: https://stackoverflow.com/questions/793 ... linkrefere
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»