No se puede usar la clase en el paquete del cliente con GWT
Pregunta
Estoy tratando de usar la clase myType declarada en el paquete com.mycompany.myproject en una clase que vive en com.mycompany.myproject.client pero recibo los siguientes errores al compilar:
[ERROR] Línea [X]: la importación com.mycompany.myproject.myType no puede ser resuelto
Si intento ejecutar el navegador alojado, obtengo:
[ERROR] Línea [X]: no hay código fuente disponible para el tipo com.mycompany.myproject.myType; olvidó heredar un requerido módulo?
¿Alguna idea?
Solución
Este error significa que el compilador GWT no puede encontrar su clase. El compilador de GWT solo puede encontrar clases a las que hace referencia el archivo .gwt.xml para su proyecto.
Todo se explica aquí: http://code.google.com/webtoolkit/doc/latest/DevGuideOrganizingProjects. html
Otros consejos
El compilador primero busca el módulo de la aplicación.gwt.XML. El módulo XML puede o heredar otro módulo xml. Los módulos también pueden declarar qué paquetes desean hacer visibles para el compilador.
Uno no solo coloca los archivos & # 8226; .java en la ruta de compilación sino que debe incluir el mecanismo XML del módulo. Esto se debe a que no todos los subpaquetes deben ser traducibles, por ejemplo, un componente de servlet que complemente el componente deseado del lado del cliente.
estructura del proyecto:
- com.mycompany.service
- com.mycompany.myproject
- cliente
- servicio
- myproject.gwt.xml
el paquete fuente por defecto es " client " que se coloca en el mismo directorio con archivo gwt.xml. Si desea agregar o cambiar el directorio de origen, debe editar gwt.xml.
1) por ejemplo, desea que esté disponible para el paquete gwt " com.my ~ ny.p ~ ct.service " ;. En el archivo gwt.xml agregue & Lt; ruta de origen = " servicio " / > ;.
valores de atributos de ruta como " ../ " ;, ". " - no funcionará.
2) si desea poner a disposición " com.my ~ ny.service " paquete.
crear módulo (archivo gwt.xml) en com.mycompany,
donde tiene el directorio de fuente puntual
y herede el módulo de usuario gwt predeterminado.
Estaba teniendo un problema similar y logré resolver un solución que podría ayudarlo en esta situación.