Я пытаюсь создать сервер начальной загрузки LWM2M, используя Eclipse Leshan 2.x и Spring Boot 3.x (Java 21). Я сталкиваюсь с серьезными проблемами из-за очевидного отсутствия актуальной документации и официальных примеров для API 2.x, особенно в отношении функциональности сервера Bootstrap. Руководства «Начало работы» и многие онлайн -ресурсы по -прежнему относятся к Leshan 1.x, который имеет совершенно разные API и структуру пакетов. < /P>
Моя цель - создать базовый сервер начальной загрузки Leshan, который может: < /p>
Слушание для LWM2M Запрос Bootstrap (COAP и COAP). /> В идеале хранит информацию о безопасности (например, учетные данные PSK) в InmemorySecurityStore для первоначального тестирования.
Я пытался построить Bootstraplwm2mserver, используя CaliforniumBootStrapSerVerbuilder и управление зависимостями через Maven. Тем не менее, я постоянно сталкиваюсь с ошибками для различных классов Leshan, даже после тщательной проверки моего pom.xml и пробовать разные вехи.
oss-milestones
Eclipse Leshan Milestones
https://repo.eclipse.org/content/reposi ... ilestones/
false
org.springframework.boot
spring-boot-starter
org.projectlombok
lombok
true
org.eclipse.leshan
leshan-lwm2m-core
${leshan.version}
org.eclipse.leshan
leshan-lwm2m-server
${leshan.version}
org.eclipse.leshan
leshan-tl-cf-bsserver-coap
${leshan.version}
org.eclipse.leshan
leshan-tl-cf-server-coap
${leshan.version}
org.eclipse.leshan
leshan-server-core-demo
${leshan.version}
org.springframework.boot
spring-boot-starter-test
test
org.apache.maven.plugins
maven-compiler-plugin
org.projectlombok
lombok
org.springframework.boot
spring-boot-maven-plugin
org.projectlombok
lombok
< /code>
Специфический Leshanbootstrapconfig.java class (где возникают ошибки): < /p>
package fr.akensys.leshan_bootstrap_server.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.eclipse.leshan.core.Identity; // This one resolves
import org.eclipse.leshan.core.model.ObjectModel; // This resolves
import org.eclipse.leshan.core.model.ObjectLoader; // This resolves
import org.eclipse.leshan.core.node.LwM2mPath; // This resolves
import org.eclipse.leshan.core.security.SecurityInfo; // *** CANNOT BE RESOLVED ***
import org.eclipse.leshan.server.bootstrap.BootstrapLwM2mServer; // *** CANNOT BE RESOLVED ***
import org.eclipse.leshan.server.bootstrap.BootstrapLwM2mServerBuilder; // *** CANNOT BE RESOLVED ***
import org.eclipse.leshan.server.bootstrap.DefaultBootstrapSession; // This resolves
import org.eclipse.leshan.server.bootstrap.DefaultBootstrapSessionManager; // This resolves
import org.eclipse.leshan.server.bootstrap.DefaultLwM2mBootstrapModelProvider; // *** CANNOT BE RESOLVED ***
import org.eclipse.leshan.server.bootstrap.LwM2mBootstrapModelProvider; // *** CANNOT BE RESOLVED ***
import org.eclipse.leshan.server.bootstrap.PublicBootstrapSession; // *** CANNOT BE RESOLVED ***
import org.eclipse.leshan.server.bootstrap.model.BootstrapConfiguration; // *** CANNOT BE RESOLVED ***
import org.eclipse.leshan.server.bootstrap.model.BootstrapServerConfig; // *** CANNOT BE RESOLVED ***
import org.eclipse.leshan.server.bootstrap.model.LwM2mServerConfig; // *** CANNOT BE RESOLVED ***
import org.eclipse.leshan.server.californium.bootstrap.CaliforniumBootstrapServerBuilder; // *** CANNOT BE RESOLVED ***
import org.eclipse.leshan.server.californium.bootstrap.CaliforniumBootstrapServerEndpointsProvider; // *** CANNOT BE RESOLVED ***
import org.eclipse.leshan.server.californium.bootstrap.DefaultBootstrapServerEndpointsManager; // *** CANNOT BE RESOLVED ***
import org.eclipse.leshan.server.security.EditableSecurityStore; // This resolves
import org.eclipse.leshan.server.security.InMemorySecurityStore; // This resolves
// ... (rest of the class code would go here)
@Configuration
public class LeshanBootstrapConfig {
// ... (Beans for BootstrapServer, SecurityStore, etc. would be defined here)
// For example, trying to create the server:
// @Bean
// public BootstrapLwM2mServer createBootstrapServer(
// EditableSecurityStore securityStore,
// LwM2mBootstrapModelProvider modelProvider,
// BootstrapSessionManager sessionManager) {
// CaliforniumBootstrapServerBuilder builder = new CaliforniumBootstrapServerBuilder();
// builder.setSecurityStore(securityStore);
// builder.setBootstrapSessionManager(sessionManager);
// builder.setBootstrapModelProvider(modelProvider);
// // ... more configuration like endpoints
// return builder.build();
// }
}
< /code>
Проблема:
Даже с Leshan.version, установленным 2,0,0-м15 (что, по-видимому, разрешает Leshan-Server-Core-Demo и некоторые другие основные компоненты), многие критические классы для построения сервера Bootstrap (например, SecurityInfo, Bootstraplwm2mserbuilder, Speciative Model-Model и CaliforneStrapser). Разрешенные «ошибки». Это говорит о том, что < /p>
Эти конкретные классы не присутствуют в 2.0.0-M15 модулей Leshan, которые я использую, или они были перемещены /переименованы в способами, которые не очевидны из документации 1.x. Код, который я пытаюсь адаптироваться, предназначен для очень специфической вехой, и API изменился даже между M15 и M17. Bootstraplwm2mserverbuilder, CaliforniumBootStrapServerBuilder и т. Д.) Правильно для данного стабильного/веха 2.x выпуска? Если нет, каковы правильные классы/пакеты? Официальное вики кажется устаревшим для 2.x специфики для начальной загрузки. < /P>
Существуют ли известные проблемы совместимости между вехами Leshan 2.x, которые могут вызвать такие широко распространенные проблемы «не могут быть решены», даже с единой версией? чрезвычайно полезно. Спасибо
Подробнее здесь: https://stackoverflow.com/questions/796 ... spring-boo