問題タブ [hessian]

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 に答える
737 参照

tomcat7 - ApacheCayenneROPサーバー「リクエストに関連付けられたセッションがありません。」Tomcat7で

私は、Javaリッチクライアントとリモートオブジェクト永続サーバーを使用してカイエンプロジェクトを開発しています。私が金持ちのcientがローカルホスト上の同じマシンにデプロイされているCayenne-ROP-Serverに接続している場合(cayenne ropチュートリアルで説明されているようにMavenゴールからJettyに)すべてが正常です:

最初の行で接続するURLを非ローカルホスト(ubuntuのTomcat7)に変更すると、4行目になるまですべてが機能します。

次に、「リクエストに関連付けられたセッションがありません」というエラーが表示されます

クライアントの完全な出力は次のとおりです。

ApacheTomcatログのサーバー側の出力は次のとおりです。

Apache Cayenne 3.0.2、Apache-Tomcat 7.0.29、Java7SDKを使用しています

すべてのヘルプについて事前にTHX

PS。たぶん、ローカルのJettyサーバーは、リモートのUNIXマシン上のTomcatサーバーとは別の方法で処理します。

編集:以下の回答でAndrusによって与えられたヒントの後に、次のようなSessionListernを追加しました。

したがって、このlisternは、この質問の上に4行のコードstatetを実行すると、次の出力を返します。

ここでは、作成されるセッションがあり、強制終了されるセッションがないことがわかります。では、なぜ私のコード行からObjectContextを実行するのですか?

セッションを無視します。クエリを実行する前に明示的に設定する必要がありますか?リモートでデプロイされたcayenneサーバーにアクセスするためのクライアント側の標準の初期化コードは何ですか。カイエンropチュートリアルで与えられたものとは異なりますか?

事前にTHX。

編集:このエラーを取り除くことを望んでカイエン3.1B1にアップグレードしましたが、クエリを送信しようとしたときの同じ状況:「セッションなし...」。

また、ローカルホストにTomcatをセットアップし、リモートと同じように構成しました。クエリを送信しようとすると、ここで「セッションがありません...」と同じ問題が発生します。

したがって、ローカルホスト上のJettyは、上から4行の初期化コードを取得し、後続のすべてのクエリのセッションを保持する唯一のJettyです。これが私の質問です。この惑星の誰かがTomcatにカイエンropサーバーをデプロイしようとして成功したことはありますか?

すべての小さなヒントのために事前にTHX。

編集:それで、ローカルtomcat7でサーバー側のデバッグを少し行いました。

1.クライアントは上記のコードの2行目を実行します。

サーバーサイドでセッションリスナーがトリガーされ、IDがB6565298F222294F601B76333DBE4911でセッションが作成されたことが通知されます。

2.クライアントは上から3行目を実行します。

サーバー側では、クラスorg.apache.cayenne.remote.service.HttpRemoteSessionのメソッドが呼び出されます。

このメソッドの1行目で新しいセッションが作成されます。そのIDはECC4A81D6240A1D04DA0A646200C4CE6です。この新しいセッションには、属性が1つだけ含まれています。キーは「org.apache.cayenne.remote.service.HttpRemoteService.ServerSession」で、値は(誰が推測したのですか?)ステップ1で前に作成したセッションです。新しいセッションが作成されても、serveltListenerはトリガーされません。

3.クライアントは4行目を上から実行します

サーバーサイドでは、getServerSession()メソッドが再度呼び出されます。今回も新しいセッションが作成されます(なぜですか?)。また、このセッションには属性が含まれていません。したがって、「return(ServerSession)httpSession.getAttribute(SESSION_ATTRIBUTE);」という行があります。メソッド内でgetServerSession()はnullを返し、これにより「リクエストに関連付けられたセッションがありません」という例外がトリガーされます。

では、なぜカイエンのサーバーサイドがe neセッションを作成し、以前に作成された古いセッションを使用しないのでしょうか。クエリ内でセッションを明示的に送信する必要がありますか?

編集:上から4行のコードを実行しながら、netbeanshttp-monitorからスクリーンショットを作成しました。 httpモニターTomcatcayenne

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

objective-c - HessianKit (Objective-C/Cocoa) を使用した JSON ペイロードの Base64 文字列のシリアル化

iOS アプリを既存の Grails バックエンド サーバーに接続しようとしています。バックエンドは、grails リモート処理プラグイン (バージョン 1.3) を使用して、ヘシアン Web サービスを公開します。私の Android アプリは、すべての Web サービス メソッドを正常に呼び出します。

私の目標は、電話からサーバーに jpeg 画像を送信することです (Android アプリで動作します)。私のアプローチは、JSONKit で JSON オブジェクトを作成し、画像を base64 でエンコードされた文字列として含めることです。iOS 4.2 をターゲットとする ARC と Base64 エンコーディング用の Nick Lockwood の NSData+Base64 カテゴリ (https://github.com/nicklockwood/Base64) を使用する XCode 4 プロジェクトで HessianKit を使用しています。

これが私のコードです:

問題は、アプリによって呼び出されたときにサーバーが期待値をスローすることです。

アプリからの他のすべての JSON ペイロード (文字列、日付、数値など) は、サーバーによって問題なく逆シリアル化できます。逆の場合、つまり、base64 でエンコードされたイメージを JSON ペイロードとしてサーバーから応答としてアプリに送信します。も機能します。

バグ レポートとメーリング リストを何時間も読んだ結果、問題は HessianKit が Hessian 1 プロトコルのみをサポートしているのに、remoting 1.3 に同梱されている hessian バージョンが 4.0.7 であることにあるのではないかと思います。4.0.7 はおそらく Hessian 2 プロトコルを使用しており、下位互換性がありません。しかし、それは単なる推測です。

編集: 実際、この問題は JSON とは何の関係もありません。文字列を通常の文字列 (JSON に埋め込まれていない) として Web サービスに渡すと、同じ例外がスローされます。

誰かが同様の問題を経験し、解決策を知っていますか?

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

java - クライアントのフォルダからTomcatサーバーへのヘシアンプロトコルを使用した画像転送

私の目標は、ヘシアンプロトコルを介してクライアントのフォルダからtomcat6サーバーに画像(.jpgまたは)をアップロードすることです。.pngそして、サーバー上でopencvを使用して画像処理を行い、画像をクライアントに戻します。

質問1。次の転送手順は正しいですか?

  • test.jpgクライアントのフォルダに画像を配置し
    -->test.jpgin client.javamain.java)クラスをBufferedImage
    -->変換しBufferedImageてマットに変換するかIplimage、サーバーで使用しopenCVます。

Hessianを使用してSimpleMessagingExample からhelloworldサンプルを設定し、大きなバイナリデータや他のWebサイトでHessian から検索しましたが、それでも使用方法がわかりません。

質問2。関連するJavaサンプルコードはありますか?

(私はubuntu12 + netbeans7.2を使用しています)

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

download - Java Hessian ライブラリを使用したファイル ダウンロード API 関数の実装方法

Hessianドキュメントページに記載されているように、ファイルダウンロードAPIを実装しようとしています:

ファイル ダウンロード API

パッケージの例;

public interface Download { public InputStream ダウンロード (文字列ファイル名、InputStream データ); }

しかし、私はまだそれを行う方法を理解できませんでしたか? ダウンロード関数が InputStream 引数を取り、別の InputStream を返すのはなぜですか?

ダウンロード メソッドは、サーバー上のファイルからデータを読み取り、データを送信することになっています。これら 2 つの InputStream は何を参照していますか?

誰かがそれを説明できますか?実際の例は非常に高く評価されています!

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

java - Hessian による Spnego / Kerberos のサポート

この件に関するドキュメントを見つけるためにグーグルを何度もクロールしましたが、何も見つかりませんでした。セキュリティで保護されたサーバーにアクセスするために kerberos チケットを使用しようとしていますが、401 エラーが発生します。

Web サービスを呼び出す前に、base64 でエンコードされたトークンを含むヘッダーを追加します。

hessian が基本認証 (HessianProxyFactory => setUser/PWD/BasicAuth) をサポートしていることは知っていますが、Spnego/Negotiate についてはわかりません。

別のプロジェクト (HttpAuthSupplierImpl を含む) で cxf を使用して spnego をセットアップできましたが、これはヘシアンを使用していることに注意してください。

質問: それは可能ですか、それとも時間を無駄にしていますか? ありがとう

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

web-services - ヘシアンのリモートコールを傍受して情報を追加する

これは不可能かもしれませんが、念のために...

Hessianを介して(私たちも)バックエンドアプリケーションと通信するフロントエンドJavaアプリケーションがあります。ロギングと監査の目的で、(フロントエンドで)ログインしているユーザーのuser_idをバックエンドに渡す必要があります。もちろん、明らかな解決策は、すべてのメソッド呼び出しにStringパラメーターを追加することですが、これは多くの作業であり、あまりクリーンではありません。

呼び出しをインターセプトし、user_id(セッションから取得)で装飾し、バックエンドでそのuser_idを取得する(そしてThreadLocalなどに設定する)方法はありますか?

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

java - javax.serverlet.GenericServletのクラスファイルが見つかりません

クラス->ヘッダーファイルに数日間留まっています!

http://netbeans.org/kb/docs/cnd/beginning-jni-linux.htmlおよびhttp://ringlord.com/jni-howto.htmlによってクライアントでjniを試しました。そして、JNIの(.cpp)ファイルから「helloJNIC++」を返すことに成功しました。これが私のステップです:

  1. ネイティブ関数を作成し、client.javaに
  2. Netbeans IDEでこのclient.javaをクリーンアップしてビルドし、client.classファイルを作成します
  3. javah –jni[パッケージ]。[クラス名]
  4. 最初の参照と同じようにダイナミックライブラリC++プロジェクトを作成し、client.hをソースファイルに入れ、いくつかのhelloコードを(.cpp)ファイルに入れます--->動作します!

しかし、サーブレット側で同じことをしようとしましたが、機能しません

  1. Servlet.java-> Servlet.class:ok!
  2. Servlet.class-> Servlet.h:失敗!!!! エラー:javax.servlet.GenericServletのjavax.servlet.GenericServletクラスファイルにアクセスできませんが見つかりません

以下は私がこれまでに見つけて試した解決策です、

  • パッケージ名を確認してください

  • sudo gedit / etc / profile、sudo gedit .bashrc、sudo / etc / environment; それらにJAVA_HOMEとCLASSPATHを追加し、それらをソースして更新してから、$ JAVA_HOMEをエコーし​​、$CLASSPATHをエコーし​​て確認します。

  • http://www.jarfinder.com/index.php/java/info/javax.servlet.GenericServletからservlet-api-6.0.14.jarとservlet-api-5.0.16.jarをダウンロードし 、上記の2つを追加します( .jar)by netbeans IDE-> server-> property-> libraries-> Add JAR

この問題を理解する方法を教えてください、どうもありがとうございました!!ところで、私はhessianServletを使用しています

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

java - Hessian の使用時にスローされる可能性があるランタイム例外または根本的な原因に関するドキュメントはありますか?

Hessian を使用して Web サービス呼び出しを行う Java 1.4 Web アプリがあります。可能な限り堅牢で透過的に記述しようとしています。プロキシを呼び出すときに、ヘッセン例外がデリゲート クラスから抜け出すことは望ましくありません。Hessian ランタイム例外をキャッチしてアンラップし、いくつかの主要な例外 (例: ConnectException) を再スローするか、別の例外で再ラップできるようにしたいと考えています。しかし、これらの例外を見つけるのは少し難しいです。

委任クラスにあるすべてのメソッドは、この種の構造を持っています。

これは私自身のテストでは正常に機能していますが、他のいくつかのランタイム例外が発生しており、見逃しています。たとえば、 (リモート サーバーがダウンしていた) がHessianConnectionException原因で をスローする可能性があることが最近わかりました。SocketException今持っているものがそれをキャッチするだろうと私は完全に期待していました. はHessianConnectionExceptionから派生していないHessianRuntimeExceptionので、キャッチする例外を追加する必要があります。

それは私には問題ありません、それは行われなければなりませんでした...しかし、それはどこで終わりますか? 知っておく必要があるその他のランタイム例外や、その根本的な原因に関するドキュメントが見つかりません。

ここにリストされている唯一のランタイム例外であるため、キャッチするだけで十分であるHessianExceptionことを願っています。しかし、これらの新しく発見された問題では、混合バッグのように見えるため、どの例外をアンラップしたいのかわかりません (私の知る限り、同じ問題の異なる表現でした)。HessianRuntimeExceptionSocketExceptionConnectException

プロキシを介してメソッドを呼び出すときにスローされるランタイム例外と、その根本的な原因に関するドキュメントはありますか?

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

java - ヘシアンはフィールドを除外します

hessianサービスを作成した後、Springアプリケーションとその動作でHessianWebサービスをセットアップしました。

org.springframework.remoting.caucho.HessianServiceExporterの使用-SpringFramework3.1、Hessian 4.0.1

一部のフィールドをシリアル化から除外する方法。Roleを除いてラッパー/継承クラスを書くことはできますが、既存のクラス自体を使用して単純なもの(アノテーションなど)を使用することをお勧めします。

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

java - REST、JavaSpringを使用したHessianWebサービス

RESTサービスをHessianサービスと連携して動作させることは可能ですか?

詳述すると、私はこのインターフェースを持っています:

このインターフェースは、純粋にRESTfulなサービスであるという考えで作成しましたが、要件の変更により、Hessianサービスも実装する必要があります。

このインターフェイスをHessianにそのまま使用すると、Springは次のようなエラーをスローします。

これは、RESTとヘッセ行列を誤って統合しているか、これら2つを同じサービスに同時に存在させることはできないことを明確に示しています...

では、HessianはRESTで動作できないのでしょうか、それとも魔法を起こすための構成の小さな行が欠けているのでしょうか?

(人々がそれを求めた場合、追加のスニペットが提供されます。あなたが何を必要としているかはよくわかりません。tl; drの投稿はしたくありません。)