2011-06-26 17 views
0

私は1つのGWTプロジェクトを開発しました。 EmployeeというJPAエンティティを1つ作成しました。そのエンティティをデータベースに永続化したい。私の従業員はcom.mygwt.client.beanの下にある です。今私の質問は、すべてのエンティティがサーバー側に配置されることを意味ですか?私は の下にサーバーを作成しようとしましたが、Employeeのモジュールを継承するのを忘れたという例外がありました。クライアント側でエンティティを作成するのではなく、サーバー側でエンティティを作成するための他の方法はありますか?私が正しいやり方を提案してください。JPAエンティティfor GWT

答えて

0

サーバー側に入れて、.gwt.xmlにさらに<source path='..'/>を追加して、ソースがどこにあるかをGWTに伝えます。

+0

です。情報のおかげで。 – user414967

0

上記の答えは正しいです。しかし、あなたが追加するパッケージに入れたものは、<source path='..' />を使って慎重にする必要があります。プロジェクトのgwt.xmlファイルのタグ<source path='...' />は、JavaScriptに変換するクライアントサイドコードを探す場所をGWTコンパイラに指示します。 JavaScriptに変換できるクラスだけをそこに置くことができます。リモートサーブレットを含むサーバーサイドパッケージを追加するだけでは間違って動作しません。

私は、次の構造を提案する:

com.mycompany.client 
com.mycompany.shared 
com.mycompany.server 

は、基本的にはクライアントコードは、クライアントのディレクトリにあり、共有にあなたは、クライアント側で使用されるクラス(転送オブジェクト、モデル、バリデータを...)維持し、サーバ側。あなたが唯一のcom.mycompany.serverツリーからサーバーライブラリのjarファイルにアクセスするように注意する必要があります

<source path='com.mycompany.client' /> 
<source path='com.mycompany.shared' /> 
+0

ありがとう。ビジネスロジックを含むjarファイルを追加したいのであれば、それをサーバー側に追加できますか? – user414967

+0

はい、サーバーサイドのjarファイルをWEB-INF/libに配置してください。 –

0

:[プロジェクトgwt.xmlファイルにこれらの行を置きます。

また、サーバライブラリからオブジェクトをクライアントに送信しようとしないでください。あなたがワイヤでサーバライブラリオブジェクトを送る必要があるならば、あなたはライブラリへのソースを持たなければならないでしょう - それは混乱です。 com.mycompany.sharedにDTOクラスを作成する方が簡単です。これは、サーバー側の情報からアプリケーションの仕様を作成したものです。

スチュアート

関連する問題