問題タブ [jsr223]

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 投票する
1 に答える
648 参照

java - rvm jruby install を使用して Java コードに JRuby を埋め込む

Java アプリケーション内から Ruby コードを埋め込んで評価しようとしています。クラスパスに jruby-complete.jar を配置する代わりに、rvm でインストールされた jruby 環境を使用できるようにする必要があります。基本的なカーネル コードは実行できますが、標準ライブラリ (fileutils、tmpdir など) を必要とする問題があります。

RVM 経由でインストールされた JRuby を使用する以下のテスト ファイルを作成しました。ローカルに rvm + jruby インストールがあれば、誰でもコンパイルして実行できるはずです (JRUBY_VERSION をインストールされているバージョンに変更します)。私が参照している jruby.jar は jruby-complete.jar と同じではないことに気付きましたが、外部 jar をダウンロードせずに標準ライブラリをロードする方法があることを願っています。

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

osgi - Equinox と Java Scripting API

スクリプト エンジン ( JSR-223 準拠)を含む OSGi (Equinox) バンドルを作成し、それを 経由で別のバンドルで使用したいと考えていますScriptEngineManager.getEngineFactories()

ただし、Java Scripting API のサービス検出メカニズム (jar ファイル サービス検出) は、インストールされたバンドル内のスクリプト エンジンを検出できません。

解決策があるため、Apache Felix または Apache Sling を使用することを提案したトピックに関する回答はすでにほとんど見られませんでした。しかし、Equinox の実装に問題を処理する方法があるかどうか疑問に思っています。

0 投票する
3 に答える
1906 参照

ant - antから実行しています:「プロバイダーcom.sun.script.javascript.RhinoScriptEngineFactoryが見つかりません」

JSR223を使用するアプリケーションを開発しています。

実行がAntからの場合を除いて、すべて問題ありません(単体テストとコマンドラインからの実行)。この場合、このエラーによる実行:

JDK7にはRhinoの実装が含まれており、このクラスはrt.jarにあると確信しています。Antが実行に使用されているのになぜ見つからないのですか?

JDKバージョン:javaバージョン "1.7.0_11" Java(TM)SEランタイム環境(ビルド1.7.0_11-b21)Java HotSpot(TM)64ビットサーバーVM(ビルド23.6-b04、混合モード)

ANTバージョン:2012年5月22日にコンパイルされたApache Ant(TM)バージョン1.8.4

ありがとう

テスト:

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

java - JRS-223 はランタイム環境をカバーしていますか?

JSR-223 は、abcl から rhino、jython まで、あらゆる種類の準拠言語に共通する対話型インタープリターの仕様をカバーしていますか?

そうでない場合、これらすべての言語は環境をJavaで好きなように作成しますか?それとも、ほとんどが独自の言語で(ライブラリとして)書かれていますか?

例: python インタラクティブ インタープリターは、実行されている場所に応じて、python または C/Java/C# で記述されていますか?


編集:

すべてのスクリプト言語に REPL が必要だと言っているわけではありませんが、これまで見てきたすべての JVM ベースのスクリプト言語には REPL が必要です。標準の REPL 環境の仕様が確立されていない場合は、その時が来ているのかもしれません。

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

multithreading - Jmeter+Jruby-JSR223 サンプル Request+jmeter プロパティが 4 つを超えるスレッドに割り当てられていない

JMeter テスト計画 (JMX) に既に割り当てられている 3 つのプロパティを持つ JMeter 要求を与える ant JMeter タスクをセットアップしました。

以下のようにJrubyスクリプト(JSR223サンプラー)でこれらのプロパティを読んでいました(最初の4スレッドまでは、3つのプロパティ値すべてを正しく取得し、ローカル変数(pvalue1mpvalue2)に割り当てています..

しかし、問題は、スレッド番号 5 から、以下の例外をスローし始めることです。

私のjrubyにはこのようなjava_importがあります...

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

java - Java-「安全な」スクリプト

提供された関数セットに強制的に制限できるJavaプラットフォームのスクリプトを知っている人はいますか(提供されていない限り、関数は絶対に使用しないことが望ましい)。私はいくつかのJSR223互換言語を試しましたが、すべての場合にセキュリティを危険にさらすことができました。

私のシステムが現在行っていること:

  1. 要求されたスクリプトをファイルシステムからロードします。
  2. スクリプトを実行するためのコンテキストを作成します
  3. 新しいコンテキストでスクリプトを実行します

セキュリティマネージャが適切に構成されている場合でも、悪意のあるスクリプトコンテンツが、他の方法ではアクセスできないオブジェクトのフィールドにアクセスする(またはさらに悪いことに、変更する)のを防ぐにはどうすればよいでしょうか。これは、間違いがあった場合、またはスクリプトが悪意のある動作に合わせて意図的に調整された場合に、多少の損害を引き起こす可能性があります。

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

javascript - 他のバンドルのパッケージの Javascript とクラス

私は自分の問題を説明しようとします。次の構成:

  1. Servicemix には 2 つのバンドルがあります。1 つはモデル、もう 1 つはサービスです。モデル バンドルはモデル パッケージをエクスポートし、サービス バンドルはモデル バンドルからモデル パッケージをインポートします。
  2. サービス バンドルには、実行という 1 つのサービス メソッドを持つ Web サービス (CXF) があります。このメソッドは 2 つのパラメーターを使用します。1 つ目 (文字列) は JavaScript ファイルの名前で、2 つ目は引数のマップ (HashMap) です。このサービスは、javax.scipt.CompiledScript.eval(Bindings bindings) を使用して JavaScript スクリプトを実行します。アイデアは、スクリプト言語でビジネス ロジックを作成することです。
  3. JavaScript スクリプトは、次の方法で Java オブジェクトにアクセスできます。

a/ バインディング - 問題なし。bindings.put(name, object) を使用して追加したすべてのオブジェクトのインスタンスがスクリプトに表示されます

b/ importPackage(Packages.my.java.package.from.model.bundle) - 問題が発生しました: キーワード「new」を使用してモデル バンドルから javascript Java オブジェクトを作成しようとすると、次のエラーが発生します。

class com.google.code.scriptengines.js.util.ExtendedScriptException: org.mozilla.javascript.EcmaError: ReferenceError: 「製品」が定義されていません。(#4) ファイルの [4] で

ここで、Product はモデル バンドルの Java クラスであり、4 行目で次のオブジェクトを作成しようとしています。

そして、非常に重要な情報だと思います。Servicemix 4.2.0 ではすべて問題ありませんでした。4.3.1 にアップグレードする必要がありますが、動作しません (両方とも Fusesource のバージョン)。

何か助けはありますか?

よろしく、ジャセク

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

eclipse - Eclipse でのコンパイル済み Groovy スクリプトのデバッグ

JUnit テストから Eclipse で Groovy スクリプトをデバッグしようとしています。Groovy コードは、Tomcat で実行される大規模な Java アプリケーションの一部です。さまざまな理由から、システムはコンパイル済みの JSR223 式を使用するように設定されています。簡略化されたコード スニペットは次のとおりです。

テストは正常に実行されますが、Foo.groovy にブレークポイントが設定されていて、ファイルがクラスパス上にあるにもかかわらず、デバッグ時にブレークポイントにヒットすることはありません。String 形式の式とそれを含む実際のファイルとの間に関連付けがないため、これは機能しないと思います。では、文字列とそれに対応するファイル名の間にこの関連付けを作成する方法はありますか? 前述のとおり、CompiledScript を使用する必要があります。補足として、このアプローチを使用すると、同じ Groovy スクリプトを使用してデバッガーでブレークポイントをヒットできました。

もちろん、この場合、Groovy エンジンはファイルを直接ロードします。最初の例を機能させる方法に関するヒントは大歓迎です。ありがとう。

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

java - Java Scripting (jsr223): rhino コンパイル機能を (再) 追加することは可能ですか?

Oracle は、jdk6 に削除された rhino を含めました

削除された機能の 1 つは、rhino js からバイトコードへのコンパイラーです。

アプリケーションレベルで含めることは可能ですか?

jsr223 呼び出しを変更せずにパフォーマンスを向上させたい