使用Java发送Notes邮件时报java.lang.nosuchfielderror:cpp_object异常

在使用以下代码发送Notes邮件在客户那边测试时报以下错误 客户用的Notes版本为8.5.2

QQ图片20130719174233.jpg

package com.notes;

import java.util.Date;
import com.logger.Logger;

import lotus.notes.*;

public class NotesMailManager implements Runnable{
        private String recipients;
        private String dominoServerName;
        private String userFilePath;
        private String userName;
        private String password;
        private String result;

        public String getRecipients() {
                return recipients;
        }

        public void setRecipients(String recipients) {
                this.recipients = recipients;
        }

        public String getDominoServerName() {
                return dominoServerName;
        }

        public void setDominoServerName(String dominoServerName) {
                this.dominoServerName = dominoServerName;
        }

        public String getUserFilePath() {
                return userFilePath;
        }

        public void setUserFilePath(String userFilePath) {
                this.userFilePath = userFilePath;
        }

        public String getUserName() {
                return userName;
        }

        public void setUserName(String userName) {
                this.userName = userName;
        }

        public String getPassword() {
                return password;
        }

        public void setPassword(String password) {
                this.password = password;
        }
        
        
        public String getResult() {
                return result;
        }

        public void setResult(String result) {
                this.result = result;
        }

        @Override
        public void run() {
                Session session = null;
                Database db = null;
                Document doc = null;
                Registration reg;
                try {
                        session = Session.newInstance();
                reg = session.createRegistration();
                reg.switchToID ( getUserName(), getPassword() );
                        
            db = session.getDatabase(getDominoServerName(), getUserFilePath());
            Logger.writeToLogger("Database title is " + db.getTitle()
                    + " and filepath is " + db.getFilePath());
            System.out.println("Database title is " + db.getTitle()
                    + " and filepath is " + db.getFilePath());
            doc = db.createDocument();
            doc.replaceItemValue("Subject", "Notes邮件测试     "+new Date());
                        doc.replaceItemValue("Body", "邮件测试成功  "+new Date());
                        doc.save();
                        doc.send(getRecipients());
                        System.out.println("邮件发送成功!");
                        setResult("邮件发送成功!");
                } catch (NotesException e) {
                        e.printStackTrace();
                        Logger.writeToLogger("NotesException"+e.toString()+"  "+new Date());
                        String str[] = e.toString().split(":");
                        setResult(str[1]);
                        System.out.println("toString----->"+str[1]);
                }catch(Exception e){
                        e.printStackTrace();
                        Logger.writeToLogger("Exception"+e.getMessage()+" "+new Date());
                }finally{
                        try {
                                if(doc!=null){
                                        doc.recycle();
                                        doc = null;
                                }
                                if(db!=null){
                                        db.recycle();
                                        db = null;
                                }
                                if(session!=null){
//                                        session.recycle();
                                        session = null;
                                }
                        } catch (NotesException e) {
                                e.printStackTrace();
                                System.out.println("finallyToString----->"+e.toString());
                        }
                }
                
                
        }

}


但是在使用一下的代码是却报空指针异常

package com.notes;

import java.util.Date;
import com.logger.Logger;

import lotus.domino.Database;
import lotus.domino.Document;
import lotus.domino.NotesException;
import lotus.domino.NotesFactory;
import lotus.domino.Session;
public class NotesMailManager implements Runnable{
        private String recipients;
        private String dominoServerName;
        private String userFilePath;
        private String userName;
        private String password;
        private String result;

        public String getRecipients() {
                return recipients;
        }

        public void setRecipients(String recipients) {
                this.recipients = recipients;
        }

        public String getDominoServerName() {
                return dominoServerName;
        }

        public void setDominoServerName(String dominoServerName) {
                this.dominoServerName = dominoServerName;
        }

        public String getUserFilePath() {
                return userFilePath;
        }

        public void setUserFilePath(String userFilePath) {
                this.userFilePath = userFilePath;
        }

        public String getUserName() {
                return userName;
        }

        public void setUserName(String userName) {
                this.userName = userName;
        }

        public String getPassword() {
                return password;
        }

        public void setPassword(String password) {
                this.password = password;
        }
        
        
        public String getResult() {
                return result;
        }

        public void setResult(String result) {
                this.result = result;
        }

        @Override
        public void run() {
                Session session = null;
                Database db = null;
                Document doc = null;
//Registration reg;
                try {
   session = NotesFactory.createSession("",(String)null,getPassword());
   db = session.getDatabase(getDominoServerName(), getUserFilePath());
//                        System.out.println("NotesVersion is :"+session.getNotesVersion());
//                        Logger.writeToLogger("NotesVersion is :"+session.getNotesVersion());
//session = Session.newInstance();
//                        Logger.writeToLogger(session.getPlatform());
//                        System.out.println(session.getPlatform());
//reg = session.createRegistration();
//reg.switchToID ( getUserName(), getPassword() );
                        
//db = session.getDatabase(getDominoServerName(), getUserFilePath());
            Logger.writeToLogger("Database title is " + db.getTitle()
                    + " and filepath is " + db.getFilePath());
            System.out.println("Database title is " + db.getTitle()
                    + " and filepath is " + db.getFilePath());
            doc = db.createDocument();
            doc.replaceItemValue("Subject", "Notes邮件测试     "+new Date());
                        doc.replaceItemValue("Body", "邮件测试成功  "+new Date());
                        doc.save();
                        doc.send(getRecipients());
                        System.out.println("邮件发送成功!");
                        setResult("邮件发送成功!");
                } catch (NotesException e) {
                        e.printStackTrace();
                        Logger.writeToLogger("NotesException"+e.toString()+"  "+new Date());
                        String str[] = e.toString().split(":");
                        if(str[1].equals("Database %1 has not been opened yet")){
                                setResult("无法打开用户数据库,请检查相应的设置!");
                        }
                        setResult(str[1]);
                        System.out.println("toString----->"+str[1]);
                }catch(Exception e){
                        e.printStackTrace();
                        Logger.writeToLogger("Exception"+e.getMessage()+" "+new Date());
                }finally{
                        try {
                                if(doc!=null){
                                        doc.recycle();
                                        doc = null;
                                }
                                if(db!=null){
                                        db.recycle();
                                        db = null;
                                }
                                if(session!=null){
//                                        session.recycle();
                                        session = null;
                                }
                        } catch (NotesException e) {
                                e.printStackTrace();
                                System.out.println("finallyToString----->"+e.toString());
                        }
                }
                
                
        }

}
参与1

0同行回答

“答”则兼济天下,请您为题主分忧!

提问者

xzw2651
软件开发工程师xzw2651

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2013-07-19
  • 关注会员:1 人
  • 问题浏览:16800
  • X社区推广