Page 1 of 1

Definition für den Pfad zu der config.xml

PostPosted: Thu Dec 06, 2012 12:04 pm
by jblott
Hallo,

in meinem JVx-Projekt bekomme ich folgende Fehlermeldung, wenn ich versuche, mich einzuloggen:
Code: Select all
Exception in thread "AWT-EventQueue-0" : Invalid configuration file: /home/blottjo/workspace/CODE/apps/firstapp/libs/rad/apps/firstapp/config.xml

Das Traceback ist:
Code: Select all
java.lang.Exception: Invalid configuration file: /home/blottjo/workspace/CODE/apps/firstapp/libs/rad/apps/firstapp/config.xml
   at com.sibvisions.rad.server.config.UpToDateConfigFile.update(Unknown Source)
   at com.sibvisions.rad.server.config.UpToDateConfigFile.<init>(Unknown Source)
   at com.sibvisions.rad.server.config.Zone.<init>(Unknown Source)
   at com.sibvisions.rad.server.config.ApplicationZone.<init>(Unknown Source)
   at com.sibvisions.rad.server.config.Configuration.getApplicationZone(Unknown Source)
   at com.sibvisions.rad.server.MasterSession.<init>(Unknown Source)
   at com.sibvisions.rad.server.DefaultSessionManager.createSession(Unknown Source)
   at com.sibvisions.rad.server.Server.createSessionIntern(Unknown Source)
   at com.sibvisions.rad.server.Server.createSession(Unknown Source)
   at com.sibvisions.rad.server.DirectServerConnection.open(Unknown Source)
   at javax.rad.remote.MasterConnection.open(Unknown Source)
   at com.sibvisions.rad.application.Application.doLogin(Unknown Source)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:616)
   at javax.rad.util.EventHandler$ListenerHandler.dispatchEvent(Unknown Source)
   at javax.rad.util.EventHandler.dispatchEvent(Unknown Source)
   at javax.rad.util.RuntimeEventHandler.dispatchEvent(Unknown Source)
   at com.sibvisions.rad.ui.swing.impl.component.SwingAbstractButton.actionPerformed(Unknown Source)
   at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
   at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
   at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
   at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
   at javax.swing.AbstractButton.doClick(AbstractButton.java:374)
   at javax.swing.plaf.basic.BasicRootPaneUI$Actions.actionPerformed(BasicRootPaneUI.java:208)
   at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1660)
   at javax.swing.JComponent.processKeyBinding(JComponent.java:2852)
   at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:285)
   at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:234)
   at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2929)
   at javax.swing.JComponent.processKeyBindings(JComponent.java:2909)
   at javax.swing.JComponent.processKeyEvent(JComponent.java:2815)
   at java.awt.Component.processEvent(Component.java:6166)
   at java.awt.Container.processEvent(Container.java:2045)
   at java.awt.Component.dispatchEventImpl(Component.java:4750)
   at java.awt.Container.dispatchEventImpl(Container.java:2103)
   at java.awt.Component.dispatchEvent(Component.java:4576)
   at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1895)
   at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:769)
   at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1045)
   at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:912)
   at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:734)
   at java.awt.Component.dispatchEventImpl(Component.java:4620)
   at java.awt.Container.dispatchEventImpl(Container.java:2103)
   at java.awt.Window.dispatchEventImpl(Window.java:2518)
   at java.awt.Component.dispatchEvent(Component.java:4576)
   at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:672)
   at java.awt.EventQueue.access$400(EventQueue.java:96)
   at java.awt.EventQueue$2.run(EventQueue.java:631)
   at java.awt.EventQueue$2.run(EventQueue.java:629)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
   at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116)
   at java.awt.EventQueue$3.run(EventQueue.java:645)
   at java.awt.EventQueue$3.run(EventQueue.java:643)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:642)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)


Für mich ist jetzt die Frage, woher JVx die Information bekommt, in welchem Pfad es nach der config.xml sucht.

Kann mir da jemand helfen?

Gruß und Danke

Re: Definition für den Pfad zu der config.xml

PostPosted: Thu Dec 06, 2012 12:18 pm
by Support@SIB
Gesucht wird wie folgt:

Ermittlung des Verzeichnisses in dem die Klasse com.sibvisions.rad.application.server.config.Configuration zu finden ist. Ausgehend von diesem wird die Verzeichnis Hierarchie nach oben durchsucht bis ein rad Verzeichnis gefunden wurde. Dann werden rad/apps/<appname>/config.xml und /rad/server/config.xml verwendet.

Optional können Sie auch die System Property: Configuration.basedir setzen. Der Wert sollte den absoluten Pfad des parent Verzeichnisses (das den rad Ordner enthält) gesetzt werden. Mit Eclipse ganz einfach:

-DConfiguration.basedir=${workspace_loc:"Ihr Eclipse Projektname"}

in der Run Configuration als VM argument festlegen.

Re: Definition für den Pfad zu der config.xml

PostPosted: Thu Dec 06, 2012 12:23 pm
by Support@SIB
Ihre Verzeichnisstruktur lässt vermuten das Sie die firstapp downgeloadet haben und mit Eclipse importiert haben?
Falls Sie beim Import die Checkbox für Übernahme in den Workspace angeklickt haben, so wird die ursprüngliche Verzeichnisstruktur aufgebrochen und die config.xml wird nicht am gewohnten Ort gefunden.

Sie können den Import erneut durchführen aber das Projekt nicht in den Workspace kopieren. Dann sollte der Start problemlos funktionieren!

Re: Definition für den Pfad zu der config.xml

PostPosted: Thu Dec 06, 2012 2:23 pm
by jblott
Danke für die schnelle Antwort! Das hat schonmal geholfen!

Gibt es denn eine Möglichkeit, den relativen Pfad in der JVx nach der Config sucht (rad/apps/<appname>/config.xml und /rad/server/config.xml) zu ändern? Dann könnten wir eine eigene Verzeichnisstruktur verwenden.

Re: Definition für den Pfad zu der config.xml

PostPosted: Thu Dec 06, 2012 2:43 pm
by Support@SIB
Die Verzeichnisstruktur ist bewusst gewählt, da z.B. ein Server mehrere Applikationen verwalten kann. Auch das die Struktur für alle JVx Applikationen ident ist hat sich bewährt, weil jeder Entwickler am selben Ort danach sucht.

Wenn eine Applikation am Applicationserver läuft gibt es keine Verzeichnis Unklarheiten, lediglich während der Entwicklung kann es passieren, sofern die Verzeichnisstruktur nicht wie empfohlen aufgebaut wird.

Sie können gerne einen Feature Request erstellen in dem Sie ihre gewünschte Lösung genauer beschreiben!