ServiceMix,
Twitter Account Activity API
Abstract#
Topic#
How to describe the interface#
It should be referred existing web services such as recruit web service. |
How to make it#
I like Java, so Jersey which is one of implementation of JAX-RS should be recommended. |
check !Servlet3.0以降、Tomcat7以降だとweb.xmlの設定がいらなくなるが、その条件として、ResourceConfigクラスを継承したConfigクラスをつくり、Pathを指定しておくのがポイントか。うまくいくと、hostname/application name/ResourceConfigで設定したpath/Pathアノテーションで設定したパス名?**=**...でアクセスできるようになります。最後までインプットしないと404がでるかも。 |
まあ、別にWeb.xmlを編集してもいいんだけどね。gnsswsは、そっちでやってます。 |
Twitterのwebhookに成功すると。JSONをPostしてきます。POSTアノテーションを指定したメソッドでその処理をするのですが、JSONのようなTextを受け取るときのやり方が意外と探すのに苦労。ここをみながら、以下のように実装するとできた。 |
@POST
public Response postIt(String body){
ResponseBuilder builder=Response.ok();
System.out.println("something posted!"+body);
return builder.build();
}
- Jerseyを使っていて、JDK11にすると、コンパイルは通るけど実行上は、java.lang.NoClassDefFoundError: javax/activation/DataSourceとか起きて、動きません。原因は、Jerseyの中で使っているJAFとJAXBがJDK11ではなくなっているため。で解決。Jerseyのアップデートでも解決するのだろうか。。
Reference#
- Recruit Co., Ltd., リクルート WEBサービス, http://webservice.recruit.co.jp
- Oracle Corporation, Jersey, https://jersey.github.io
- edgegram, 2015-11-25, Jerseyの設定2(web.xmlとかApplicationクラスとか), https://edgegram.hatenablog.jp/entry/2015/11/25/194919
- Stack Over Flow, 2016-12-16, How do I get the JSON body in Jersey?, https://stackoverflow.com/questions/41157949/how-do-i-get-the-json-body-in-jersey
- YUICHI SAKURABA, 2018年7月4日, 事例から学ぶ、Java SE 11移行、http://www.javainthebox.com/2018/07/java-se-11.html