Herança do módulo GWT e nenhum código -fonte disponível no tempo de execução do aplicativo

StackOverflow https://stackoverflow.com/questions/4276836

  •  28-09-2019
  •  | 
  •  

Pergunta

Estou começando a usar o GWT para um projeto de classe e queria saber casos de uso reais para RPC. Então, eu encontrei este exemplo neste mesmo site: Overflow Stack - Problema simples do caso de uso do RPC (código incluído)

Por que fiz este exemplo? Porque eu estava recebendo os mesmos erros que o usuário postou em meu próprio projeto e decidi tentar seguir o código dele no meu computador para ver se eu realmente poderia enfrentar meus próprios erros.

Portanto, o ponto é que, depois de copiar os arquivos em um projeto GWT Eclipse e implantar o aplicativo, recebi esses dois erros no tempo de execução:

1º erro

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º erro

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

Então eu tentei corrigir Test.gwt.xml Como Craig sugeriu no post. Infelizmente, essa solução não está funcionando para mim, porque ainda estou recebendo os mesmos erros.

1º erro: não sei o que está acontecendo porque, por exemplo, no arquivo que está representado, o RemoteServiceServlet é importado algumas linhas antes (apesar de não ser visto). Este arquivo está no pacote "org.redboffin.worldhug.server.test;"

2º erro: se o usuário que postou o thread inicial não precisou "herdar" um novo pacote em seu projeto, não consigo entender por que preciso deles. De qualquer forma, coloquei uma nova linha herdeira um arquivo .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>

E é isso que eu tenho:

 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?

(Claro, não compilou)

Então, eu realmente não sei o que está acontecendo. Por favor, alguém pode trazer alguma luz para esse problema? Por que isto não está funcionando? O que estou fazendo mal? Qual é esse tipo que é necessário no segundo erro?

Foi útil?

Solução

Acho que vejo:

Test.java deve estar no client.test Pacote não apenas client, ou tudo deve apontar para client.Test ao invés de client.test.Test.

Outras dicas

Olá, Irene e outros penduradores da web,

Talvez este seja uma postagem dupla em uma postagem já respondida ou diga que é uma tentativa de esclarecer sobre o código -fonte do Java no arquivo XML. Fiquei preso no mesmo ponto, mas não pude apontar o que Adrian quis dizer. As duas últimas tags de origem informarão quais pacotes e arquivos de origem triturados devem ser compilados. É por isso que você deve nomear cada pacote no atributo chamado "caminho".

O arquivo abaixo foi gerado automaticamente no Eclipse Indigo na versão da estrutura: AppEngine-Java-SDK-1.6.4.1. É desprovido de comentários desnecessários.

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

Espero que isso impeça todos de longe de investigar e testar antes de ter sucesso ... =)

Atenciosamente, semo

Ps. O arquivo editado não era web.xml, mas projectName.gwt.xml.

Sua classe de servidor parece estar no pacote servidor.test, em vez de apenas servidor, o que provavelmente está errado. Verifique o mapeamento no web.xml aponta corretamente para esta classe.

Eu suspeito que o erro real provavelmente esteja em outro lugar - eu esperaria que ele ainda compilasse.

(Não tenho certeza se tenho que "responder sua pergunta" ou não, primeiro tente no site de transbordamento da pilha!)

Obrigado pelo seu comentário, Adrian!

Este é o conteúdo do arquivo "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>

Parece que a etiqueta do servlet está apontando para o lugar certo para meus olhos: TestServiceImpl.java está dentro do pacote "Org.redboffin.worldhug.server.test" Você quis dizer isso?

Alguma outra ideia?

Obrigado novamente! :)

Você terá que incluir o seguinte

<source path='client.test'/>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top