Closed dh3wr closed 7 years ago
Wir begrenzen das momentan künstlich auf einen Knoten, mir fällt aber kein Grund ein, warum das erforderlich sein sollte. Von mir aus können wir das ändern. Das würde auch an einigen Stellen zu Vereinfachungen führen, da man nicht mehr zwischen eigenen und fremden Sendern unterscheiden müsste.
Dann machen wir das doch, oder? Dann muss auch das Webinterface angepasst werden. Ich mache ein Issue auf.
Aber als speichern, wo der Sender gerade eingewählt ist, könnten wir schon noch. Zur Info und auch für die Liniendarstellung auf dem Webinterface. Das wird dann quasi Read only.
Ich habe es mal umgebaut, ist bestimmt jetzt alles kaputt.
Das ist im experimental
Branch gepusht, hatte ich vergessen zu erwähnen.
Request URL:http://44.225.164.228:8080/transmitters/db0sda
Request Method:PUT
Status Code:500 Internal Server Error
{"authKey":"test1234","latitude":50.77623,"longitude":6.06937,"power":"0","usage":"PERSONAL","antennaAboveGroundLevel":0,"antennaType":"OMNI","antennaDirection":0,"antennaGainDbi":0,"identificationAddress":1,"timeSlot":"34","ownerNames":["admin"]}
{
"code": 5001,
"name": "Internal Server Error",
"message": "A unknown server-side error occurred while executing the request"
}
14:39:49.754 [grizzly-http-server-0] INFO org.dapnet.core.rest.CustomLoggingFilter - REST PUT Request : User: admin - Path: transmitters/db0sda - Header: {host=[44.225.164.228:8080], connection=[keep-alive], content-length=[247], accept=[application/json, text/plain, */*], origin=[http://localhost:8081], user-agent=[Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36], authorization=[Basic YWRtaW46YWRtaW4=], content-type=[application/json;charset=UTF-8], referer=[http://localhost:8081/], accept-encoding=[gzip, deflate, sdch], accept-language=[de,en-US;q=0.8,en;q=0.6]} - Entity: {"authKey":"test1234","latitude":50.77623,"longitude":6.06937,"power":"0","usage":"PERSONAL","antennaAboveGroundLevel":0,"antennaType":"OMNI","antennaDirection":0,"antennaGainDbi":0,"identificationAddress":1,"timeSlot":"34","ownerNames":["admin"]}
14:39:49.775 [grizzly-http-server-0] INFO org.dapnet.core.cluster.ClusterManager - Cluster has Quorum
14:39:49.797 [grizzly-http-server-0] ERROR org.dapnet.core.rest.exceptionHandling.ExceptionHandler - PUT transmitters/db0sda - Internal Server Error (5001)
javax.validation.ValidationException: HV000090: Unable to access getNode.
at org.hibernate.validator.internal.util.ReflectionHelper.getValue(ReflectionHelper.java:252) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
at org.hibernate.validator.internal.engine.ValidatorImpl.getBeanMemberValue(ValidatorImpl.java:1750) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
at org.hibernate.validator.internal.engine.ValidatorImpl.validateMetaConstraint(ValidatorImpl.java:614) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraint(ValidatorImpl.java:583) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForSingleDefaultGroupElement(ValidatorImpl.java:527) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:495) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:460) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:410) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
at org.hibernate.validator.internal.engine.ValidatorImpl.validate(ValidatorImpl.java:207) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
at org.dapnet.core.rest.resources.AbstractResource.validateObject(AbstractResource.java:120) ~[dapnet-core-1.1.3.6-SNAPSHOT.jar:1.1.3.6-SNAPSHOT]
at org.dapnet.core.rest.resources.AbstractResource.handleObject(AbstractResource.java:147) ~[dapnet-core-1.1.3.6-SNAPSHOT.jar:1.1.3.6-SNAPSHOT]
at org.dapnet.core.rest.resources.TransmitterResource.putTransmitter(TransmitterResource.java:97) ~[dapnet-core-1.1.3.6-SNAPSHOT.jar:1.1.3.6-SNAPSHOT]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_131]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_131]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_131]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_131]
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) ~[jersey-server-2.25.1.jar:?]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) ~[jersey-server-2.25.1.jar:?]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) ~[jersey-server-2.25.1.jar:?]
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160) ~[jersey-server-2.25.1.jar:?]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) ~[jersey-server-2.25.1.jar:?]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) ~[jersey-server-2.25.1.jar:?]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) ~[jersey-server-2.25.1.jar:?]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) ~[jersey-server-2.25.1.jar:?]
at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326) [jersey-server-2.25.1.jar:?]
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) [jersey-common-2.25.1.jar:?]
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) [jersey-common-2.25.1.jar:?]
at org.glassfish.jersey.internal.Errors.process(Errors.java:315) [jersey-common-2.25.1.jar:?]
at org.glassfish.jersey.internal.Errors.process(Errors.java:297) [jersey-common-2.25.1.jar:?]
at org.glassfish.jersey.internal.Errors.process(Errors.java:267) [jersey-common-2.25.1.jar:?]
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) [jersey-common-2.25.1.jar:?]
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) [jersey-server-2.25.1.jar:?]
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) [jersey-server-2.25.1.jar:?]
at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:384) [jersey-container-grizzly2-http-2.25.1.jar:?]
at org.glassfish.grizzly.http.server.HttpHandler$1.run(HttpHandler.java:224) [grizzly-http-server-2.3.28.jar:2.3.28]
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:593) [grizzly-framework-2.3.28.jar:2.3.28]
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:573) [grizzly-framework-2.3.28.jar:2.3.28]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_131]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_131]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_131]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_131]
at org.hibernate.validator.internal.util.ReflectionHelper.getValue(ReflectionHelper.java:246) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
... 37 more
Caused by: java.lang.NullPointerException
at org.dapnet.core.model.Transmitter.getNode(Transmitter.java:478) ~[dapnet-core-1.1.3.6-SNAPSHOT.jar:1.1.3.6-SNAPSHOT]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_131]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_131]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_131]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_131]
at org.hibernate.validator.internal.util.ReflectionHelper.getValue(ReflectionHelper.java:246) ~[hibernate-validator-5.3.5.Final.jar:5.3.5.Final]
... 37 more
14:39:49.806 [grizzly-http-server-0] ERROR org.dapnet.core.rest.CustomLoggingFilter - REST PUT Response : Header: {Content-Type=[application/json], Access-Control-Allow-Origin=[*], Access-Control-Allow-Headers=[Origin, X-Requested-With, Content-Type, Accept, Key, Authorization], Access-Control-Allow-Methods=[GET, POST, PUT, DELETE]} - Entity: { "code": 5001, "name": "Internal Server Error", "message": "A unknown server-side error occurred while executing the request"}
Zur Zeit geht alles. Können wir das zumachen?
Kann sein, ich bin mir nicht sicher, ob das nur ein temporäres Problem war oder was gefixt wurde. Kann man ja sonst auch wieder aufmachen.
Kann zu, geht alles
Mal so ne Idee: Eigentlich könnten sich die Sender auch bei einem beliebigen Node anmelden, oder? Macht natürlich Konsistenz-Probleme, wenn sich einer 2. Mal anmeldet usw. Nur mal so als Idee. Der Unipager könnte dann eine RoundRobin-Liste von Nodes haben und wenn einer ausfällt, wird der nächste probiert. Prio: C bis D