« PvtServer の引っ越し:REST(7) | トップページ | beanBytes の処理:REST(付録) »

2015年2月26日 (木)

Client の引っ越し:REST(8)

  • クライアントのサーバとのインターフェースは Delegater パッケージに集まっているので,ここを書き換える。jndi 呼び出して RemoteService を取り出していた部分を,ResteasyWebTarget から proxy 経由で取り出すように書き換える。
  • NetBeans から起動したときは問題なかったのに,JAR から立ち上げたときログインで
    javax.ws.rs.client.ResponseProcessingException: javax.ws.rs.ProcessingException: Unable to find a MessageBodyReader of content-type application/json and type class open.dolphin.infomodel.UserModel
    at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.extractResult(ClientInvocation.java:140)
    
    というエラーが出て立ち上がらなかった。以下のようなテストコードで確認してみたところ,
    ResteasyClient client = new ResteasyClientBuilder().connectionPoolSize(20).build();
    ClientConfiguration conf = (ClientConfiguration) client.getConfiguration();
    MessageBodyReader mes = conf.getMessageBodyReader(UserModel.class, null, new Annotation[]{}, MediaType.APPLICATION_JSON_TYPE);
    System.out.println("MessageBodyReader = " + mes);
    
    これを,NetBeans から立ち上げた場合
    MessageBodyReader = org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson2Provider@2ac7b3a3
    
    JAR から立ち上げた場合
    MessageBodyReader = null
    
    なんでこういうことになるのか分からなかったが,とりあえず動けばいいと思って,Provider に ResteasyJackson2Provider を無理矢理入れたら立ち上がるようになった。
    ResteasyJackson2Provider jackson2Provider = new ResteasyJackson2Provider();
    client.register(jackson2Provider);
    

« PvtServer の引っ越し:REST(7) | トップページ | beanBytes の処理:REST(付録) »

OpenDolphin」カテゴリの記事