問題タブ [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.
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からスクリーンショットを作成しました。
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 サービスに渡すと、同じ例外がスローされます。
誰かが同様の問題を経験し、解決策を知っていますか?
java - クライアントのフォルダからTomcatサーバーへのヘシアンプロトコルを使用した画像転送
私の目標は、ヘシアンプロトコルを介してクライアントのフォルダからtomcat6サーバーに画像(.jpg
または)をアップロードすることです。.png
そして、サーバー上でopencvを使用して画像処理を行い、画像をクライアントに戻します。
質問1。次の転送手順は正しいですか?
test.jpg
クライアントのフォルダに画像を配置し
-->
、test.jpg
inclient.java
(main.java
)クラスをBufferedImage
-->
変換しBufferedImage
てマットに変換するかIplimage
、サーバーで使用しopenCV
ます。
Hessianを使用してSimpleMessagingExample からhelloworldサンプルを設定し、大きなバイナリデータや他のWebサイトでHessian から検索しましたが、それでも使用方法がわかりません。
質問2。関連するJavaサンプルコードはありますか?
(私はubuntu12 + netbeans7.2を使用しています)
download - Java Hessian ライブラリを使用したファイル ダウンロード API 関数の実装方法
Hessianドキュメントページに記載されているように、ファイルダウンロードAPIを実装しようとしています:
ファイル ダウンロード API
パッケージの例;
public interface Download { public InputStream ダウンロード (文字列ファイル名、InputStream データ); }
しかし、私はまだそれを行う方法を理解できませんでしたか? ダウンロード関数が InputStream 引数を取り、別の InputStream を返すのはなぜですか?
ダウンロード メソッドは、サーバー上のファイルからデータを読み取り、データを送信することになっています。これら 2 つの InputStream は何を参照していますか?
誰かがそれを説明できますか?実際の例は非常に高く評価されています!
java - Hessian による Spnego / Kerberos のサポート
この件に関するドキュメントを見つけるためにグーグルを何度もクロールしましたが、何も見つかりませんでした。セキュリティで保護されたサーバーにアクセスするために kerberos チケットを使用しようとしていますが、401 エラーが発生します。
Web サービスを呼び出す前に、base64 でエンコードされたトークンを含むヘッダーを追加します。
hessian が基本認証 (HessianProxyFactory => setUser/PWD/BasicAuth) をサポートしていることは知っていますが、Spnego/Negotiate についてはわかりません。
別のプロジェクト (HttpAuthSupplierImpl を含む) で cxf を使用して spnego をセットアップできましたが、これはヘシアンを使用していることに注意してください。
質問: それは可能ですか、それとも時間を無駄にしていますか? ありがとう
web-services - ヘシアンのリモートコールを傍受して情報を追加する
これは不可能かもしれませんが、念のために...
Hessianを介して(私たちも)バックエンドアプリケーションと通信するフロントエンドJavaアプリケーションがあります。ロギングと監査の目的で、(フロントエンドで)ログインしているユーザーのuser_idをバックエンドに渡す必要があります。もちろん、明らかな解決策は、すべてのメソッド呼び出しにStringパラメーターを追加することですが、これは多くの作業であり、あまりクリーンではありません。
呼び出しをインターセプトし、user_id(セッションから取得)で装飾し、バックエンドでそのuser_idを取得する(そしてThreadLocalなどに設定する)方法はありますか?
java - javax.serverlet.GenericServletのクラスファイルが見つかりません
クラス->ヘッダーファイルに数日間留まっています!
http://netbeans.org/kb/docs/cnd/beginning-jni-linux.htmlおよびhttp://ringlord.com/jni-howto.htmlによってクライアントでjniを試しました。そして、JNIの(.cpp)ファイルから「helloJNIC++」を返すことに成功しました。これが私のステップです:
- ネイティブ関数を作成し、client.javaに
- Netbeans IDEでこのclient.javaをクリーンアップしてビルドし、client.classファイルを作成します
- javah –jni[パッケージ]。[クラス名]
- 最初の参照と同じようにダイナミックライブラリC++プロジェクトを作成し、client.hをソースファイルに入れ、いくつかのhelloコードを(.cpp)ファイルに入れます--->動作します!
しかし、サーブレット側で同じことをしようとしましたが、機能しません
- Servlet.java-> Servlet.class:ok!
- 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を使用しています
java - Hessian の使用時にスローされる可能性があるランタイム例外または根本的な原因に関するドキュメントはありますか?
Hessian を使用して Web サービス呼び出しを行う Java 1.4 Web アプリがあります。可能な限り堅牢で透過的に記述しようとしています。プロキシを呼び出すときに、ヘッセン例外がデリゲート クラスから抜け出すことは望ましくありません。Hessian ランタイム例外をキャッチしてアンラップし、いくつかの主要な例外 (例: ConnectException
) を再スローするか、別の例外で再ラップできるようにしたいと考えています。しかし、これらの例外を見つけるのは少し難しいです。
委任クラスにあるすべてのメソッドは、この種の構造を持っています。
これは私自身のテストでは正常に機能していますが、他のいくつかのランタイム例外が発生しており、見逃しています。たとえば、 (リモート サーバーがダウンしていた) がHessianConnectionException
原因で をスローする可能性があることが最近わかりました。SocketException
今持っているものがそれをキャッチするだろうと私は完全に期待していました. はHessianConnectionException
から派生していないHessianRuntimeException
ので、キャッチする例外を追加する必要があります。
それは私には問題ありません、それは行われなければなりませんでした...しかし、それはどこで終わりますか? 知っておく必要があるその他のランタイム例外や、その根本的な原因に関するドキュメントが見つかりません。
ここにリストされている唯一のランタイム例外であるため、キャッチするだけで十分であるHessianException
ことを願っています。しかし、これらの新しく発見された問題では、混合バッグのように見えるため、どの例外をアンラップしたいのかわかりません (私の知る限り、同じ問題の異なる表現でした)。HessianRuntimeException
SocketException
ConnectException
プロキシを介してメソッドを呼び出すときにスローされるランタイム例外と、その根本的な原因に関するドキュメントはありますか?
java - ヘシアンはフィールドを除外します
hessianサービスを作成した後、Springアプリケーションとその動作でHessianWebサービスをセットアップしました。
org.springframework.remoting.caucho.HessianServiceExporterの使用-SpringFramework3.1、Hessian 4.0.1
一部のフィールドをシリアル化から除外する方法。Roleを除いてラッパー/継承クラスを書くことはできますが、既存のクラス自体を使用して単純なもの(アノテーションなど)を使用することをお勧めします。
java - REST、JavaSpringを使用したHessianWebサービス
RESTサービスをHessianサービスと連携して動作させることは可能ですか?
詳述すると、私はこのインターフェースを持っています:
このインターフェースは、純粋にRESTfulなサービスであるという考えで作成しましたが、要件の変更により、Hessianサービスも実装する必要があります。
このインターフェイスをHessianにそのまま使用すると、Springは次のようなエラーをスローします。
これは、RESTとヘッセ行列を誤って統合しているか、これら2つを同じサービスに同時に存在させることはできないことを明確に示しています...
では、HessianはRESTで動作できないのでしょうか、それとも魔法を起こすための構成の小さな行が欠けているのでしょうか?
(人々がそれを求めた場合、追加のスニペットが提供されます。あなたが何を必要としているかはよくわかりません。tl; drの投稿はしたくありません。)