問題タブ [unmarshalling]
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.
java - Java RMI (サーバー: TCP 接続アイドル/クライアント: Unmarshaleexception (EOFException))
Pi を計算する Sun Tutorials RMI アプリケーションを実装しようとしています。私はいくつかの深刻な問題を抱えており、Web 全体と数人の Java スキルのある人々を検索してきましたが、解決策を見つけることができません。あなたが私の欲求不満を終わらせることができることを願っています。
クレイジーなことは、デスクトップ コンピューターの cmd からアプリケーションを実行できることです。ラップトップのまったく同じディレクトリにあるまったく同じコードでまったく同じことを試みると、次のエラーが発生します。クライアントをサーバーに接続しようとすると、問題が発生します。
デスクトップで実行できるため、ポリシーファイルが原因でエラーが発生したとは思いません。他の場所にあるはずです。誰かが同じことを試したことがありますか?私の問題がどこにあるかについてのヒントを教えてください。
前もってありがとうペリー
java - java.rmi.UnmarshalException: サーバーでクライアント クラスをプルできません
サーバーがクライアント側の定義されたクラスを必要としない単純な状況で正常に動作する 2 台のマシンに RMI クライアント/サーバーをセットアップしています。ただし、クライアント側で定義されたクラスを使用する必要がある場合、サーバーにそれらのクラスを非整列化させることができません。java.rmi.server.codebase
これは、クライアント アプリへの引数として渡すプロパティに問題があると思われます。私は Sun の RMI チュートリアル トレイルに従いましたが、ルート パッケージ ディレクトリのすぐ上のディレクトリで実行されるため、クライアントとサーバーを実行するときにクラスパス引数を指定しないことを除いて、手順に正確に従っていると思います (ただし、これも試してみました)。効果)。
以下で詳しく説明するさまざまなクライアント側の組み合わせを実行しようとしたときに発生する例外はすべて同じです。
RmiServer exception:
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: test.MyTask
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:353)
at sun.rmi.transport.Transport$1.run(Transport.java:177)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:636)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142)
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:178)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:132)
at $Proxy0.execute(Unknown Source)
at test.myClient.main(myClient.java:32)
詳細は次のとおりです。
私のクライアント/サーバー rmi は、ルーターの背後にあるホーム ネットワーク上にセットアップされています。ルーターは、私が呼び出す静的 IP アドレスに割り当てられていますmyhostname
。適切なマシンを指す適切なポート マッピングがルーターに設定されます。
役割、マシン、OS、IP アドレス:
server, venice, linux ubuntu 9.10, 10.0.1.2
client, naples, mac os x leopard, 10.0.1.4
内部で次のようにサーバー側を起動します/home/andrews/workspace/epsilon/bin
。
1 デフォルト ポート 1099 でレジストリを開始します。
venice% rmiregistry &
2 共通インターフェイスのコード ベースを指すポート 2001 で Web サーバーを起動します。
venice% java webserver/ClassFileServer 2001 /home/andrew/workspace/epsilon/bin
3 サーバー オブジェクトを登録するサーバー アプリ (test/myServer のメイン クラス) を起動します。
venice% java -Djava.rmi.server.codebase="http://myhostname:2001/" -Djava.security.policy=server.policy -Djava.rmi.server.hostname=myhostname test/myServer &
内部のクライアント側/Users/andrews/Development/Java/workspace/epsilon/bin
:
1 クライアント側のクラスをサーバーに提供できるローカル Web サーバーを開始します (これが必要かどうかはわかりませんが、試してみましたが、まだ成功していません。2001 から のルーターにポートマッピングを追加しましたvenice
。 2002年~naples
)
naples$ java webserver/ClassFileServer 2002 /Users/andrews/Development/Java/workspace/epsilon/bin/
-cp
クライアントを実行しようとしています (注:クライアントはルート パッケージ ディレクトリのすぐ上で実行されるため、引数は指定しません):
1 http ホスト名を使用して #1 を試す
naples$ java -Djava.rmi.server.codebase=http://10.0.1.4:2002/ -Djava.security.policy=client.policy test.myClient myhostname
注 1:myhostname
最後の引数はクライアントに渡され、サーバーの rmi ホスト名に解決されます。
注 2:localhost:2002
代わりに10.0.1.4:2002
too を使用してみました。
注 3:がルーターに割り当てられており、適切なポート マッピングが設定されているため、使用してみました。このアドレスは解決される必要がmyhostname:2002
あります。myhostname
naples
venice
2 #2 を試す:
naples$ java -Djava.rmi.server.codebase=file:/Users/andrews/Development/Java/workspace/epsilon/bin/ -Djava.security.policy=client.policy test.myClient myhostname
注 1: コード ベースの URL 形式は正しいです。現在のファイル ディレクトリ パスを URL に変換する小さなプログラムを作成し、それを使用しました。を使用しfile:///Users...
ても同じ効果があります。
その他の注意事項:
1 サーバーとクライアントのポリシー ファイルでパスが正しく指定されています。これは、このセットアップを良いパスと悪いパスでテストし、悪いパスのセキュリティ例外を取得したためです。
2 このセットアップは、クライアント側で定義されたオブジェクトを使用しない場合に機能し、クライアントはサーバーに正しく接続され、サーバーが実行されます。
3 サーバー上のクライアント側クラスをサーバーのクラスパスに配置すると、すべて正常に実行されます。
すべての助けに感謝します。
java - java.rmi.UnmarshalException の取得: 認識されないメソッド ハッシュ: リモート オブジェクトでサポートされていないメソッド
私は RMI テクノロジを初めて使用します。
rmi クライアント プログラムを実行しているときに、次の例外が発生します: java.rmi.UnmarshalException: unrecognized method hash: method not supported by remote object. jdk1.5を使用しています
リモート メソッドの引数は Serialized オブジェクトです。
これらはサーバーコードです...
これはリモートインターフェースです
これはサーバー実装クラスです
これはクラスの順序です
クライアントにも同じInterfaceとOrderクラスがあります。
これはクライアントコードです
問題を解決するにはどうすればよいですか?
前もって感謝します Renjith M
delphi - 単純なマーシャリング オブジェクトのアンマーシャリング
json のサポートは、Delphi 2009 および Delphi 2010 の新機能の 1 つです。スーパーオブジェクト ライブラリのように、文字列とオブジェクトの間で直接マーシャリング/アンマーシャリングする簡単な機能があるかどうかを知りたいです。
例:
java - XML文字列と文字列に格納されたそのスキーマからのインメモリアンマーシャリングも可能ですか?
XML 文字列を変数に格納するとします。
この XML に関連するスキーマ定義は、別の XML にあります。
「resp」を検証してオブジェクトにアンマーシャリングする方法があると思いますか(たとえばJAXBを使用)?? 誰かがすでにそのようなものを試したり、成功したりしていますか??
事前に、ご提案いただきありがとうございます... Seb
java - JiBXのアンマーシャリング-要素の順序を無視するようにJiBXに指示することは可能ですか?
これを回避する方法はありますか?
たとえば、私のXML:
アンマーシャリングの場合、エラーは発生しませんが、順序を変更すると、次のようになります。
失敗しますorg.jibx.runtime.JiBXException: Expected "group" end tag, found "idExt" start tag (line 4, col 2)
。
私のアンマーシャリング(Struts2 ContentTypeHandlerインターフェースの実装):
そしてバインディング:
では、JiBXがタグの順序を無視することは可能ですか?
java - JAXBを使用してMyBeanのコレクションをマーシャル/アンマーシャルする方法
MyBeanに注釈を付けています
問題のないMyBeanのマーシャリング/アンマーシャリング、例:
JAXBを使用してコレクションまたはリストをマーシャリング/アンマーシャリングするにはどうすればよいですか?
私の試みはこのエラーになります:
java - 兄弟要素に基づく JAXB アンマーシャリング
私は次のxmlフラグメントを持っています(これは私の制御外です):
<subcategory>
次のようなクラスに非整列化したいと思います。
つまり、<category>
タグの結果のオブジェクトを<subcategory>
要素の結果のオブジェクトに渡す必要があります。
これどうやってするの?これは可能ですか?については知ってXmlAdapter
いますが、親を取得する方法がわかりません。
インスタンスが無効な状態になることは決してないので、コンストラクターで実行できる場合はそれが望ましいですが、それぞれの親を手動で設定する必要がない限り、別の解決策で解決しますSubCategory
.
java - Spring with Castor - アプリケーションコンテキストの初期化時の Null ポインター例外
キャスター マッピング ファイルを spring に登録しようとしていますが、null ポインター例外が発生しているようです。
私のアプリケーションコンテキストでは、次のものがあります。
DistributionSamplerMappings.xml は、アプリケーション コンテキストと同じディレクトリにあります。
spring-xml jar 1.2.1 および 1.5.3 を使用してみました。しかし、どれも役に立たないようです。
スローされる例外は次のとおりです。
Spring 2.5.6 と Castor 1.3.1 を使用しています。
周りを見回すと、この問題を抱えているのは私だけではありませんが、解決策を見つけることができないようです.
どんな助けでも大歓迎です。
xml - JAXBUnmarshallが空のオブジェクトを作成しました
JAXBを使用してXMLファイルをオブジェクトツリーにアンマーシャリングしています。ルートオブジェクトはnullではありませんが、XMLファイルにデータがある場合でも、そのメンバーはすべてnullです。私のオブジェクトクラスは、wsdlsからAxis2を使用して生成されました。ObjectFactoryクラス、jaxb.indexクラス、package.infoアノテーションなどがあります。
私の問題はこの議論と同じです:http://old.nabble.com/AXIS2,-JAXB---Unmarshalling-td26847419.html
何よりもまず、データを適切に入力する方法はありますか?
そうでない場合は、同じことを実行するが、互いにうまく機能するAxis2またはJAXBのいずれかの優れた代替ライブラリがありますか?