JBoss Forge를 사용하여 내 응용 프로그램에 대한 REST API를 생성하고 있습니다.JBoss Forge 생성 된 REST 끝점에서 NULL 엔티티를 반환합니다.
rest endpoint-from-entity x.x.x.Message --contentType application/xml
이 생성하기 방법 함께 MessageEndpoint.java 결과 :
@Stateless @Path("/messages") public class MessageEndpoint { @PersistenceContext(unitName = "forge-default") private EntityManager em; @POST @Consumes("application/xml") public Response create(Message entity) { em.persist(entity); return Response.created(UriBuilder.fromResource(MessageEndpoint.class).path(String.valueOf(entity.getId())).build()).build(); }
종점은 (패키지 이름 난독) 다음 명령 메시지라는 엔티티 생성 된
: ......
엔드 포인트에 대한 테스트를 작성하려면, 나는 다음과 같은 명령을 사용하여
@RunWith(Arquillian.class)
public class MessageEndpointTest
{
@Inject
private MessageEndpoint messageEndpoint;
@Deployment
public static JavaArchive createDeployment()
{
return ShrinkWrap.create(JavaArchive.class, "test.jar")
.addClass(MessageEndpoint.class)
.addClass(Message.class)
.addAsManifestResource("META-INF/persistence.xml", "persistence.xml")
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
}
@Test
public void testIsDeployed()
{
Assert.assertNotNull(messageEndpoint);
Response r = messageEndpoint.create(new Message());
Assert.assertNotNull(r.getEntity()); // getEntity returns null
}
}
새로운 메시지가 응용 프로그램 서버에 의해 수신 :
arquillian create-test --class x.x.x.MessageEndpoint.java --enableJPA
16,나는 다음 Response 개체에 getEntity()가 null를 돌려 것을 보여주기 위해 생성 된 테스트 클래스, MessageEndpointTest.java,의 기본 테스트를 확장 데이터베이스에 보관됩니다.
서버를 디버깅 할 때 엔티티가 Response
을 만드는 메소드에 인수로 지정된 ID를 얻는 것을 볼 수 있습니다.
응용 프로그램 서버 로그에 오류가 없습니다.
Eclipse Kepler에서 JBoss EAP 6.1 및 JBoss Forge 버전 1.3.3을 사용하고 있습니다.
누구나 잘못 알거나 디버깅을 위해 조언을 줄 수 있습니까?