[jboss-user] [JBoss Seam] - Re: Trouble W/ NullPointerException
nathandennis
do-not-reply at jboss.com
Mon Dec 17 10:31:29 EST 2007
i actually already tried that. but the entity manager is still null. im starting to wonder if it is a bug. this version is cvs 11/15/07. here is an updated code snippet.
| @Stateful
| @Name("uploadAction")
| @Scope(ScopeType.SESSION)
| public class FileUploadAction implements FileUploadLocal, Serializable{
|
| @PersistenceContext
| private EntityManager entityManager;
|
| @Logger
| private Log log;
|
| FtpRemote send;
|
| @Out(required=false)
| private Media media;
|
| private String medianame;
| private Long size;
| private String userid;
| private String comment;
| private String server;
| private String url;
| private String filetype;
| private Date dob;
| private Long mark;
| private FileInputStream fis;
| private byte[] is;
|
| public void UploadFile() throws NullPointerException {
|
|
| if(!medianame.equals("")){
| try{
| // create empty file with specified name and path
| File os = new File("/var/temp/filewritetemp/"+getMediaName());
| FileOutputStream oStream =new FileOutputStream(os);
| oStream.write(getIs());
|
|
|
|
| File file = new File("/var/temp/filewritetemp/" + getMediaName());
| size = file.length();
| dob = new Date();
| fis = new FileInputStream("/var/temp/filewritetemp/" + getMediaName());
| try{
| ftpFile(fis);
|
| Media media = new Media();
| media.setServer(server);
| media.setUrl(url);
| media.setDob(dob);
| media.setFiletype(filetype);
| media.setMark(mark);
| media.setMedianame(medianame);
| media.setSize(size);
| media.setUserid(userid);
| entityManager.persist(media);
| }catch (Exception e){
| e.printStackTrace();
| }
| file.delete();
| // Media media = ;
| /* media.setServer(server);
| media.setUrl(url);
| media.setDob(dob);
| media.setFiletype(filetype);
| media.setMark(mark);
| media.setMedianame(medianame);
| media.setSize(size);
| media.setUserid(userid);
| entityManager.persist(media);
| */ destroy();
|
| } catch(Exception e){
| e.printStackTrace();
|
| }
| }
| }
| public void ftpFile(FileInputStream fis){
| send = new FtpRemote(); //action starts
| send.findServer(fis);
| }
| ...
|
now to process the file..
|
| @Stateful
| @Name("ftpRemote")
| public class FtpRemote implements FtpRemoteLocal, Serializable {
| /**
| */
| private String login;
| private String password;
| private String directory;
| private String path;
| private String filename;
| private String server;
| private Long serverid;
| private Long usedspace;
| private int reply;
| private int replywrite;
| private byte[] filestream;
| private boolean successflag;
|
| @PersistenceContext
| private EntityManager entityManager;
|
| @In(required=false)
| @Out(required=false)
| ReturnServer host;
|
| @In(required=false)
| @Out(required=false)
| ReturnServer host2;
|
|
| public void findServer(FileInputStream fis){
| host = new ReturnServer(); //return an available server from DB second action
| server = host.findServer();
| serverid = host.getServerId();
| login = host.getLogin();
| password = host.getPasswd();
| usedspace = host.getUsedSpace();
| successflag = ftpConnect(fis);
| host.destroy();
| for(boolean flag=successflag; flag==true;){
| host2 = new ReturnServer();
| server = host2.findServer();
| serverid = host2.getServerId();
| login = host2.getLogin();
| password = host2.getPasswd();
| usedspace = host2.getUsedSpace();
| host2.destroy();
| flag = ftpConnect(fis);
| }
| }
|
the query to return the server is where it is breaking... EM is null for some reason.
| @Stateful
| @Name("returnServer")
| public class ReturnServer implements ReturnServerLocal, Serializable
| {
| @PersistenceContext
| private EntityManager entityManager;
|
| private String server;
| private ArrayList<Server> serverlist;
|
| private String login;
| private String passwd;
| private Long usedspace;
| private Long serverid;
| private int serverindex;
| private int noavail;
|
| @Logger private Log log;
|
| @In(create=true)
| private List<Server> result;
|
| @Create
| public String findServer(){
| queryServer();
| requestServer();
| return server;
| }
|
| public void requestServer() {
| int i = 0;
| noavail = serverlist.size();
| if(serverlist.isEmpty()){
| System.out.println("null query");
| } else {
| for (i = 0; i == serverlist.size() + 1; i++) {
| if(serverlist.get(i).getUsedspace()
| < serverlist.get(i).getTotalspace()) {
| server = serverlist.get(i).getServername();
| login = serverlist.get(i).getLogin();
| passwd = serverlist.get(i).getPasswd();
| serverid = serverlist.get(i).getId();
| }}
| }
| }
|
| @SuppressWarnings("unchecked")
| public void queryServer() {
| System.out.println("made it to RemoteServer -- before QUERY");
| if(entityManager==null){
| System.out.println("em is null");
| }
| if(entityManager != null){
| System.out.println("em not null");
| }
| //
| try{
| log.info("i am here");
|
| List resultList = entityManager.createQuery("select s from " +
| "Server s where lower (s.status) = :param order by s.usedspace desc")
| .setParameter("param", "online")
| .getResultList();
| serverlist = new ArrayList(resultList.subList(0, resultList.size()));
| }catch (Exception e){
| e.printStackTrace();
| }
|
|
| }
| ...
i local interfaces for all. i thought there might have been something i was missing. i cant really find anything similar in the examples and google is really letting me down too.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4113430#4113430
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4113430
More information about the jboss-user
mailing list