Sobald der CoAP-Server gestartet ist, muss ich dynamisch neue Ressourcen hinzufügen. Aber ich muss den Server anhalten und neu starten, um auf neue Ressourcen zugreifen zu können. Ich nehme an, dass neue Ressourcen wie das Hinzufügen eines neuen HTTP-Servlets zum bereits gestarteten HTTP-Server hinzugefügt werden.Neue Ressourcen dynamisch hinzufügen - CoAP
Hier habe ich Quellcode hinzugefügt, der zum Hinzufügen von dynamischen Ressourcen verwendet wird. Wenn ich etwas vermisse, lass es mich wissen.
private static CoapServer server;
public CoAPEventAdapter(InputEventAdapterConfiguration eventAdapterConfiguration,
Map<String, String> globalProperties) {
this.eventAdapterConfiguration = eventAdapterConfiguration;
this.globalProperties = globalProperties;
if(server == null){
server = new CoapServer();
server.start();
}
}
@Override
public void connect() {
registerDynamicEndpoint(eventAdapterConfiguration.getName());
isConnected = true;
}
private void registerDynamicEndpoint(String adapterName) {
server.stop();
server.add(new HelloWorldResource(adapterName));
server.start();
}
class HelloWorldResource extends CoapResource {
public HelloWorldResource(String resourceName) {
// set resource identifier
super(resourceName);
// set display name
getAttributes().setTitle("Hello-World Resource");
}
@Override
public void handleGET(CoapExchange exchange) {
// respond to the request
exchange.respond("Hello World!");
}
}