以前、作成したRestAPIがVersionUpにより動かなくなったため、
修正しました。修正した結果をメモします。
過去Entryはこちら。
目次
参考サイト
Githubへのリンクになります。
* core/wicketstuff-restannotations-parent at master · wicketstuff/core
1. pomに以下の記述を追加する
<dependency>
<groupId>org.wicketstuff</groupId>
<artifactId>wicketstuff-restannotations</artifactId>
<version>7.3.0</version>
</dependency>
<dependency>
<groupId>org.wicketstuff</groupId>
<artifactId>wicketstuff-restannotations-json</artifactId>
<version>7.3.0</version>
</dependency>
2. AbstractRestResourceの継承クラスを作成する
GsonRestResourceが削除されたので、
継承クラスを、AbstractRestResourceに変更しました。
GsonかJacksonどちらのライブラリを使用するのか切り替え可能になっています。
Gsonを使用する場合は、Constructor内で以下記述をすれば、使うことができます。
public FestivalApis() {
super(new JsonWebSerialDeserial(new GsonObjectSerialDeserial()));
}
- 削除した記述
import org.wicketstuff.rest.resource.gson.GsonRestResource;
- 変更したRestサービスAPI
package xyz.monotalk.web.apis; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import org.wicketstuff.rest.annotations.MethodMapping; import org.wicketstuff.rest.contenthandling.json.objserialdeserial.JacksonObjectSerialDeserial; import org.wicketstuff.rest.contenthandling.json.webserialdeserial.JsonWebSerialDeserial; import org.wicketstuff.rest.resource.AbstractRestResource; import xyz.monotalk.models.entity.Festival; public class FestivalApis extends AbstractRestResource<JsonWebSerialDeserial> { public FestivalApis() { super(new JsonWebSerialDeserial(new JacksonObjectSerialDeserial())); } private static final long serialVersionUID = -7863247209549049518L; @MethodMapping("/festivals") @SuppressWarnings("unchecked") public List<Festival> getAllFestivals() { EntityManagerFactory emf = Persistence.createEntityManagerFactory("POfDM_Local"); EntityManager em = null; List<Festival> festivals = null; try { em = emf.createEntityManager(); festivals = (List<Festival>) em.createNamedQuery("findAllFestivals").getResultList(); } finally { if (em != null) { em.close(); } } return festivals; } }
上記の修正で動作するようになりました。
以上です。
コメント