2011-03-29 5 views
1

Я работаю с GWT 2.2, JPA, Java EE 6 Web, glassfish v3. Моя проблема в том, что я получаю следующую ошибку, если я использую свой объект в вызове RPC: «Нет исходного кода для типа entity.User; вы забыли наследовать необходимый модуль?»GWT 2.2 + JPA проблема

Прежде всего я решил, что проблема связана с аннотацией, но затем я прочитал, что из версии GWT 2.0 следует работать, если «класс аннотируется с помощью JPA javax.persistence.Entity annotation».

В чем проблема?

Ummm, я думаю, я просто пишу здесь все. У меня есть проект GWT со следующими пакетами:

org.ecommunity
org.ecommunity.client (и org.ecommunity.client.view)
org.ecommunity.server -> и вот только сервис осущ .:

public class ECommunityServiceImpl extends RemoteServiceServlet implements ECommunityService { 
    @EJB 
    ECommunitySB bean; 

    @Override 
    public User loginService(String username) { 
     return bean.getUserByUsername(username); 
    } 
} 

Моя Main.gwt.xml выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.7.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/1.7.0/distro-source/core/src/gwt-module.dtd"> 
<module> 
    <inherits name="com.google.gwt.user.User"/> 
    <inherits name='com.google.gwt.user.theme.standard.Standard'/> 
    <entry-point class="org.ecommunity.client.MainEntryPoint"/> 
    <source path="client"/> 
</module> 

И у меня есть модуль EJB с следующие пакеты: entity (здесь находится мой класс User сущность) и sessionbean (с моей SessionBean)

и если я добавляю <source path='server' /> проблема является то же самое с этим новым: «Импорт javax.ejb не может быть разрешенным. EJB не может быть разрешен к типу.»

+0

Вы уверены, что источник ваших сущностей доступен для компилятора GWT? – axtavt

ответ

1

Вы должны удалить модуль EJB и поместить sessionbean и класс сущности в проект gwt. Итак, теперь у вас есть только 1 проект. И вы должны добавить библиотеку EclipseLink (JPA 2.0) в путь к классам (из-за аннотаций).

+0

Да, это так. Благодаря! – ngspkinga

0

Я думаю, что вы, возможно, отсутствует путь источника в вашем {проекте} .gwt.xml

<source path='yourpath' /> 

Возьму догадка здесь позволяет сказать, что ваш {проект } .gwt.xml расположен в

org.ecommunity 

Там, вероятно, пакет

org.ecommunity.client 

с Allready какого GWT материалом, который является белым at включен <source path='client' /> , но ваши классы сущностей находятся в: org.ecommunity.server.entity Таким образом, вам нужно будет добавить другой источник для <source path='server' />. BTW, возможно, было бы лучше перенести объекты из-под сервера на, например, org.ecommunity.entity и добавить <source path='entity' />, потому что я предполагаю, что под сервером существует много кода, который не имеет отношения к клиентскому коду.

+0

Я не думаю, что это была бы проблема. У меня есть это: ngspkinga

+0

Я расширил свой ответ, чтобы уточнить некоторые моменты, надеюсь, что это поможет. – Eelke

+0

Как сказал Eelke, я обычно храню общий код клиента и сервера в другом пакете, который я расскажу GWT, где его найти

Смежные вопросы