当前页面: 开发资料首页 → J2EE 专题 → 哪位大虾来看看啊,EJB中奇怪的问题,关于Timestamp 的
哪位大虾来看看啊,EJB中奇怪的问题,关于Timestamp 的
摘要: 哪位大虾来看看啊,EJB中奇怪的问题,关于Timestamp 的
下面是CMP中的方法类
package jfsfpz;
import javax.ejb.EntityBean;
import javax.ejb.EntityContext;
import java.sql.Timestamp;
import javax.ejb.CreateException;
import javax.ejb.RemoveException;
import java.math.BigDecimal;
public abstract class TransinfoBean
implements EntityBean {
EntityContext entityContext;
public TransinfoPK ejbCreate(String substaid, String lineid, String transid,
Integer statusflag, Timestamp nousedate) throws
CreateException {
setSubstaid(substaid);
setLineid(lineid);
setTransid(transid);
setStatusflag(statusflag);
setNousedate(nousedate);
return null;
}
public void ejbPostCreate(String substaid, String lineid, String transid,
Integer statusflag, Timestamp nousedate) throws
CreateException {
}
public void ejbRemove() throws RemoveException {
}
public abstract void setSubstaid(String substaid);
public abstract String getSubstaid();
public abstract void setLineid(String lineid);
public abstract String getLineid();
public abstract void setTransid(String transid);
public abstract String getTransid();
public abstract void setStatusflag(Integer statusflag);
public abstract Integer getStatusflag();
public abstract void setNousedate(Timestamp nousedate);
public abstract Timestamp getNousedate();
public void ejbLoad() {
}
public void ejbStore() {
}
public void ejbActivate() {
}
public void ejbPassivate() {
}
public void unsetEntityContext() {
this.entityContext = null;
}
public void setEntityContext(EntityContext entityContext) {
this.entityContext = entityContext;
}
}
//////////////////////////////////////////////////////////////////////////
下面的是一个DTO 方法
package jfsfpz;
import java.io.*;
import com.sun.jmx.snmp.Timestamp;
import java.math.BigDecimal;
//import java.sql.Timestamp;
public class TransinfoDTO
implements Serializable {
private String substaid;
private String lineid;
private String transid;
private Integer statusflag;
private Timestamp nousedate;
public TransinfoDTO() {
}
public TransinfoDTO(String substaid, String lineid,String transid
,Integer statusflag
, Timestamp nousedate){
this.substaid=substaid;
this.lineid=lineid;
this.transid=transid;
this.statusflag=statusflag;
this.nousedate=nousedate;
}
public String getSubstaid() {return substaid;}
public String getLineid() {return lineid;}
public String getTransid() {return transid;}
public Integer getStatusflag() {return statusflag;}
public Timestamp getNousedate() {return nousedate;}
}
///////////////////////////////////////////////////////////////////////////////////
下面的是SessionBean 中的一个方法
public TransinfoDTO[] getAllTransinfo() {
Collection coll=null;
ArrayList array=new ArrayList();
TransinfoDTO dto =new TransinfoDTO();
Timestamp time=new Timestamp(2);
try {
coll = Transinfohome.findAllTransinfo();
Iterator i = coll.iterator();
while (i.hasNext()) {
TransinfoRemote ejb = (TransinfoRemote) i.next();
dto = new TransinfoDTO(ejb.getSubstaid(), ejb.getLineid(),ejb.getTransid()
,ejb.getStatusflag()
//,time
,ejb.getNousedate()
); // TransinfoDTO end
array.add(dto);
}
}
catch (RemoteException ex) {
}
catch (FinderException ex) {
}
return (TransinfoDTO[]) array.toArray(new TransinfoDTO[0]);
}
每次在初始化这个dto= new TransinfoDTO(...) 对象时,总是在第5个参数那里出错 ejb.getNousedate(),
如果参数换成 Timestamp time=new Timestamp(2); 定义的time, 就不会出错
错误信息:
"JfsfpzSessBean.java": cannot find symbol; symbol : constructor
TransinfoDTO(java.lang.String,java.lang.String,java.lang.String,java.lang.Integer,java.sql.Timestamp), location:
class jfsfpz.TransinfoDTO at line 333, column 17
"JfsfpzSessBean.java": internal error; cannot instantiate jfsfpz.TransinfoDTO.
at jfsfpz.TransinfoDTO to ()
at line 333, column 17
另外,这是从SQLSERVER上建立的CMP,这个字段在SQLSERVER上是 datetime 类型
很是纳闷 ???
想不通,问题还是没有解决,
不就是个参数么,我传进去的类型也是正确的,怎么就报错呢,
而且我另做了一个其它的类,也是用这样的方式往里面传一个这样的参数(Timestamp ),
就不报错,打印出来是个null
0_o~!!
cmp 中的引用 import java.sql.Timestamp;
DTO 中的引用 import com.sun.jmx.snmp.Timestamp;
问题就出在这儿,唉
d