2011-10-29 10 views
1

オブジェクトのシリアル化とUDP接続を使用してオブジェクトをブロードキャストしようとしました。私はnetbeans IDEを使用しています。私は、送信と受信の両方にJava Desktop Applicationを使用しています。ボタンがクリックされると、オブジェクトがブロードキャストされます。そして、私は次の例外を取得します...java.lang.ClassNotFoundException

Oct 29, 2011 1:50:04 PM receive1.Receive1View jButton1ActionPerformed 
SEVERE: null 
java.lang.ClassNotFoundException: send.objecttransmit 
at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:247) 
at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604) 
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575) 
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496) 
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732) 
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) 
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) 
at receive1.Receive1View.jButton1ActionPerformed(Receive1View.java:245) 
at receive1.Receive1View.access$800(Receive1View.java:29) 
at receive1.Receive1View$4.actionPerformed(Receive1View.java:133) 
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) 
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) 
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) 
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) 
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) 
at java.awt.Component.processMouseEvent(Component.java:6267) 
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) 
at java.awt.Component.processEvent(Component.java:6032) 
at java.awt.Container.processEvent(Container.java:2041) 
at java.awt.Component.dispatchEventImpl(Component.java:4630) 
at java.awt.Container.dispatchEventImpl(Container.java:2099) 
at java.awt.Component.dispatchEvent(Component.java:4460) 
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577) 
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) 
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) 
at java.awt.Container.dispatchEventImpl(Container.java:2085) 
at java.awt.Window.dispatchEventImpl(Window.java:2478) 
at java.awt.Component.dispatchEvent(Component.java:4460) 
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) 
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) 
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) 

netbeans IDEのJavaクラスライブラリを使用してクラスからブロードキャストしようとすると、コードがうまく動作します。

助けてください。

答えて

1

どのように紛失したパケットを処理していますか? UDPは損失の多いプロトコルです。パケットが失われた場合は、取得したパケットを組み合わせるだけで破損した「ストリーム」が得られる可能性があります。

+0

パケットが失われると、OPの特定の問題が発生する可能性は低いです。何らかの種類の「破損したストリーム」例外が発生するのがより好きです。 –

0

問題は、オブジェクトをデシリアライズしようとしているアプリケーションは、スタンドアロンで実行するとクラスパスにクラスsend.objecttransmitがないことです。

netbeans IDEのjavaクラスライブラリを使用してクラスからブロードキャストしようとすると、コードはうまく動作します。

あなたの言っていることを理解しているかどうかはわかりませんが、アプリケーションがNetBeansで動作している場合は、そのようにクラスパス上にクラスがあるためです。

+0

sendは、シリアル化されたオブジェクトをブロードキャストするクラスを持つパッケージです。受信中に例外がスローされます。オブジェクト送信は、オブジェクトがブロードキャストするためにシリアル化されたクラスです。私は送信パッケージにobjecttransmitクラスを持っているだけでなく、package.iを受け取っていないので、パッケージを送信するためのobjecttransmitクラスは、受信パッケージ内でobjecttransmitクラスを持っているのでdeserializeに必要です。 – Jwala

関連する問題