Ankündigung

Einklappen
Keine Ankündigung bisher.

kdevice.xml UTF-8 Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    kdevice.xml UTF-8 Problem

    Fehler beim laden der .kdevice.xml Datei.
    • Betriebssystem Windows 7 64Bit, 64 Bit und 32 Bit Version der Konekting Suite getest.
    • .kdevice.xml mit Notepadd++ angelegt
    Wo liegt der Fehler?

    Code:
    KONNEKTING Suite - Version 1.0.0-BETA4 Build 2016-10-10_18-18-18
    Betriebssystem: Windows 7
    KNX Verbindung: IP-Router: 1.0.254@224.0.23.12/wlan0
    Fehler beim Hinzufügen eines Gerätes.
    javax.xml.bind.UnmarshalException
     - with linked exception:
    [com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Ungültiges Byte 1 von 1-Byte-UTF-8-Sequenz.]
        at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:246)
        at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:214)
        at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:157)
        at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:162)
        at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:171)
        at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:189)
        at de.konnekting.xml.konnektingdevice.v0.KonnektingDeviceXmlService.unmarshal(KonnektingDeviceXmlService.java:87)
        at de.konnekting.xml.konnektingdevice.v0.KonnektingDeviceXmlService.readConfiguration(KonnektingDeviceXmlService.java:102)
        at de.konnekting.deviceconfig.DeviceConfigContainer.<init>(DeviceConfigContainer.java:77)
        at de.konnekting.suite.Main.addDeviceButtonActionPerformed(Main.java:699)
        at de.konnekting.suite.Main.access$1000(Main.java:77)
        at de.konnekting.suite.Main$8.actionPerformed(Main.java:443)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
        at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
        at java.awt.Component.processMouseEvent(Component.java:6533)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
        at java.awt.Component.processEvent(Component.java:6298)
        at java.awt.Container.processEvent(Container.java:2236)
        at java.awt.Component.dispatchEventImpl(Component.java:4889)
        at java.awt.Container.dispatchEventImpl(Container.java:2294)
        at java.awt.Component.dispatchEvent(Component.java:4711)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
        at java.awt.Container.dispatchEventImpl(Container.java:2280)
        at java.awt.Window.dispatchEventImpl(Window.java:2746)
        at java.awt.Component.dispatchEvent(Component.java:4711)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
        at java.awt.EventQueue.access$500(EventQueue.java:97)
        at java.awt.EventQueue$3.run(EventQueue.java:709)
        at java.awt.EventQueue$3.run(EventQueue.java:703)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
        at java.awt.EventQueue$4.run(EventQueue.java:731)
        at java.awt.EventQueue$4.run(EventQueue.java:729)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
    Caused by: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Ungültiges Byte 1 von 1-Byte-UTF-8-Sequenz.
        at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:701)
        at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:567)
        at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1896)
        at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.arrangeCapacity(XMLEntityScanner.java:1761)
        at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipString(XMLEntityScanner.java:1799)
        at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:156)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:812)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
        at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:243)
        ... 48 more
    Gruß
    Lapheus

    #2
    Ohne XML File dazu kann ich's nicht sagen. Irgendwo hast du wohl ein Zeichen falsch das nicht UTF-8 entspricht.
    Hast du in Notepad++ das Encoding auf UTF-8 eingestellt?

    Kommentar


      #3
      [update]
      hatte mich getäuscht, deshlab beitrag wieder entfernt.

      Warte auf die .kdevice.xml für die Analyse.

      Kommentar


        #4
        Hallo Alex,

        ich habe hier die xml Datei her.

        Füge hier mal den Screenshoot aus Notepad++ ein.

        UTF8-Notepad.png

        Gruß
        Lapheus

        Kommentar


          #5
          Habe genau dieses Prozedere gerade nochmal getestet. Funktioniert.

          Code:
          <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
          <KonnektingDevice xmlns="http://konnekting.de/xml/KonnektingDevice/v0">
          
              <Device ManufacturerId="57005" DeviceId="3" Revision="0">
          
                  <ManufacturerName>KONNEKTING</ManufacturerName>
                  <DeviceName>SimpleSensor</DeviceName>
          
                  <Parameters>
                      <ParameterGroup Name="Temperatur" Id="0">
                          <Parameter Id="0" IdName="tempPollingTime">
                              <Description>Cycle [s]</Description>
                              <Value Type="uint32" Default="0000001E" Options="" Min="00000000" Max="000FFFFF"/>
                          </Parameter>
                      </ParameterGroup>
                  </Parameters>
          
                  <CommObjects>
                      <CommObject Id="0" IdName="tempValue">
                          <Name>Temperature</Name>
                          <Function>Value</Function>
                          <DataPointType>9.001</DataPointType>
                          <Flags>52</Flags>
                      </CommObject>
                  </CommObjects>
          
              </Device>
          </KonnektingDevice>
          test.png

          Kleiner Tipp:

          Die Datei sollte vielleicht nicht nur ".kdevice.xml" (das ist die reine Dateiendung), sondern vielleicht "meinsensor.kdevice.xml" (Dateiname+Endung) heißen. Aber das sollte nicht zwingend die Ursache sein.

          Kommentar


            #6
            Hatte das zuhause in mehreren Varianten getestet. Funktioniert nicht.
            Habe da keine weiteren Ideen mehr.

            Habe jetzt auf meinem Arbeits-PC mal Konnekting gestartet.
            Dort funktioniert es auch nicht, nur der Fehler ist ein anderer:

            Code:
            Fehler beim Hinzufügen eines Gerätes.
            javax.xml.bind.UnmarshalException
             - with linked exception:
            [org.xml.sax.SAXParseException; systemId: file:/C:/Users/<Benutzername>/Documents/#Konnekting/OneWire/OneWire.kdevice.xml; lineNumber: 1; columnNumber: 1; Content ist nicht zulässig in Prolog.]
                at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(AbstractUnmarshallerImpl.java:335)
                at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(UnmarshallerImpl.java:563)
                at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:249)
                at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:214)
                at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:157)
                at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:162)
                at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:171)
                at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:189)
                at de.konnekting.xml.konnektingdevice.v0.KonnektingDeviceXmlService.unmarshal(KonnektingDeviceXmlService.java:87)
                at de.konnekting.xml.konnektingdevice.v0.KonnektingDeviceXmlService.readConfiguration(KonnektingDeviceXmlService.java:102)
                at de.konnekting.deviceconfig.DeviceConfigContainer.<init>(DeviceConfigContainer.java:77)
                at de.konnekting.suite.Main.addDeviceButtonActionPerformed(Main.java:699)
                at de.konnekting.suite.Main.access$1000(Main.java:77)
                at de.konnekting.suite.Main$8.actionPerformed(Main.java:443)
                at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
                at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
                at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
                at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
                at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
                at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
                at java.awt.Component.processMouseEvent(Component.java:6533)
                at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
                at java.awt.Component.processEvent(Component.java:6298)
                at java.awt.Container.processEvent(Container.java:2236)
                at java.awt.Component.dispatchEventImpl(Component.java:4889)
                at java.awt.Container.dispatchEventImpl(Container.java:2294)
                at java.awt.Component.dispatchEvent(Component.java:4711)
                at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
                at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
                at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
                at java.awt.Container.dispatchEventImpl(Container.java:2280)
                at java.awt.Window.dispatchEventImpl(Window.java:2746)
                at java.awt.Component.dispatchEvent(Component.java:4711)
                at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
                at java.awt.EventQueue.access$500(EventQueue.java:97)
                at java.awt.EventQueue$3.run(EventQueue.java:709)
                at java.awt.EventQueue$3.run(EventQueue.java:703)
                at java.security.AccessController.doPrivileged(Native Method)
                at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
                at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
                at java.awt.EventQueue$4.run(EventQueue.java:731)
                at java.awt.EventQueue$4.run(EventQueue.java:729)
                at java.security.AccessController.doPrivileged(Native Method)
                at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
                at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
                at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
                at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
                at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
                at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
                at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
                at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
            Caused by: org.xml.sax.SAXParseException; systemId: file:/C:/Users/<Benutzername>/Documents/#Konnekting/OneWire/OneWire.kdevice.xml; lineNumber: 1; columnNumber: 1; Content ist nicht zulässig in Prolog.
                at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
                at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
                at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
                at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
                at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1465)
                at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:999)
                at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
                at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:118)
                at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:504)
                at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
                at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
                at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
                at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
                at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
                at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:243)
                ... 48 more
            Gleiche XML wie von Dir angegeben.

            Vorschlag für die ".kdevice.xml": In der Doku als "<Dateiname>.kdevice.xml" bezeichnen.

            Gruß
            Lapheus

            Kommentar


              #7
              Schick mir die XML File mal per Email an info[at]konnekting.de.

              Kommentar


                #8
                Zitat von Lapheus Beitrag anzeigen
                Vorschlag für die ".kdevice.xml": In der Doku als "<Dateiname>.kdevice.xml" bezeichnen.
                Bin verwirrt. Wo fehlt denn der Dateiname? Ursprung der Datei ist hier: https://github.com/Adminius/Konnekti...or.kdevice.xml



                Kommentar


                  #9
                  Also, ich habe jetzt diese Datei: https://knx-user-forum.de/forum/proj...21#post1182321
                  und diese: https://knx-user-forum.de/forum/öffentlicher-bereich/knx-eib-forum/diy-do-it-yourself/1064036-arduino-am-knx-vs-konnekting#post1064036
                  probiert. Ich kann beide importieren. Die Dateiname war: "OneWire.kdevice.xml". Gespeichert mithilfe von Notepad++ in UTF-8

                  Auch die von GitHub geht problemlos.

                  Kommentar


                    #10
                    Zitat von tuxedo Beitrag anzeigen
                    Bin verwirrt. Wo fehlt denn der Dateiname?
                    Habe das hier und hier gelesen. Muss jetzt aber bei nochmaligem lesen des Konnekting Suite Artikels gestehen, das dort "Gerätedefinitionsdatei mit dem Suffix “.kdevice.xml”" steht. Das Suffix habe ich nicht als solches gelesen. An der Stelle fände ich "In der Gerätedefinitionsdatei “<Devicename>.kdevice.xml” ist beschrieben..." eindeutiger. Im anderen Artikel kann man, als Ahnungsloser, schon dazu kommen das die Datei ".kdevice.xml" ein Eigenname ist und immer so erstellt werden muss.
                    Aber auch da kann man wieder drüber diskutieren. Ich habe versucht mit den vorhandenen Dokumentationen mich einzuarbeiten, was zu dem aktuellen Ergebnis geführt hat. Somit kann es schon anders interpretiert werden.

                    Zu meinem Ursprungsproblem:

                    Habe jetzt Zuhause Windows 7 komplett neu installiert (das war aus anderen Gründen eh fällig).
                    Ich habe jetzt den gleichen Fehler wie in Post #6 angegeben.

                    Habe bei meiner Suche nach Lösungen diesen schon älteren Artikel gefunden. Dort wird auch beschrieben das bei einer Neuinstallation der dortigen Java Anwendung die Fehlermeldung kommt. Kann es also damit zusammenhängen, das bei meinen beiden Systemen eine komplette Neuinstallation vorliegt?

                    Alex ich kann Dir gerne noch einmal das XML File schicken, glaube aber nicht das es da dran liegt.
                    Gruß
                    Lapheus

                    Kommentar


                      #11
                      Danke für das Feedback bzgl. Doku. Ich werde das anpassen.

                      Das mit dem Encoding erscheint mir nach wie vor seltsam. Schick mir mal bitte die Datei (info[at]konnekting.de) Zippe sie vorher bitte (ZIP, kein RAR o.ä.).

                      Ob Neuinstallation oder nicht ist eigentlich egal. Die "Suite" muss man ja auch nicht installieren, und sie bringt ihr eigenes Java mit. Es gibt also auch keine Konflikte mit bereits bestehenden Java-Installationen auf deinem System.

                      Ich hoffe ich kann mit deiner File den Fehler reproduzieren.

                      Kommentar


                        #12
                        ZIP-File per E-Mail verschickt.
                        Gruß
                        Lapheus

                        Kommentar


                          #13
                          Email habe ich bekommen, File konnte ich aber fehlerfrei laden....

                          simplesensor_suite.png

                          Mit der File ist also alles in Ordnung.

                          Welchen Virenscanner hast du installiert? Ist der auf allen Rechnern gleich?

                          Kommentar


                            #14
                            Probier mal in Notepad++ unter "Kodierung" auf "UTF-8 ohne BOM" zu stellen.... Speichern und dann nochmal in der Suite versuchen diese Version der Datei zu öffnen.

                            Vgl. https://simonstamm.de/kodierung-utf-8-ohne-bom/ und https://stackoverflow.com/questions/...owed-in-prolog

                            Interessant ist, dass meine Suite auf meinem Windows10 damit klar kommt. *seltsam*
                            Zuletzt geändert von tuxedo; 22.01.2018, 14:26.

                            Kommentar


                              #15
                              Fehler gefunden:

                              Der Projektordner liegt bei mir unter D:\#Konnekting und darin dann das Projekt "OneWire".

                              Das "#"-Zeichen mag die Suite wohl nicht. Als ich es gelöscht habe ging es. Das #-Zeichen nutze ich um die Ordner die ich aktuell viel benutze an den Anfang zu holen.
                              Das ist die erste Anwendung die damit Probleme hatte.

                              Gruß
                              Lapheus

                              Kommentar

                              Lädt...
                              X