2010-11-25 1 views
0

Ich beginne GWT für ein Klassenprojekt zu verwenden und wollte echte Anwendungsfälle für RPC kennen. Also, ich fand dieses Beispiel auf der gleichen Website: Stack Overflow - Simple RPC Use Case Problem (Code Included)GWT-Modul Vererbung und NO-Quellcode zur Laufzeit der Anwendung verfügbar

Warum habe ich dieses Beispiel? weil ich die gleichen Fehler bekam, die der Benutzer auf meinem eigenen Projekt gepostet hatte, und ich beschloss, zu versuchen, seinem Code auf meinem Computer zu folgen, um zu sehen, ob ich wirklich meinen eigenen Fehlern gegenüberstehen könnte.

Also der Punkt ist, dass nach dem die Dateien auf einem Eclipse GWT-Projekt zu kopieren und die App bereitstellen, ich habe diese zwei Fehler auf Laufzeit:

[1 Fehler]

12:14:07.874 [ERROR] [test] Line 17: No source code is available for type com.google.gwt.user.server.rpc.RemoteServiceServlet; did you forget to inherit a required module? 

[ 2n Fehler]

12:42:54.547 [ERROR] [test] Unable to find type 'org.redboffin.worldhug.client.test.Test' 

12:14:09.341 [ERROR] [test] 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 

Also habe ich versucht zu korr ect Test.gwt.xml wie Craig auf dem Post vorgeschlagen. Leider funktioniert diese Lösung nicht, weil ich immer noch dieselben Fehler erhalte. Hier können Sie ein Bild Link (auf Images) meinen Eclipse-Bildschirm:

http://yfrog.com/n7errorgwtj

[1st Fehler] Ich weiß nicht, was passiert ist, weil zum Beispiel in der Datei es dargestellt ist, RemoteServiceServlet wird einige Zeilen vorher importiert (obwohl es nicht gesehen wird). Diese Datei befindet sich im Paket "org.redboffin.worldhug.server.test;"

[2n Fehler] Wenn der Benutzer, der den ersten Thread gepostet hat, kein neues Paket in seinem Projekt "erben" muss, kann ich nicht verstehen, warum ich sie brauche. Wie auch immer, habe ich eine neue Linie vererben man die .gwt.xml Datei:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.0.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/2.0.0/distro-source/core/src/gwt-module.dtd"> 
    <module rename-to='test'> 
    <inherits name="com.google.gwt.user.User" /> 
    <entry-point class="org.redboffin.worldhug.client.test.Test"></entry-point> 
<source path="client" /> 
    <source path="shared" /> 
    <inherits name="org.redboffin.worldhug.client.test.Test" /> 
    </module> 

Und das ist, was ich habe:

Loading inherited module 'org.redboffin.worldhug.client.test.Test' 
    [ERROR] Unable to find 'org/redboffin/worldhug/client/test/Test.gwt.xml' on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source? 

(natürlich es hat nicht kompilieren)

Also ich weiß wirklich nicht was los ist. Bitte, kann jemand etwas Licht zu diesem Thema bringen? Warum funktioniert das nicht? Was mache ich schlecht? Was ist dieser Typ, der bei [2. Fehler] benötigt wird?

Vielen Dank an alle für so weit zu lesen,

Grüße.

Antwort

1

glaube, ich sehe es:

Test.java sollte in der client.test Paket nicht nur client sein, oder alles sollte auf client.Test statt client.test.Test zeigen.

+0

Das war die Sache, so kleines Detail! :) – Irene

0

Ihre Server-Klasse scheint unter dem Paket server.test zu sein, anstatt nur Server, was wahrscheinlich falsch ist. Überprüfen Sie, ob das Mapping in web.xml korrekt auf diese Klasse zeigt.

Ich vermute, dass der eigentliche Fehler wahrscheinlich irgendwo anders ist - ich hätte erwartet, dass es immer noch zu kompilieren.

+0

Ich hatte gerade einen Blick auf das Beispiel schließen und es scheint, dass die Pfade korrekt sind. Aber warum verwenden Sie Code von SO statt der Google-Anleitung? –

+0

Ich habe einige Google-Tutorials ausprobiert und fand sie lange, komplex und nicht klar für jemanden, der kein Experte in dieser Art von Webentwicklung ist. In der Summe habe ich versucht, StockWatcher Beispiel zu folgen, um meine Meinung klar zu machen und nachdem ich alles befolgt habe, hat die App nicht funktioniert. Ich war frustriert und suchte nach etwas Kleinem wie in dem Beispiel, das ich benutzte. Nichtsdestotrotz stehe ich bei meinem eigenen Projekt vor denselben Fehlern. Ich dachte, wenn ich wüsste, wie man diese Fehler in einem kleinen Projekt beheben kann, könnte ich das vielleicht auch bei einem größeren Projekt tun. – Irene

+0

Ich habe das Stockwatcher Tutorial gemacht und fand es ziemlich gut. Sie sollten etwas in jeder Phase des Tutorials und nicht nur am Ende arbeiten. GWT hat mehrere Dateien, die die richtigen Einstellungen haben müssen, damit etwas passieren kann. –

0

(nicht sicher, ob ich „Ihre Frage zu beantworten“ ist oder nicht, versuchen Sie zunächst auf Stack-Überlauf Seite!)

Danke für Ihren Kommentar, Adrian!

Dies ist der Inhalt von "Web.xml“file:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE web-app 
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd"> 

<web-app> 

<!-- Servlets --> 

<servlet> 
    <servlet-name>testServlet</servlet-name> 
    <servlet-class>org.redboffin.worldhug.server.test.TestServiceImpl</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>testServlet</servlet-name> 
    <url-pattern>/worldhug/test/testService</url-pattern> 
</servlet-mapping> 

<!-- Default page to serve --> 
<welcome-file-list> 
    <welcome-file>test.html</welcome-file> 
</welcome-file-list> 
</web-app> 

Es scheint, dass das Servlet-Tag, um meine Augen an die richtige Stelle zeigt: TestServiceImpl.java in der Verpackung ist "org.redboffin.worldhug.server.test" Sie Did ?! bedeuten, dass

Jede andere Idee

Sie wieder Danke :)

+0

Ja, das habe ich gemeint, und ja, es sieht gut aus. Betrachtet man jedoch den zweiten Fehler, würde ich vorschlagen, dass sich Test.java im falschen Paket befindet (oder es im falschen Paket sucht). –

3

Hallo Irene und anderer Web-Wanderer,

Vielleicht ist das eine Doppel-Post auf einer bereits beantwortet Post oder lassen Sie mir sage, dass es ein Versuch ist zu klären, enthält der Java-Quellcode in der XML-Datei. Ich steckte an demselben Punkt fest, aber ich konnte nicht darauf hinweisen, was Adrian meinte. Die letzten beiden Quell-Tags geben an, welche Pakete und nachgezogenen Quelldateien kompiliert werden sollen. Deshalb sollten Sie jedes Paket im Attribut "path" benennen.

Die folgende Datei wurde in Eclipse Indigo in der Framework-Version automatisch generiert: appengine-java-sdk-1.6.4.1. Es hat keine unnötigen Kommentare.

<?xml version="1.0" encoding="UTF-8"?> 
<module rename-to='wk_cms'> 
    <!-- Inherit the core Web Toolkit stuff. --> 
    <inherits name='com.google.gwt.user.User'/> 
    <inherits name='com.google.gwt.json.JSON'/> 
    <inherits name='com.google.gwt.http.HTTP'/> 

    <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> 

    <!-- Other module inherits --> 

    <!-- Specify the app entry point class. --> 
    <entry-point class='de.someproject.wkcms.client.Wk_cms'/> 

    <!-- Specify the paths for translatable code --> 
    <source path='client'/>   <<-- my code (package client) 
    <source path='communication'/> <<-- my code (package communication) 
</module> 

Ich hoffe, das jeder hält fern von Sondieren und Tests vor Erfolg mit ... =)

Mit freundlichen Grüßen, Semo

PS. Die bearbeitete Datei war nicht web.xml, sondern PROJECTNAME.gwt.xml.

0

Sie erhalten folgendes

<source path='client.test'/> 
Verwandte Themen