EntityBean im GWT-Client

Status
Nicht offen für weitere Antworten.

CeNoRiDeR

Aktives Mitglied
Hallo zusammen,

ich habe folgendes Problem:

Ich habe ein GWT Webprojekt und ein EJB Projekt.

Die GWT-Service Implementierung kann problemlos mit dem EJB kommunizieren und das EJB liefert dem GWT-Service ein List<Mail> Objekt zurück mit ner Liste von den EntityBean Objekten...

Damit ich jetzt die Liste mit einer FlexTable im GWT Client ausgeben kann, suche ich nach einem Weg die Entity Beans auch im Client nutzen zu können.

Momentan bekomm ich folgende Fehlermeldung:

Code:
Removing units with errors
   [ERROR] Errors in 'file:/C:/Netbeans-Workspace/DomainController-war/src/java/org/sr/client/BackendService.java'
      [ERROR] Line 24: No source code is available for type org.sr.db.bean.Domain; did you forget to inherit a required module?
Removing invalidated units
   [WARN] Compilation unit 'file:/C:/Netbeans-Workspace/DomainController-war/src/java/org/sr/client/ServiceProvider.java' is removed due to invalid reference(s):
      [WARN] file:/C:/Netbeans-Workspace/DomainController-war/src/java/org/sr/client/BackendService.java
   [WARN] Compilation unit 'file:/C:/Netbeans-Workspace/DomainController-war/src/java/org/sr/client/modules/LoginModule.java' is removed due to invalid reference(s):
      [WARN] file:/C:/Netbeans-Workspace/DomainController-war/src/java/org/sr/client/ServiceProvider.java
   [WARN] Compilation unit 'file:/C:/Netbeans-Workspace/DomainController-war/src/java/org/sr/client/modules/RegistrationModule.java' is removed due to invalid reference(s):
      [WARN] file:/C:/Netbeans-Workspace/DomainController-war/src/java/org/sr/client/ServiceProvider.java
   [WARN] Compilation unit 'file:/C:/Netbeans-Workspace/DomainController-war/src/java/org/sr/client/MainEntryPoint.java' is removed due to invalid reference(s):
      [WARN] file:/C:/Netbeans-Workspace/DomainController-war/src/java/org/sr/client/ServiceProvider.java
Computing all possible rebind results for 'org.sr.client.MainEntryPoint'
   Rebinding org.sr.client.MainEntryPoint
      Checking rule <generate-with class='com.google.gwt.user.rebind.ui.ImageBundleGenerator'/>
         [ERROR] Unable to find type 'org.sr.client.MainEntryPoint'
            [ERROR] Hint: Previous compiler errors may have made this type unavailable
            [ERROR] Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly
[ERROR] Build failed
C:\Netbeans-Workspace\DomainController\nbproject\build-impl.xml:147: The following error occurred while executing this line:
C:\Netbeans-Workspace\DomainController-war\nbproject\build-gwt.xml:14: Java returned: 1
BUILD FAILED (total time: 9 seconds)

Bedeutet ja das der Client das EntityBean nicht finden kann. Im Internet habe ich folgende Hilfe gefunden:

Hi

GWT needs to be able to see the source of your entities so you need to
include them in the GWT compile. To do this create a module xml file
in the server package that contains a <src ="entityDir"> statement
where entityDir is your directory containing the entity classes. Then
include this module in your main module.

Len
->http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/0bbcb43628c7c705

Leider ist mir die Lösung nicht ganz klar. Kann mir da einer weiter helfen?
Was muss ich genau in die entsprechenden xml files schreiben?

Danke für jede Hilfe!!!
 
GWT kennt die Datei org.sr.db.bean.Domain nicht. Du könntest es ganz einfach testen, indem Du die Beans in das GWT Projekt verschiebst und im Server Projekt eine JEE-Dependancy auf das GWT Projekt machst. Wenn alles wie gewünscht funktioniert, kannst Du Dir ein drittes Projekt machen, wo alle Klassen reinkommen, die sowohl vom GWT Client als auch vom Server verwendet werden. Das muss afaik aber kein GWT Modul sein. Du kannst dafür einfach ein Java Projekt benutzen und musst dann halt den Classpath vom Client und Server anpassen.

Ich würds aber erstmal ohne drittes Projekt testen. Du musst nämlich sicherstellen, dass org.sr.db.bean.Domain nur Klassen verwendet, die der GWT Compiler kennt. Sobald die Klasse irgendwelche Proxies enthält (z.B. durch die Persistenzschicht), dann kann der GWT Compiler damit eh nichts anfangen. In dem Fall kommst Du um DTOs wohl nicht drum herum.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben