問題タブ [simplexmlrpcserver]
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.
python - PythonでSimpleXMLRPCServerで**kwargsを使用する
pythonsSimpleXMLRPCServerを使用してリモートサービスとして公開したいクラスがあります。サーバーの起動は次のようになります。
次に、次のようなServiceRemoteクラスがあります。
したがって、ServiceRemoteオブジェクトに対するすべての呼び出しは、xmlrpclib.Serverに転送され、xmlrpclib.Serverはそれをリモートサーバーに転送します。問題は、名前付きvarargsを受け取るサービスのメソッドです。
@useDbデコレータは関数をラップし、呼び出しの前にdbを作成して開き、呼び出しが完了した後、結果を返す前に閉じます。
このメソッドを呼び出すと、「call()が予期しないキーワード引数'name'」というエラーが発生します。それで、変数の名前付き引数をリモートで取るメソッドを呼び出すことは可能ですか?または、必要なメソッドバリエーションごとにオーバーライドを作成する必要がありますか。
回答ありがとうございます。コードを少し変更したので、質問はもう問題ではありません。ただし、実際に位置引数を実装してリモート呼び出しをサポートする必要がある場合は、将来の参照用にこれを知っています。トーマスとプラプタクスのアプローチの組み合わせが良いと思います。xmlrpclientを介してクライアントでkwargsを位置引数に変換し、サーバー側のメソッドにラッパーを設定して位置引数を解凍します。
python - 別のスレッドで SimpleXMLRPCServer を実行してシャットダウンする
Python で SimpleXMLRPCServer を介してテストしたいクラスがあります。単体テストをセットアップする方法は、新しいスレッドを作成し、その中で SimpleXMLRPCServer を開始することです。次に、すべてのテストを実行し、最後にシャットダウンします。
これは私のサーバースレッドです:
問題は、ServerThread.stop() を呼び出し、続いて Thread.stop() と Thread.join() を呼び出しても、handle_request で既に要求を待機している場合、スレッドが適切に停止しないことです。また、ここには使用できる割り込みまたはタイムアウトのメカニズムがないように見えるため、サーバー スレッドをきれいにシャットダウンする方法について途方に暮れています。
python - SimpleXMLRPCServer で例外を送信する
SimpleXMLRPCServer のサーバー側で例外を発生させようとしています。ただし、すべての試行で、クライアント側で「Fault 1」例外が発生します。
RPC_Server.AbortTest() ファイル "C:\Python25\lib\xmlrpclib.py"、1147 行、コール内 return self.__send(self.__name, args) ファイル "C:\Python25\lib\xmlrpclib.py"、行1437, in __request verbose=self.__verbose File "C:\Python25\lib\xmlrpclib.py", line 1201, in request return self._parse_response(h.getfile(), sock) File "C:\Python25\lib\ xmlrpclib.py"、1340 行目、_parse_response で u.close() を返します: :テストは RPC 要求によって中止されました">
python - SimpleXMLRPCServer は複数のアドレスでリッスンできますか?
私は 2 つの IP をマシンにマッピングしていますが、Apache でできるように、1 つの python xmlrpc サーバーを両方の IP (同じポート) でリッスンする方法を考えていました。
ありがとうございました、
python - Python SimpleXMLRPCServerのクライアントのIPアドレス?
私はSimpleXMLRPCServerサーバー (Python) を持っています。
リクエスト ハンドラでクライアントの IP アドレスを取得するにはどうすればよいですか?
この情報はログに表示されます。ただし、リクエスト ハンドラ内からこの情報にアクセスする方法がわかりません。
python - SimpleXMLRPCServer、wxPython、Thread - 停止するには?
これは私の問題を説明するプログラムの例です。プログラムは wxPython アプリケーションを開始し、スレッドで SimpleXMLRPCServer を開始します。これはすべてうまくいきます。私の問題は、SimpleXMLRPCServer スレッドが handle_request() 呼び出しでブロックされているため、シャットダウンできないことです。Windows XP マシンで開発しています (Linux でも同じ問題が発生するかどうかはわかりません)。
私のオンライン調査から、スレッドの強制終了は厄介な問題であることがわかります。
私のオプションはねじれているか、モジュールを処理しているようです...別の解決策はありますか?
これは私が非常に興味深いと思った投稿の1つですが、Pythonではなくソケットでブロックされている可能性があるため、役に立たないと思います: http://www.velocityreviews.com/forums/t330554-kill- a-thread-in-python.html
java - PythonサーバーでApacheXML-RPCクライアントをデバッグする方法
ApacheXML-RPCクライアントとPythonSimpleXMLRPCServerの間で通信するためのxmlrpcコードを書いています。リクエストXML/レスポンスXMLを表示する方法が見つからないため、デバッグが困難です。とにかく、それがコンソールにダンプされるか、ファイルにログインするのを見ることができますか?
python - xmlrpclib.ResponseError: ResponseError() の原因は何ですか?
XML-RPC を試しています。
次のサーバー スクリプト (Python) があります。
および次のクライアント スクリプト:
これをローカルでテストしたところ、問題なく動作しました。クライアントスクリプトからの入力を吐き出すだけです。これは正しいことです。
ただし、リモートサーバーで実行しようとすると、次のエラーが発生します。
これを引き起こす可能性のあるアイデアはありますか?
アップデート:
いつverbose=True
:
python - SimpleXmlRpcServer _sock.rcv が数千回のリクエスト後にフリーズする
WAN 経由で複数の XMLRPC クライアントからの要求を処理しています。このことは、たとえば、1 日 (場合によっては 2 日) の間うまく機能し、その後 socket.py でフリーズします。
_sock.timeout は -1、_sock.gettimeout は None
メイン スレッド (XMLRPC 呼び出しを受信するだけ) で特別なことを行うことはなく、DB と通信する別の 2 つのスレッドがあります。これらのスレッドは両方とも正常に動作し、このブロックを存続します (WinPdb で確認しました)。クライアントは 1KB を超えない長さのリクエストを送信しており、特別なコンテンツはありません。辞書にあるきれいな文字列だけです。2 回のブロックの間に、何万ものリクエストを問題なく処理しています。ファイアウォールがオフになっている、同じマシンに奇妙なソフトウェアがないなど...
Windows XP と Python 2.6.4 を使用しています。2.6.4 との違いを確認しました。および 2.6.5 であり、重要なことは何も見つかりませんでした (または、私が間違っているのでしょうか?)。2.7 バージョンは、MySqlDB のバイナリが見つからないため、オプションではありません。
インターネット接続が不十分なクライアントによって時々発生する唯一のことは、ソケットが壊れることです。これは 5 ~ 10 分ごとに発生しています (2 秒ごとにサーバーにアクセスするクライアントは 5 つだけです)。
私はこの問題にかなりの時間を費やしてきましたが、今、何をすべきかについての考えを失い始めています。ヒントや考えをいただければ幸いです。
python - PythonでSimpleXMLRPCServerとBaseHTTPRequestHandlerを組み合わせる
JavaScriptではクロスドメインxmlrpcリクエストを使用できないため、HTTPを介したHTMLと同じドメイン上のXML-RPCサービスの両方を公開するPythonアプリを作成する必要があります。
PythonでHTTPリクエストハンドラーとSimpleXMLRPCServerを作成するのは非常に簡単ですが、どちらも別のポートでリッスンする必要があります。つまり、別のドメインを意味します。
ローカルホストの単一のポートでリッスンし、HTTPRequestHandlerとXMLRPCRequestハンドラーの両方を公開するものを作成する方法はありますか?
現在、2つの異なるサービスがあります。
アップデート
- デバイスにApacheをインストールできません
- ホストされるページは単一のhtmlページになります
- 唯一のクライアントは、Pythonサービスがそれ自体を実行する魔女のデバイスになります