0

我开始将 GWT 用于类项目,并想了解 RPC 的实际用例。所以,我在同一个网站上找到了这个例子:Stack Overflow - Simple RPC Use Case Problem (Code Included)

为什么我做这个例子?因为我遇到了用户在我自己的项目中发布的相同错误,我决定尝试在我的计算机上遵循他的代码,看看我是否真的能面对自己的错误。

所以关键是,在 Eclipse GWT 项目上复制文件并部署应用程序后,我在运行时遇到了这两个错误:

第一个错误

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?

第二个错误

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

因此,我尝试按照 Craig 在帖子中的建议更正Test.gwt.xml 。不幸的是,该解决方案对我不起作用,因为我仍然遇到相同的错误。

第一个错误:我不知道发生了什么,因为例如,在描述的文件中,RemoteServiceServlet 之前导入了一些行(尽管没有看到)。该文件位于“org.redboffin.worldhug.server.test;”包中

第二个错误:如果发布初始线程的用户不需要在他的项目中“继承”一个新包,我不明白为什么我需要它们。无论如何,我在 .gwt.xml 文件中放置了一个新的继承行:

<?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>

这就是我得到的:

 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?

(当然,它没有编译)

所以,我真的不知道发生了什么。请问,有人可以为这个问题带来一些启示吗?为什么这不起作用?我在做什么坏事?第二个错误需要什么类型的?

4

5 回答 5

3

你好艾琳和其他网络流浪者,

也许这是一个已经回答的帖子的双重帖子,或者让我说这是试图澄清 xml 文件中包含的 Java 源代码。我被困在同一点上,但我无法指出阿德里安的意思。最后两个源标签将告诉应编译哪些包和尾随源文件。这就是为什么你应该在名为“path”的属性中命名每个包。

以下文件是在框架版本的 Eclipse Indigo 中自动生成的:appengine-java-sdk-1.6.4.1。它没有不必要的评论。

<?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>

我希望这能让每个人在成功之前远离探索和测试...... =)

最好的问候, Semo

PS。编辑的文件不是 web.xml,而是 PROJECTNAME.gwt.xml。

于 2012-05-28T09:06:37.430 回答
1

想我看到了:

Test.java不应该只是在client.test包里client,或者说一切都应该指向client.Test而不是client.test.Test

于 2010-11-25T14:53:56.187 回答
0

您的服务器类似乎在包 server.test 下,而不仅仅是 server,这可能是错误的。检查 web.xml 中的映射是否正确指向该类。

我怀疑真正的错误可能在其他地方 - 我本来希望它仍然可以编译。

于 2010-11-25T12:22:05.177 回答
0

(不确定我是否必须“回答您的问题”,请先在 Stack Overflow 网站上尝试!)

谢谢你的评论,阿德里安!

这是“web.xml”文件的内容:

<?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>

在我看来,servlet 标记似乎指向了正确的位置:TestServiceImpl.java在包“org.redboffin.worldhug.server.test”内你是说这个吗?

还有什么想法吗?

再次感谢你!:)

于 2010-11-25T13:23:32.143 回答
0

您必须包括以下内容

<source path='client.test'/>
于 2016-06-29T20:38:44.897 回答