« Flensburg is in Germany | Main | Portraits in Serie »

Samstag, Juli 02, 2011

Watch your packages

Dieser Mist hat mich einen schönen ruhigen Vormittag gekostet, ohne dass ich vorangekommen wäre - grrrh:

15:27:00.763 [ERROR] [mbopac] Failed to create an instance of 'de.tixus.mb.opac.client.MbopacMainView' via deferred binding

java.lang.RuntimeException: Deferred binding failed for 'de.tixus.mb.opac.client.PersistenceService' (did you forget to inherit a required module?)

at com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:53)

at com.google.gwt.core.client.GWT.create(GWT.java:98)

at de.tixus.mb.opac.client.MbopacMainView.<init>(MbopacMainView.java:57)

Und was ist das PROBLEM, gwt?

Erst meinte ich oberschlau, dass man auf die Packages achten muss:

Alles was der Client benötigt und kennen muss, muss auch im client-zugreifbaren package definiert sein; der Pfad dafür wird hier gesetzt.

  Application.gwt.xml
 <!-- Specify the paths for translatable code --> 

<source path='client' /> <source path='shared' />

Dazu gehört alles, was im (Client-)Interface PersistenceService referenziert wird:

package de.tixus.mb.opac.client;
@RemoteServiceRelativePath("greet")
public interface PersistenceService extends RemoteService {
...
MediaItem lend(String mediaNumber, Person person, Boolean isOverride) throws MediaItemAlreadyLentException;
...
  

Das war leider doch nicht das Problem, sondern der fehlende Default-Constructor in einer Exception! Den habe ich versehentlich überschrieben, als ich beim Refactoring einen neuen Constructor brauchte:

  public class MediaItemAlreadyLentException extends RuntimeException {

	private Person person = null;

	private static final long serialVersionUID = 1L;

	public MediaItemAlreadyLentException() {
	}

	public MediaItemAlreadyLentException(final Person person) {
		this.person = person;
	}

}

Die OPAC-Anwendung nimmt jedoch Formen an: Nun kann man bereits den Katalog durchsuchen, Medien ausleihen und zurückgeben. Es fehlt zum ersten Start noch die Suche nach dem Kunden eines ausgeliehenen Mediums sowie eine Einschränkung der Suche auf noch nie ausgeliehene Titel für einen Kunden - man will schliesslich immer mal was Neues lesen.

Erstellt von tixus um 5:39 PM Kategorien: Software + Java
Powered by
Thingamablog 1.1b6