問題タブ [jersey-client]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - ジャージー クライアント ポスト バイナリ データ アプリケーション - オクテット/ストリーム
Jersey Client を使用してバイナリデータで投稿したいと思います。
curl と同等のものは次のようになります。
公式ドキュメントでそれを行う方法を見つけることができませんでした: http://jersey.java.net/documentation/latest/user-guide.html#client
ありがとう。
java - アプレットのジャージー クライアントが JSON を解析しない
アプレットまたはスタンドアロン アプリとして使用できる単純なアプリケーションがあります。REST サービスにリクエストを送信し、結果を表示しようとしますList<City>
。
都市クラスのコードは次のとおりです。
jersey-bundle-1.17 を使用してリクエストを送信し、レスポンスを取得します。
リクエストを送信してレスポンスを取得するコード:
アプリをビルドした後、私は2つのjarファイルを持っています.MyJar.jarと私のアプリとjersey-bundle-1.17.jarです。jersey への Class-Path は、MyJar.jar のマニフェストで指定されます。
jar ファイルをスタンドアロン アプリ (java -jar MyJar.jar) として実行すると、すべて問題なく、要求が送信され、応答が受信され、List<City>
. アプレット(htmlページまたはアプレットビューアー)リクエストが送信されたときにjarファイルを実行すると、応答は受信されますが、List<City>
ことわざへの応答を逆シリアル化できません
JacksonJsonProvider.class をジャージー プロバイダーのリストに追加しようとしました。String だけを City[] にデシリアライズしようとしました。アプレットから実行すると、適切なメッセージ本文リーダーが見つからないと常に表示されます。また、デスクトップ アプリケーションとして実行すると、すべて正常に動作します。
アプレットは、サーバーアクセスログに表示され、リクエストが送信されると、jersy-bundle jar を確実にロードしますが、正しくロードされていないように見えます (ロード中に jersey-bundle jar のマニフェストを無視する可能性があります)。 . 問題は、コードがアプレットから実行されている場合にのみ発生します。
誰でも私を助けることができますか?
jackson - readEntity は json_class の影響を受けますか?
「json_class」属性には特別な意味がありますか? 2 つの get/post セットがあり、それが json の唯一の重要な違いです。最初のセットはうまくいきました。私は使用できました:
2 番目のセットは、2 つの部分に分割しない限り機能しません (つまり、Reader に読み込んでからオブジェクトにマップします)。私が見る唯一の大きな違いは、2 番目の json の最初の属性が常に "{"json_class":"Message","broadcast":false,"content":"post from Java 1","created_at":"2013- であることです。 08-14T12:31:03-05:00","削除":false,"....}
しかし、最初のセットのコードを使用すると、「MessageBodyReader not found for media type=text/html; charset=utf-8, ...」という例外がスローされます。
java - java.net.ConnectException の取得: 接続が拒否されました
これについて SO で解決策を探しましたが、私の場合にはどれも当てはまらないようです。サード パーティ ドメインへのサービス呼び出しを行う必要があるアプリケーションがあります。このサービス呼び出しを行うためにジャージー クライアントを使用しています。この呼び出しを行うためのコードは次のとおりです。
resourceWithParams
ジャージの Web リソースはどこにありますか。であってもPOST
、Web サービスはクエリ文字列と空の本文を想定していることに注意してください。疑わしいデザインかもしれませんが、それは私たちが取り組まなければならないものです.
このセットアップは、ローカル マシンと preprod サーバーで問題なく動作しています。ただし、本番サーバーでは例外が発生します。
com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused
以下に、私を正しい方向に向けるのに役立ついくつかのポイントがあります。
1) 製品サーバーのコマンド ラインで使用して Web サービスに要求を送信すると、有効な応答が得られるため、curl
ファイアウォールの問題はないようです。これは、Web アプリケーションを介して、つまり jersey クライアントを使用する Java コードを介して試行した場合にのみ発生します。
2) prod サーバーにプロキシが設定されていない
3) localhost から正常に動作します。
4)Rest Webサービスはhttpsを使用し、正しい証明書がサーバーにインストールされています。これは、本番環境でWebサービスが正常にcurl
機能するという事実によって証明されています.
問題が何であるか、どこから調べ始めるべきかについてのアイデアはありますか?
編集:
前述のように、https を使用して Web サービスに接続していました。代わりに http を使用すると、機能しているように見えます。
java - CA 証明書のみを使用し、キーストアを使用しない SSLContext の使用
javax.net.ssl.SSLContext
Jersey-Client アプリケーションで使用するためにセットアップする必要があります。私がやりたいのは、カスタム ルート CA 証明書を受け入れるコンテキストだけです。キーストア ファイルを生成して CA 証明書をインポートする方法がないというのは本当ですか?
java - Jersey-client と Apache HTTP Client の違いは?
まず第一に、私はここで炎上戦争を始めようとしているわけではありません。私はJerseyを十分に知っていますが、httpclientをほとんど使用したことがありません.
jersey-client と Apache の httpclient の主な違いは何ですか? ある分野が他の分野よりも優れているのはどの分野ですか? どこかに良い比較表はありませんか?より大きなファイル (たとえば 2048 MB) では、どちらがより優れたパフォーマンスを発揮しますか?
コメントありがとうございます!
json - Jersey 1.17.1 POJO マッピング機能サーバーとクライアントから取得する方法は?
サーバーで REST サービスを実行しており、POJO のリストを Json に変換したいと考えています。@XMLRootElement JA-RX は XML にのみ適しているため、使用したくありません。Google で検索すると、Json には Jackson が非常に適していることがわかります。
この問題を解決した人はいますか?完全なサーバーとクライアント コードを貼り付けてください。
注: 私はこれを行う方法を見つけるのに 16 時間を費やしました。質問に答えたときに回答が削除されたので、他の人の貴重な時間を節約するためにこれをここに置くことにしました。私は知識の共有を信じています.コード。私はいつでも提案を受け付けています。