0

クラス プロジェクトで GWT を使い始めており、RPC の実際の使用例を知りたいと思っていました。だから、私はこの同じウェブサイトでこの例を見つけました:スタック オーバーフロー - シンプルな RPC ユース ケースの問題 (コードが含まれています)

なぜ私はこの例をしたのですか?ユーザーが自分のプロジェクトに投稿したのと同じエラーが発生していたため、コンピューターで彼のコードをたどって、自分の間違いに本当に直面できるかどうかを確認することにしました。

要点は、Eclipse GWT プロジェクトにファイルをコピーしてアプリをデプロイした後、実行時に次の 2 つのエラーが発生したことです。

最初のエラー

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?

2 番目のエラー

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;」にあります。

2 番目のエラー: 最初のスレッドを投稿したユーザーがプロジェクトで新しいパッケージを「継承」する必要がなかった場合、なぜそれらが必要なのか理解できません。とにかく、新しい継承行を .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?

(もちろん、コンパイルされませんでした)

だから、私は本当に何が起こっているのか分かりません。誰かがこの問題に光を当てることができますか? なぜこれが機能しないのですか?私が悪いことをしていますか?2番目のエラーで必要になるこのタイプは何ですか?

4

5 に答える 5

3

こんにちは、アイリーンと他の Web 放浪者の皆さん。

おそらく、これは既に回答された投稿の二重投稿であるか、xml ファイルに Java ソース コードが含まれていることを明確にする試みであると言えます。私は同じ点で行き詰まりましたが、エイドリアンが何を意味するのか指摘できませんでした。最後の 2 つのソース タグは、どのパッケージと後続のソース ファイルをコンパイルするかを示します。そのため、"path" という属性で各パッケージに名前を付ける必要があります。

以下のファイルは、Framework バージョンの 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>

これにより、成功する前に誰もが調査やテストから遠ざかることを願っています... =)

敬具、セモ

PS。編集したファイルは web.xml ではなく、PROJECTNAME.gwt.xml でした。

于 2012-05-28T09:06:37.430 に答える
1

私はそれを見ると思います:

Test.javaclient.testだけでなくパッケージに含まれている必要があります。または、すべてがではなくclientを指している必要があります。client.Testclient.test.Test

于 2010-11-25T14:53:56.187 に答える
0

以下を含める必要があります

<source path='client.test'/>
于 2016-06-29T20:38:44.897 に答える
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>

サーブレット タグは私の目には正しい場所を指しているようです: TestServiceImpl.javaはパッケージ"org.redboffin.worldhug.server.test"の中にあります。

他のアイデアはありますか?

ありがとうございました!:)

于 2010-11-25T13:23:32.143 に答える
0

あなたのサーバークラスは、おそらく間違っているサーバーだけではなく、パッケージserver.testの下にあるようです。web.xml のマッピングがこのクラスを正しく指していることを確認してください。

ただし、実際のエラーはおそらく別の場所にあると思われます-まだコンパイルされると予想していました。

于 2010-11-25T12:22:05.177 に答える