还有....测试客户端javabean
package bank;
import java.util.*;
import javax.naming.*;
import javax.rmi.*;public class bankbeankh {
KeHuEJB zh=null;
boolean login=false;
public bankbeankh() {
try{
Hashtable ht = new Hashtable();
ht.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL,"t3://127.0.0.1:7001");
ht.put(Context.SECURITY_PRINCIPAL,"system");
ht.put(Context.SECURITY_CREDENTIALS,"123456789");
Context con = new InitialContext(ht);
//查找home接口
Object obj = con.lookup("KeHuEJB");
KeHuEJBHome home =
(KeHuEJBHome)PortableRemoteObject.narrow(obj,
KeHuEJBHome.class);
//由home接口创建远程接口
zh = home.create();
}catch(Exception e){System.out.println(e.toString());}
}
public boolean getLogin(){
return this.login;
}
public String dengLu(String account,String password){
String message="";
try{
message=zh.dengLu(account,password);
if(message.equals("")){
login=true;
}
}catch(Exception e){message=e.getMessage();}
return message;
}
public String quKuan(float money){
String message="您还未登录";
if(login==true){
try{
message=zh.quKuan(money);
}catch(Exception e){message=e.getMessage();}
}
return message;
}
public String cunKuan(float money){
String message="您还未登录";
if(login==true){
try{
message=zh.cunKuan(money);
}catch(Exception e){message=e.getMessage();}
}
return message;
}
public String chaXun(){
String message="您还未登录";
if(login==true){
float balance;
try{
message=zh.chaXun();
}catch(Exception e){}}
return message;
}
public void Logout(){
try{
zh.remove();
login=false;
}catch(Exception e){}
}
public static void main(String[] args) {
bankbeankh bankbeankh1 = new bankbeankh();
String message="";
message=bankbeankh1.dengLu("901","123");
/* if(message==null){
System.out.println("null");
}else{
System.out.println("成功");
}
System.out.println(message);
*/
if(message.equals("")){
System.out.println("登录成功");
}else{
System.out.println(message);
}
String kuan="";
// bankbeankh1.Logout();
System.out.println(bankbeankh1.chaXun());
kuan=bankbeankh1.quKuan(1900);
if(kuan.equals("")){
System.out.println("存款成功");
}else{
System.out.println(kuan);
}
System.out.println(bankbeankh1.chaXun());
kuan=bankbeankh1.cunKuan(11121100);
if(kuan.equals("")){
System.out.println("取款成功");
}else{
System.out.println(kuan);
}
bankbeankh1.Logout();
System.out.println(bankbeankh1.chaXun());
bankbeankh1.Logout();
}
}
问题:
public void ejbRemove() {
/**@todo Complete this method*/
// start=false;
try{
con.close();//这个为什么要写啊,如果没写,只能客户端运行一次,第二次客户端运行时就提示java.lang.NullPointerException
// stat.close();
// context.close();
login=false;
}catch(Exception e){}
}
而且weblogic服务器就不能提供服务了,其它的客户端也连不上这个EJB,这是怎么回事啊,请高手指教
package bank;
import java.util.*;
import javax.naming.*;
import javax.rmi.*;public class bankbeankh {
KeHuEJB zh=null;
boolean login=false;
public bankbeankh() {
try{
Hashtable ht = new Hashtable();
ht.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL,"t3://127.0.0.1:7001");
ht.put(Context.SECURITY_PRINCIPAL,"system");
ht.put(Context.SECURITY_CREDENTIALS,"123456789");
Context con = new InitialContext(ht);
//查找home接口
Object obj = con.lookup("KeHuEJB");
KeHuEJBHome home =
(KeHuEJBHome)PortableRemoteObject.narrow(obj,
KeHuEJBHome.class);
//由home接口创建远程接口
zh = home.create();
}catch(Exception e){System.out.println(e.toString());}
}
public boolean getLogin(){
return this.login;
}
public String dengLu(String account,String password){
String message="";
try{
message=zh.dengLu(account,password);
if(message.equals("")){
login=true;
}
}catch(Exception e){message=e.getMessage();}
return message;
}
public String quKuan(float money){
String message="您还未登录";
if(login==true){
try{
message=zh.quKuan(money);
}catch(Exception e){message=e.getMessage();}
}
return message;
}
public String cunKuan(float money){
String message="您还未登录";
if(login==true){
try{
message=zh.cunKuan(money);
}catch(Exception e){message=e.getMessage();}
}
return message;
}
public String chaXun(){
String message="您还未登录";
if(login==true){
float balance;
try{
message=zh.chaXun();
}catch(Exception e){}}
return message;
}
public void Logout(){
try{
zh.remove();
login=false;
}catch(Exception e){}
}
public static void main(String[] args) {
bankbeankh bankbeankh1 = new bankbeankh();
String message="";
message=bankbeankh1.dengLu("901","123");
/* if(message==null){
System.out.println("null");
}else{
System.out.println("成功");
}
System.out.println(message);
*/
if(message.equals("")){
System.out.println("登录成功");
}else{
System.out.println(message);
}
String kuan="";
// bankbeankh1.Logout();
System.out.println(bankbeankh1.chaXun());
kuan=bankbeankh1.quKuan(1900);
if(kuan.equals("")){
System.out.println("存款成功");
}else{
System.out.println(kuan);
}
System.out.println(bankbeankh1.chaXun());
kuan=bankbeankh1.cunKuan(11121100);
if(kuan.equals("")){
System.out.println("取款成功");
}else{
System.out.println(kuan);
}
bankbeankh1.Logout();
System.out.println(bankbeankh1.chaXun());
bankbeankh1.Logout();
}
}
问题:
public void ejbRemove() {
/**@todo Complete this method*/
// start=false;
try{
con.close();//这个为什么要写啊,如果没写,只能客户端运行一次,第二次客户端运行时就提示java.lang.NullPointerException
// stat.close();
// context.close();
login=false;
}catch(Exception e){}
}
而且weblogic服务器就不能提供服务了,其它的客户端也连不上这个EJB,这是怎么回事啊,请高手指教
CLOSE是必需的
感觉是第二次连上时 SESSIONBEAN仍存在系统中 且被钝化
如果没有CLOSE掉CONNECTION会有问题