問題タブ [spray-dsl]

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.

0 投票する
2 に答える
7140 参照

scala - 「要求されたリソースが見つかりませんでした」というメッセージが表示されるのはなぜですか。単純なスプレールートにアクセスするとき?

簡単なスプレー サンプル アプリを試してみましたが、ルートにアクセスできません。動作しないサンプル ソース コードを github にアップロードしました: Spray -tomcat-example :

私は得る

ルートを次のように定義しました。

そしてもちろん、私はbootクラスを用意しています

application.conf

そしてSprayBootそれ自体:

私はすべての要件に従っていると確信しています。「要求されたリソースが見つかりませんでした」ではなく、実際にコンテンツを提供するように更新するにはどうすればよいですか。

0 投票する
1 に答える
276 参照

scala - スプレーパラメータは機能しますか?

私は、Spray がディレクティブ、特にパラメーター抽出 DSL をどのように実装したかについて頭を悩ませようとしています。

私は磁石のパターンを (かろうじて) 理解していますが、ParamDefMagnet と ParamDefMagnet2 がどのように連携するかについて行き詰まっています。

以下の暗黙的なメソッドによって、ParamDefManget2 が暗黙的に ParamDefMagnet に変換される方法を理解しようとしています。

を呼び出すとparameter("name")、「名前」はどのように暗黙的に に変換されParamDefMagnetますか? そして、それをParamDefMagnet2最初に変換する場合、それvalue: Tをに変換するためにどこから来るのParamDefMagnetですか?

0 投票する
0 に答える
250 参照

scala - スプレー認証ディレクティブが異なる HTTP ステータス コードを返す

認証ディレクティブを使用して、spray.io 1.3.2 のポスト リクエストで基本認証を試みています。私のコードは次のようになります:

これは完全に正常に機能し、承認されたステータス Ok 200、承認されていない 401 です。ただし、ディレクティブの順序が次のように変更された場合:

ステータス 405、HTTP メソッドは許可されていないアクセスに対して許可されていません。なぜそれが起こるのかわかりません。ある時点から、それは理にかなっており、資格情報が欠落しているなどの理由でパスが一致しません。

誰かがそれを明確にしてもらえますか?

v1 レベルで認証を行う理由は、すべてのバージョンを異なるパスワードで保護したかったからです。それを達成する方法はありますか?ディレクティブをチェーンする際のベストプラクティスは何ですか?

DRYの原則に従いたいと思います。

ありがとう

0 投票する
2 に答える
207 参照

scala - スプレーで Try 値を返すサービスを処理する

私は、Spray API を呼び出すときに、Try を返すサービスを同期的に呼び出す必要があるコードベースに取り組んでいます。どのスプレーをフォーマットして、HTTP 経由で返す必要があります。

私の最初の試みは次のようになりました:

ただし、これによりmyService.run()、アプリケーションの起動時に呼び出されました。HTTP 呼び出しが行われていないため、このメソッドが呼び出された理由はわかりません。

だから私は2つの質問があります:

  1. ルートの初期化の一部としてサービスが呼び出されるのはなぜですか?
  2. このケースを処理する最もクリーンな方法は何ですか? 同様のパターンをたどるエンドポイントが他にもいくつかあると想像してください。したがって、これを一貫して処理できる必要があります。
0 投票する
1 に答える
1193 参照

scala - スプレー拒否はステータス コードに変換されませんか?

ここからスプレーマニュアルに従っています。だから私はかなり簡単なテストを集めるために入れました

認可されたディレクティブを含むルートを呼び出しています。したがって、拒否は HTTP ステータス コードに変換されると予想されます。しかし、それはここでは起こっておらず、テストは失敗しています。

ここでいくつかの重要な概念が欠けていますか?

0 投票する
1 に答える
759 参照

akka - java.lang.ClassCastException: akka.actor.Status$Success$ を akka.actor.Status$Success にキャストできません

私は奇妙な例外に直面しています

問題は末尾の $ です - 内部クラスなどのようなもの..

私のコードは次のとおりです。

私の俳優のために、次のように返信しています。

何かトリックを見逃していますか、それともここで間違った名前を使用していますか?

どうも

0 投票する
1 に答える
151 参照

scala - scalaとsprayでエラーを出す

scalaとspray-routingでシンプルなCRUDアプリケーションを作成しようとしています。私は次のルートを持っています:

公式ドキュメントhttp://spray.io/documentation/1.2.2/spray-routing/marshalling-directives/produce/に従ってこれを書きました

MyEntity は次のとおりです (実際には関係ありません)。

そして、次のjson-supportオブジェクトがあります

「heavyLookupById」関数には、いくつかの重いブロッキング計算が含まれており (データベース クエリや http 要求を想定)、そのために scala future を処理する必要があります。

しかし、私の将来が失敗した場合、どうすればよいでしょうか? Bad request (400) や not found (404) などの HTTP エラーで応答したいのですが、どうすればよいですか? 「heavyLookupById」内で「func」を呼び出さない場合-リクエストがハングするだけです-デフォルトのサーバータイムアウト(1分程度)で失敗すると思います。