問題タブ [resttemplate]
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.
spring - RestTemplate を正しく機能させることができません。406 Not Acceptable で終わる
Spring の RestTemplate を使用して、作業中のプロジェクトに支払いプロバイダーを実装しようとしています。支払いプロバイダーから返される XML は次のとおりです。
この XML 用に作成したクラスは次のとおりです。
単純に xml を文字列としてリクエストし、自分で非整列化すると、次のように機能します。
ただし、これを行うと:
また
最終的には 406 Not Acceptable になります。
restTemplate (コントローラーでは @Autowired です) の Bean 構成は次のようになります。
誰がこれを引き起こしているのか、それを修正する方法の手がかりを持っていますか? 上記のコードの URL は公開されているため、このコードを自分で試すことができます。
spring-mvc - Builder パターンと @JsonDeserialize を使用して、Spring RestTemplate で応答 json を逆シリアル化する方法
Jackson の @JsonDeserialize を使用してレスポンス Json を逆シリアル化するように RESTTemplate を構成するにはどうすればよいですか?
Builder パターンと jackson の @JsonDeserialize に基づく私のドメイン クラスは、単体テストで適切にマーシャリングとアンマーシャリングを行います。ただし、Spring の RESTTemplate (Spring 3.1) と組み合わせて使用すると失敗します。
ドメイン クラス:
単体テストの Spring RESTTemplate コード:
RestTemplate#doExecute() のエラー - 436 行目:
java - 投稿データの Spring Resttemplate 予期しないフィールド「セッション」
これは MappingJacksonConverter によって生成されたデータですが、再帰データ全体を含む「セッション」フィールドを無効にする方法がわかりません。
これは、上記のデータを投稿するためのコードです。「セッション」フィールドを無効にするために追加する必要がある部分はありますか?
android - エラーが発生した理由が不明です。AsyncTask の使用方法が間違っているためですか?
エラーが発生した理由が不明です。AsyncTask の使用方法が間違っているためですか?
私は現在、Androidカレンダーアプリを開発しています。ユーザーが自分のデータをサーバーまたはその逆に同期できるようにする同期機能が必要です。
ユーザーがアプリを開くと、サーバーからデータを取得し、新しいデータを Android デバイスの sqlite データベースに更新します。
また、ユーザーが新しいデータを作成するたびに、このデータをサーバーに送信して、サーバー上のデータベースに更新します。
こんな感じで理想を実現しました。
1. 同期アクションを実行する MainActivity クラス
2. asyncTask を収集する DataSyncTask
3. ServerUtilities クラス
MainActivity を起動すると、サーバーに接続し、データをフェッチし、sqlite データベースに更新し、デバイスからサーバーに新しいデータを送信して更新を成功させます。すべて問題ありません。しかし、新しいデータを作成すると、syncTask.syncOnInsert() を実行すると、例外が発生します。
なぜこれが起こるのかを説明し、このエラーを解決する方法を教えてください。
前もって感謝します!
spring - 「有効な HTTP URL ではありません」を与える RestTemplate().getForObject
Web サービスを呼び出すための非常に基本的なコードがいくつかあります。RestTemplate().getForObject を使用すると、「有効な HTTP URL ではありません」というエラーが表示されます。
クライアントコードは次のとおりです。
コントローラー
サーブレット.xml
リンク localhost:9080/someApp/testWs/partners/1> にアクセスすると結果が返されますが、RestTemplate().getForObject() を使用しても機能しません。
Prtnr クラスは次のとおりです。
サーバー側で表示されるエラー: [12/3/12 10:25:57:764 EST] 00000039 ServletWrappe E SRVE0068E: サーブレットのサービス メソッドの 1 つでキャッチされない例外がスローされました:
Web サービスのカールは次のとおりです。org.codehaus.jackson.map.deser の org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:579) のスレッド「メイン」での例外 java.lang.StackOverflowError。 org.codehaus.jackson.map.deser.SettableBeanProperty$MethodProperty.deserializeAndSet(SettableBeanProperty.java:414) の SettableBeanProperty.deserialize(SettableBeanProperty.java:299) org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer. java:697) org.codehaus.jackson.map.deser.BeanDeserializer.deserialize (BeanDeserializer.java:580) で
何が欠けていますか???
ありがとう
java - Java Spring RestTemplate を使用して大きなバイナリ ファイルをアップロードする
バイナリ データ [ファイル] を受信できるサーブレットがあります。
Spring の RestTemplate() を使用して、大きなバイナリ ファイルをサーブレットにアップロードしたいと考えています。ただし、バイナリ ファイル全体をメモリにロードすることはできません。
これまでのところ、メソッドがファイル全体をメモリにロードしようとしていたことを示す OutOfMemory エラーが発生しました。
このバイナリ データをサーブレットにストリーミングするにはどうすればよいですか? Spring または Java で推奨されます。
android - 20秒後にRESTサービス接続(またはその他)が閉じられていますか?
アンドロイドで安らかな春を使用すると問題が発生します。
そのような私のコード。
1.アクティビティ
2.そしてtest_rest_template.xmlファイル:
3.サーバー側
問題は、最初にボタンをクリックするとサーバーに接続して文字列に正常に応答することですが、その後21秒以上待ってからボタンをクリックすると、logcatで例外が発生しました。
私はこのパターンを約2日間グーグルで検索しましたが、役立つ提案は見つかりませんでした。あなたの誰もが私にこの問題を説明することができます。
前もって感謝します。
spring - Spring RestTemplate タイムアウト
Web アプリケーションで使用される REST サービスの接続タイムアウトを設定したいと考えています。Spring の RestTemplate を使用してサービスと通信しています。私はいくつかの調査を行い、タイムアウトを設定するためのものであると思われる以下の xml (アプリケーション xml 内) を見つけて使用しました。私はSpring 3.0を使用しています。
ここでも同じ問題を見てきましたRestTemplate を使用したSpring Webサービスのタイムアウト構成ですが、ソリューションはそれほどクリーンではないようです。Spring構成を介してタイムアウト値を設定することをお勧めします
readTimeout を何に設定しても、次のようになります。
ネットワーク ケーブルが切断されました: 約 20 秒待機し、次の例外が報告されます:
org.springframework.web.client.ResourceAccessException: I/O エラー: ホストへのルートがありません: connect; ネストされた例外は java.net.NoRouteToHostException: No route to host: connect です
URL が正しくないため、残りのサービスから 404 が返されました: 約 10 秒待機し、次の例外を報告します:
org.springframework.web.client.HttpClientErrorException: 404 が見つかりません
私の要件ではタイムアウトを短くする必要があるため、これらを変更できる必要があります。私が間違っていることについてのアイデアはありますか?
どうもありがとう。
spring - RestTemplate.postForLocation を使用したファイル アップロード プログレス バー
ファイルを REST サービスにアップロードする Java デスクトップ クライアント アプリケーションがあります。
REST サービスへのすべての呼び出しは、Spring RestTemplate クラスを使用して処理されます。
アップロードされるファイルが非常に大きくなる可能性があるため、プログレスバーを実装して機能をキャンセルすることを検討しています。
これを Web に実装する方法を探していましたが、うまくいきませんでした。
私は独自の ResourceHttpMessageConverter を実装し、 writeInternal() メソッドを置き換えようとしましたが、このメソッドは、実際にリクエストを投稿する前に、何らかのバッファリングされた操作中に呼び出されたようです (したがって、送信が行われる前にストリームが一度に読み取られます)。
CommonsClientHttpRequestFactory.createRequest() メソッドをオーバーライドし、特別な writeRequest() メソッドを使用して独自の RequestEntity クラスを実装しようとしましたが、同じ問題が発生します (ストリームは実際に投稿を送信する前にすべて読み取られます)。
私は間違った場所を探していますか?誰かが似たようなことをしましたか。
プログレスバーの実装について私がウェブで読んだ多くのことは、アップロードを見つめてから、別のAJAXリクエストを使用してウェブサーバーに進行状況をポーリングすることについて話していますが、これは奇妙な方法のようです。
ヘルプやヒントは大歓迎です。
java - 1 つのフィールドに複数の型がある JSON の逆シリアル化
JSON (Jackson 1.9.11 および RestTemplate 1.0.1 を使用) をデシリアライズしたいと思います。たとえば、1 つのフィールドがより多くの型の意味を持つ場合があります。
また
いずれかのケースが特定のタイプ (文字列またはカスタム Response クラス) の 1 つのセッターで正しく機能しますが、両方のケースを処理できるようにエンティティ Bean のオーバーライドされたセッターに入れると、例外がスローされます。
私は3つの解決策について考えていましたが、どれもうまくいきませんでした:
- 文字列セッターのみを使用し、内部で ObjectMapper を使用してその文字列をアンマーシャリングしますが、それが「エラー」と等しくない場合、その JS 配列が来ると文字列ではないため、文字列セッターは使用されません:(.
- 独自の JsonDeserializer 拡張機能で多相型処理 (@JsonTypeInfo 注釈) を使用します。これを理解し、実装しようとしています。
- HttpMessageConverter のリストを作成し、使用できるすべてのメッセージ コンバーターの中に入れます。しかし、MappingJacksonHttpMessageConverter のみが使用されるため、この手順は不要だと思います。
編集:現在の仕組み
エンティティ Bean のセッター:
ResponseDeserializer の Deserialize メソッド: