Glassfish 3.1.2 で Ajax アプリケーション用のプロキシ RESTful Web サービスを作成しました。Glassfish で RESTful Web サービスを定義し、外部 RESTful Web サービスを呼び出します。Jersey Client クラスを使用して、外部 Web サービスを呼び出します。
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
MultivaluedMap queryParams = new MultivaluedMapImpl();
queryParams.add("dtype", datatypeStr);
queryParams.add("bbox", boundingBoxStr);
WebResource webResource = client.resource(callURL);
WebResource webResource = client.resource(callURL);
ClientResponse response = webResource.queryParams(queryParams).accept("application/atom+xml").get(ClientResponse.class);
上記のコードはスタンドアロン クライアントで機能し、Glassfish 3.1 でも機能しますが、Glassfish 3.1.2 では未承認のエラーで失敗します。
2 つの質問があると思いますが、Glassfish でプロキシ Web サービスを作成するには、Jersey クライアント jar を使用するのが最善の方法ですか? そして、Glassfish 3.1.2 で変更されたことが不正エラーの原因です。
CSRF 保護が Glassfish 3.1.2 に追加されたことを読みましたが、Glassfish から外部 Web サービスを呼び出すのではなく、Glassfish にデプロイされた RESTful Web サービスを呼び出すクライアントにのみ影響するはずです。
助けてくれてありがとう。