当前位置: 代码迷 >> Eclipse >> 一天解决不了的空指针错误(求解java)程序如下
  详细解决方案

一天解决不了的空指针错误(求解java)程序如下

热度:22   发布时间:2016-04-23 13:28:36.0
一天解决不了的空指针异常(求解java)程序如下
客户端运行结果:
Exception in thread "main" java.lang.NullPointerException
at cn.com.client1.Client.closeSocket(Client.java:50)
at cn.com.client1.Client.doLogin(Client.java:76)
at cn.com.client1.ClientScream.createLoginView(ClientScream.java:37)
at cn.com.client1.ClientScream.main(ClientScream.java:24)

服务器端运行结果:
Exception in thread "Thread-0" java.lang.NullPointerException
at cn.com.serverSocket1.Server_Socket.run(Server_Socket.java:86)


[code=Java][/code]截图如下

客户端 界面代码:

package cn.com.client1;

import java.util.Scanner;

import cn.com.entity1.Cashier;
import cn.com.entity1.StoreMgr;
import cn.com.util1.Goods;
import cn.com.util1.SysConstants;
  /*
  * 客户端界面类
  */
public class ClientScream {
//控制台输入对象
  private static Scanner scanner =new Scanner(System.in);
  //客户端业务对象
  private static Client client=new Client(); 
  public static void main(String[] args) {
  System.out.println("*********欢迎使用青鸟超市管理系统**********");
System.out.println("1.登录\n2.退出系统");
System.out.println("************请选择数字1/2*************");
int num=scanner.nextInt();
if (num==1) {
//调用登录视图
createLoginView();
}
System.out.println("系统终止运行");
}  


  public static void createLoginView(){
  while (true) {
  System.out.println("用户名称:");
  String username=scanner.next();
System.out.println("用户密码:");
String password=scanner.next();
//调用登录服务业务 且向服务器端发送请求
Goods goods=client.doLogin(username,password);
System.out.println("客户端向服务器端发送请求成功!");
//服务器回复了请求
if (SysConstants.SYS_SUCCESS.equals(goods.getFlag())) {
//正确返回数据
System.out.println("服务器端回复客户端,响应成功!\n客户端开始操作......");  
//调用学员管理视图
// createCommodifyManagerView(goods.getStoremgr());
break;
}else {
//出错,继续登录
System.out.println("用户名或者密码输入错误!登录失败!");
}
}
 
  }
}


服务器端 代码:

package cn.com.serverSocket1;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;

import cn.com.entity1.StoreMgr;
import cn.com.util1.Goods;
import cn.com.util1.SysConstants;
import cn.com.util1.Tools;

/*
  服务器端的线程类
  */  
public class Server_Socket extends Thread {

public static void main(String[] args) {

//线程子类的对象的启动
new Server_Socket().start();
}
//重写run方法
public void run() {
System.out.println("服务器启动!");
ServerSocket serverSocket=null;
ObjectOutputStream objectOutputStream=null;
ObjectInputStream objectInputStream = null;
Socket socket =null;
   
  //创建Server_Socket对象,绑定一个端口
try {
serverSocket=new ServerSocket(Integer.parseInt(Tools.getValue(SysConstants.SYS_LISTENERPORT)));
//对socket对象,接受accept();
while(true){  
socket=serverSocket.accept();
//对建立输入输出流 且实例化(对对象进行 序列化和反序列化)
objectOutputStream=new ObjectOutputStream(socket.getOutputStream());  
objectInputStream =new ObjectInputStream(socket.getInputStream());//由服务器端开始
//在协议上进行读 取
//读 接受请求
 
System.out.println("服务器端接受客户端请求成功!");
  相关解决方案