問題タブ [scalatra]
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.
tomcat - Jetty/Tomcat で例外を処理するさまざまな方法
質問の短いバージョン:リクエスト属性「javax.servlet.error.exception」を設定せずに、Scalatra/(Jetty または Tomcat) が実行をErrorHandler のハンドルに渡す原因は何ですか?
より長いものとより多くのコンテキスト: 最近参加したプロジェクトでは、ErrorHandlers のハンドル メソッドに、"javax.servlet.error.exception" 要求属性と他のすべての例外からの例外を処理するための個別のブロックがあります。Jetty でアプリケーションを実行し、Jetty が ServletExceptions をアンラップして上記の属性に配置することを理解しています。「javax.servlet.error.exception」以外の例外を処理するブロックが呼び出される原因は何ですか? それとも冗長で削除できますか?
最初にコードを書いた人がプロジェクトを去りました。残りの技術スタックは、違いがあれば Scala と Scalatra です。
編集: 特定の環境では、コードが Tomcat で実行されるようです。
javascript - angular jsフォームからデータを投稿中にエラーが発生しました
scalatra サーブレットにデータを投稿する angularJS フォームがあります。フォームが送信されると、scalatra サーブレットでフォーム パラメータを取得できません。
以下は私のコードです
AngularJS
HTMLフォーム
スカラトラ サーブレット
アプリを実行してフォームから送信しようとすると、このエラーが発生します
エラー 500 キーが見つかりません: 名前 (firebug lite から取得)
何か不足している場合や、これを行う別の方法がある場合はお知らせください
unit-testing - テスト中の Scalatra Servlet init() (Jetty ServletTester)
メソッドでいくつかの重要な初期化を行う Scalatra サーブレットをテストしていますinit(context: ServletContext)
。
実行されないテスト中 ( ScalatraSuiteを使用) 。テスト中に重要なinit
初期化を行うにはどうすればよいですか?
そのScalatra のテスト ページ(セクション「テストに関する FAQ」) では、それが明らかにされていません。
追加情報:
「テストに関するよくある質問」セクションには次のように記載されています
scalatra-test は Jetty の [ServletTester][3] 上に構築されています。
しかし、Javaでコーディングしている場合、initの実行方法に関する情報をインターネットから抽出することもできませんでした.
scala - 複数のサーブレットを WebAppContext に追加できますか?
Scalatra で Jetty サーバーをセットアップするための次の Scala コードがあります。
私の問題は、単一のサーブレットを登録した場合にのみ機能するように見えることです。
投稿したコードのように、複数登録すると、そのうちの 1 つだけが読み込まれます。
複数のサーブレットをロードすることは可能ですか? だと思いますが、方法がわかりません。
最初のサーブレットからページを読み込もうとすると、2 番目のサーブレットに属するページのみを参照する次のエラー メッセージが表示されます。
scala - CoffeeScriptの別のコンパイルパスを宣言する
https://github.com/softprops/coffeescripted-sbtを使用してCoffeeScriptをデフォルトの場所にコンパイルするScalatraアプリがありますtarget/scala-2.9.1/resource_managed/main/js
。生成されたjavascriptを公開されている場所、という名前のフォルダーに配置したいのですが、src/main/webapp/coffee
指定された例のデフォルトは「/ target/...」です。
私のbuild.sbt:
コンパイルされたアセットが内部にbuild.sbt
正しく入るパスを参照するにはどうすればよいsrc/main/webapp/coffeee
ですか?
javascript - プレイから!Scalatra へ、テンプレート作成の頭痛の種、ディレクトリ構造
Play! を変換しようとしています。2.0アプリケーションを Scalatraアプリケーションに。ある程度成功しましたが、3 つの問題が残っており、そのうちの 1 つには独自のチケットがあります。
1) 私はそれを理解しsrc/main/webapp/WEB-INF/views
、src/main/webapp/WEB-INF/layouts
レイアウトを標準のディレクトリ構造に含めます。ただし、これを別の階層で機能させることはできませんでした。たとえば、2 つのサーブレットがあり、それらに異なるビューが必要な場合:
WEB-INF/views
私が提供した例では、またはの直下以外のものを適切に参照することはできませんWEB-INF/layouts
。おそらく、何かをweb.xml
正しく宣言していないからですか?
2) テンプレートはどうなっていますか? この変換を機能させるには、アンダースコア テンプレートを Scalatra から利用できるもの (Jade、Mustache など) と組み合わせて使用できる必要があります。すべてのデフォルトの例で Jade が使用されているため、Jade を選択しました。
ここで 2 つのサブ問題に直面しています。
1)このチケットに JavaScript を含めたにもかかわらず、Jade で Underscore テンプレートを使用できないようです。これはうまくいくかもしれないし、うまくいかないかもしれない。これはおそらく....
2) 私のinclude
ステートメントは、実際には部分的なものではなく、タグのように見えるため、最初のサブ問題をテストするのは非常に困難です。
同等のapp.jade
ファイルは次のようになります。
どんな助けでも大歓迎です!
scala - デフォルトのAkkaSupportサーブレットの例は機能しません
Scalatraドキュメントページの例から直接サーブレットを取得した場合:
エラーが発生しますclass MyAppServlet needs to be abstract, since method system in trait AkkaSupport of type => akka.actor.ActorSystem is not
defined
。
次に、私は試しました:
しかし、別のエラーを受け取りますtype mismatch; found : org.scalatra.ActionResult required:
akka.dispatch.ExecutionContext
。アッカに慣れていないので、ここで何が起こっているのですか?
scala - jade "include" が期待どおりに機能しない
1 つのファイル内から別の Jade ファイルを参照する:
HTML を次のようにレンダリングします。
具体的には、Scalatra を使用します。私は何を間違っていますか?
jetty - Scalatra ホスト静的
/static のデフォルトのサーブレットを登録すると、/static から scalatra 静的ファイル (js など) をホストできます。/static をクラスパスの外側で指定するにはどうすればよいですか (例: c:/path/static)。埋め込みホスティングとは別の部分。
json - Scalatra テストの安らかな JSON オブジェクト
Scalatra を使用していくつかの JSON RESTful API のテストを書いています。スニペットは次のようになります。
期待される本文は、JSON サポートを通じて Scalatra によってシリアル化された JSON です。私の質問は、ボディを scala の同じケース クラス インスタンスに変換し、テストを大幅に簡素化するにはどうすればよいかということです。