2011-12-20 2 views
1

자습서 http://netbeans.org/kb/docs/websvc/rest.html을 사용하여 Netbeans EE6 및 저지 라이브러리를 사용하여 편안한 웹 서비스를 배포합니다.Netbeans의 편안한 웹 서비스의 메소드 공개 엔터티에 대한 누락 된 종속성

나는 데이터베이스에 복합 기본 키를 누르고 엔티티에서 RESTful 웹 서비스를 만들 때 내가 웹 서비스를 테스트 할 때,이 프로젝트는 나에게 오류를 제공합니다

SEVERE : 방법 공개에 대한 의존성을 누락 엔티티 .RMSchedule 서비스. 인덱스 0의 매개 변수에서 RMScheduleFacadeREST.find (entities.RMSchedulePK) SEVERE : 메소드, 공용 엔티티 .RMSchedule 서비스 .RMScheduleFacadeREST.find (entities.RMSchedulePK), 자원의 GET으로 주석 된, class service.RMScheduleFacadeREST, is 유효한 자원 메소드로 인식되지 않습니다.

복합 기본 키로 인한 오류입니까? 포함해야 할 단계가 있습니까? 미리 감사드립니다.

+0

동일한 문제가 있습니다. 해결책을 찾았습니까? –

+0

불행히도 아뇨, 데이터베이스에서 모든 복합 키를 제거했습니다. 나중에 실제로 문제가 발생했을 때 실제로 더 효율적이었습니다. 또한 netbeans 버전 7.0.1에서 expandLevel 등이 없기 때문에 Java ee 5를 사용하는 것으로 되돌 렸습니다. –

답변

0

나는이 문제가 넷빈즈 버그에 관한 생각 :

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

복합 기본 키를 가지고 엔티티 클래스를 생성, 두 개체 파일이 생성됩니다.

@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입니다 : 당신이 엔티티 클래스에서 서블릿을 만들도록 선택할 경우 (ex CustomerEntity.jave, CustomerEntityPK.java)

그런 다음, 서블릿은 다음과 같이 자동으로 생성 된 코드와 함께 제공 복합 기본 키가 있습니다.

인수 유형을 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을이 용도로 사용합니다. –