2011-12-20 2 views
1

Netbeans EE6とジャージライブラリを使用して、快適なWeb​​サービスをチュートリアルhttp://netbeans.org/kb/docs/websvc/rest.htmlで展開しています。Netbeansの快適なWeb​​サービスのメソッド公開エンティティの依存関係がありません

私は、データベース内の複合主キーを保持するエンティティからRESTful Webサービスを作成するときに私は、Webサービスをテストしようとすると、このプロジェクトは私にエラーを与える:

SEVERE:メソッドを公開のための依存関係がありませんエンティティ.RMScheduleサービス.RMScheduleFacadeREST.find(エンティティ.RMSchedulePK)インデックス0のパラメータ SEVERE:メソッド、パブリックエンティティ.RMScheduleサービス.RMScheduleFacadeREST.find(エンティティ.RMSchedulePK)(リソースのGETで注釈付き、クラスservice.RMScheduleFacadeREST)有効なリソースメソッドとして認識されません。

複合主キーによるエラーか、含めるべきステップがありますか? 事前に感謝します。

+0

私は同じ問題を抱えていますが、解決策を見つけましたか? –

+0

残念ながら、データベースからすべての複合キーを削除しましたが、後ほど問題が発生したので、実際にはより効率的でした。私はまた、expandLevelなどがないなど、他の問題のためにnetbeansバージョン7.0.1でJava ee 5を使用することに復帰しました –

答えて

0

私は、この問題は、Netbeansのバグに関連していると思う:

https://netbeans.org/bugzilla/show_bug.cgi?id=208375

複合主キーを持つエンティティクラスを作成し、 2つのエンティティのファイルが作成されます。あなたは、エンティティクラスからサーブレットを作成することを選択した場合(ex CustomerEntity.jave, CustomerEntityPK.java)

はその後、サーブレットは、以下のように自動的に生成されたコードが付属しています:

@DELETE 
    @Path("{id}") 
    public void remove(@PathParam("id") CustomerEntityPK id) { //error 
     super.remove(super.find(id)); 
    } 

    @GET 
    @Path("{id}") 
    @Produces({"application/xml", "application/json"}) 
    public CustomerEntity find(@PathParam("id") CustomerEntityPK id) { //error 
     return super.find(id); 
    } 

問題は、サーブレット・メソッドに渡され、その引数がCustomerEntityPKです複合主キーを持つ。

引数の型をStringなどに変更すると、私の場合はエラーになります。

@DELETE 
    @Path("{id}") 
    public void remove(@PathParam("id") String id) { //type set to String now 
     super.remove(super.find(id)); 
    } 

しかし、私のプロジェクトで、私は単純に手でサーブレットクラスを作成することを選択し、問題がないので、このような自動生成コードの必要はありませんでした。

希望に役立ちます。

+0

後者では、単純キーとして扱われています –

+0

複合キーを渡す必要があると思いますPathParam変数は、JSON {key1:foo、key2:bar}などの形式である必要があります。私のプロジェクトでは、この目的のためにJSONを使用しています。 –

関連する問題