我得到以下代码的以下异常.当排除while()循环时,这可以正常工作.为什么是这样?
Oct 6, 2011 1:19:31 AM com.mytunes.server.ServerHandler run
SEVERE: null
java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2552)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1297)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at com.mytunes.server.ServerHandler.run(ServerHandler.java:68)
Run Code Online (Sandbox Code Playgroud)
类ServerHandler:
public class ServerHandler extends Thread {
.
.
.
public ServerHandler(...){
...
}
public void run(){
try {
os = s.getOutputStream();
oos = new ObjectOutputStream(os);
is = s.getInputStream();
ois = new ObjectInputStream(is);
while(true){
msg = (Messenger) ois.readObject();
String methodType = msg.getKey();
//validating various data passed from the serialized object
if(methodType.equals("validateCard")){
} else if(methodType.equals("validatePIN")){
}
}
} catch (SQLException …Run Code Online (Sandbox Code Playgroud) 有没有反正,使A级调用notify(),它内部的,清醒的等待()该对象的锁的线程,在后台运行一个线程?
谢谢.
编辑:
请忽略不必要的代码.我想告诉你我是如何真正实现它的.
Messenger是一个序列化对象.
线程"ServerHandler"将调用
bufferImpObject.put(<Messenger Obj>, <ServerHandler instance>, <socket instance>)
public class BufferImp {
private Messenger[] requests;
public static int req_size;
public static int req_count;
Socket s;
Messenger msg;
InputStream is;
ObjectInputStream ois;
OutputStream os;
ObjectOutputStream oos;
public BufferImp(int size) {
this.req_size = size;
this.req_count = 0;
requests = new Messenger[size];
}
class CheckWaitThread extends Thread{
Thread t;
String s;
Socket incoming_socket;
CheckWaitThread(String s, Thread t, Socket incoming_socket){
this.t = t;
this.s = s; …Run Code Online (Sandbox Code Playgroud) 我的Netbeans Java项目没有显示.java文件.而是.class在构建目录中有编译文件.我仍然可以编辑代码.我需要以.java某种方式将文件放回原处.我怎样才能做到这一点?
我正在做一个简单的电路系统来模拟C++中的欧姆定律.(V = IR)
为此,我使用Qt来制作GUI.用户可以连接不同的部件/组件,如电阻器,电池,电压表,电流表,灯泡,一旦点击启动按钮,电压表和电流表应显示读数.然后用户应该能够添加/移除电池.在做这个用户时应该意识到R是一个常数.
此外,如果使用灯泡,他们应该根据法律强度点亮.
我需要知道如何在代码中的数据结构中表示.
此代码提取来自KohanaJobs应用程序附带的database.sql文件.
CREATE TABLE IF NOT EXISTS `roles_users` (
`user_id` int(10) unsigned NOT NULL,
`role_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`user_id`,`role_id`),
KEY `fk_role_id` (`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `sessions` (
`session_id` varchar(24) NOT NULL,
`last_active` int(10) unsigned NOT NULL,
`contents` text NOT NULL,
PRIMARY KEY (`session_id`),
KEY `last_active` (`last_active`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)
为什么只是KEY在上面使用过?它只是暗示它们被用作FK吗?
我在此代码中遇到了转换问题,但不知道如何纠正它.
public void showFrame(String className, Object controller) throws Exception{
try {
Class c = Class.forName("com." + className);
// "(Object.class)" I want this to be of type held in className var
// this type will be same as one passed into "controller" at runtime
Constructor ctr = c.getConstructor(Object.class);
ctr.newInstance(controller);
} catch (ClassNotFoundException ex) {
JOptionPane.showMessageDialog(null, "Error" );
}
}
Run Code Online (Sandbox Code Playgroud)