Krasnou brzkou ranni hodinu,<br><br>Po nekolika pokusech a premysleni a hodinek stravenych zjistovani jsem zjistil:) Problem byl v parametru `pwd` v spoustecim scriptu serveru - na Win mi nesel, alespon uz mam potuchu, co znamenaji RMI parametry. Toz jsem se posunul kousek dale.<br>
<br>To Lukas: to ze nemam u NodeImpl uvedene ze dedi od UnicastRemoteObject neni na skodu...protoze potom ten objekt je mensi, a pokud ho chci pouzivat v serveru, tak pomoci metody exportObject z nej udelam prave takovy zabaleny objekt typu UnicastRemoteObject a muzu jej i takto pouzivat. tedy zapis je cisty.navic tak nepotrebujes dve implementace tehoz, jenom se lisici ze jedna dedi druha nikoliv.<br>
<br>Ovsem objevil se mi dalsi bubak ve skrini. Muj NodeFactory provadi neco takoveho <br><br> Node newNode = (Node)UnicastRemoteObject.exportObject( new NodeImpl() );<br> return newNode;<br><br>Coz dle RMI znamena, ze pokud jej zavolam v klientovi jako <br>
<br> oNodeFactory = new NodeFactoryImpl(); <br><br>a pak cyklus , kde volam <br>
aNodes [i] = oNodeFactory.createNode();<br><br>tak vytvori lokalni kopii, protoze RMI se rozhodne, ze pokud je NodeImpl ( ktera neni dedena od UnicastRemoteObject ) a volam na ni tu create object na lokalni kopii tak zustane lokalni. Problem je ovsem v tom, ze kdyz to zavolam s pomoci createNode, tak mi to vytvori Nody, ale pri spojovani hranami , mi to treba u 5. nebo treba 50, dvojice spadne a vypise<br>
<br>Client raised exception: no such object in table<br>java.rmi.NoSuchObjectException: no such object in table<br> at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)<br> at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)<br>
at sun.rmi.server.UnicastRef.invoke(Unknown Source)<br> at NodeImpl_Stub.addNeighbor(Unknown Source)<br> at Client.connectAllNodes(Client.java:46)<br> at Client.main(Client.java:112)<br><br>Pokud nahradim metodu createNode klasickym new, tak to v pohode projde. Pokud to zavolam s NodeFactory vzdalenou pres <br>
<br> oNodeFactory = (NodeFactory) Naming.lookup("//localhost/NodeFactory");<br><br>Hodi to stejnou chybu. Kdyby mi to pokazde spadlo, tedy myslim u prvni dvojice, tak si bych hledal chybu nekde v kodu, zapisu ci nejak tak...jenze mate mne prave to, ze u v debug mi prvnich 5 - 20 dvojic v pohode projde...a pak to spadne na tenhle error. Metoda createNodes projde, zavola 1000x tu metodu<br>
<br>A na zaver pridam opet bombonek: Pokud teda pouziji pouze lokalni kopii s new...a pridam Searcher, ktery je na serveru , tak se mi dostane za odmenu toto<br><br>Client raised exception: Error unmarshaling return header; nested exception is: <br>
java.net.SocketException: Connection reset by peer: socket write error<br>java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is: <br> java.net.SocketException: Connection reset by peer: socket write error<br>
at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)<br> at sun.rmi.server.UnicastRef.invoke(Unknown Source)<br> at SearcherImpl_Stub.getDistance(Unknown Source)<br> at Client.searchBenchmark(Client.java:87)<br>
at Client.main(Client.java:121)<br>Caused by: java.net.SocketException: Connection reset by peer: socket write error<br> at java.net.SocketOutputStream.socketWrite0(Native Method)<br> at java.net.SocketOutputStream.socketWrite(Unknown Source)<br>
at java.net.SocketOutputStream.write(Unknown Source)<br><br>z cehoz jsem uplne na vetvi. No..asi dalsi den:) Omlouvam se, ze vetram takto sve problemy, ale hrabu se v jave i RMI druhy den v zivote...a tyhle errory mne docela desi ( jeden neni pravidelny, proste par vstupu projde a pak to spadne , a ten dalsi je evidentne neco s pameti, pac ja to nestopnu ).<br>
<br>Almer.<br><br><div class="gmail_quote">On Wed, Mar 26, 2008 at 8:36 PM, Vlastimil Babka <<a href="mailto:babka@dsrg.mff.cuni.cz">babka@dsrg.mff.cuni.cz</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d"><a href="mailto:almer.sis@seznam.cz">almer.sis@seznam.cz</a> wrote:<br>
> During server start raised exception: RemoteException occurred in server thread; nested exception is:<br>
> java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:<br>
> java.lang.ClassNotFoundException: SearcherImpl_Stub<br>
><br>
</div>Dobry den,<br>
<br>
dulezite pro reseni problemu je take uvest na ktere radce ta exception<br>
nastava... behem exportu, bindu nebo jinde?<br>
Predpokladam ze behem rebind, coz znamena ze rmiregistry nemuzou najit<br>
stub, zrejme proto ze jste nezadal nebo zadal spatnou cestu k codebase<br>
pri spousteni serveru (viz skript run-server z HelloWorld example).<br>
<div class="Ih2E3d"><br>
> Co tedy s tim? Chapu ze SearcherImpl_Stub( tedy to vygenerovane pomoci rmic ) nelze serializovat. Nechapu proc?<br>
</div>Duvod je zjevne ona nested exception coz je<br>
java.lang.ClassNotFoundException...<br>
<br>
Hezky vecer,<br>
<font color="#888888">Vlastimil Babka<br>
</font><div><div></div><div class="Wj3C7c"><br>
<br>
_______________________________________________<br>
MWy mailing list<br>
<a href="mailto:MWy@dsrg.mff.cuni.cz">MWy@dsrg.mff.cuni.cz</a><br>
<a href="https://dsrg.mff.cuni.cz/mailman/listinfo/mwy" target="_blank">https://dsrg.mff.cuni.cz/mailman/listinfo/mwy</a><br>
</div></div></blockquote></div><br>