NotesException: обязательный аргумент не указан

Мой XPage собирает информацию, которую я использую для заполнения документа в другой базе данных Domino. Я использую кнопку ссылки (чтобы я мог открыть другую XPage после отправки). Код onClick выглядит следующим образом:

 var rtn = true
 var util = new utilities()
 var hostURL = configBean.getValue("HostURL");
var userAttachment;
//set up info needed for checking duplicates
var attachName=getComponent("attachmentIdentifier").getValue();
var serialNbr = getComponent("serialNumber").getValue();
userAttachment = user+"~"+attachName;
var userSerial = user+"~"+serialNbr;
//Done setting info needed
//check for duplicates
rtn = utilBean.checkAttachmentName(userAttachment, userSerial)
//done
if (rtn==true){
 var doc:Document = document1;
 dBar.info("ALL IS GOOD");
 var noteID:String=document1.getNoteID();
 dBar.info("Calling saveNewAttachment using NoteID " + noteID )
 rtn=utilBean.saveNewAttachment(session,noteID );  //<<< I get error here
 dBar.info("rtn = " + rtn)
 return "xsp-success";
 view.postScript("window.open('"+sessionScope.nextURL+"')")
}else if (rtn==false){
 errMsgArray = utilBean.getErrorMessages();
 for(err in errMsgArray){
 //for (i=0; i < errMsgArray.size(); i++){
     dBar.info("err: "+ err.toString());
     if (err== "nameUsed"){
         //send message to XPXage
         facesContext.addMessage(attachmentIdentifier.getClientId(facesContext) , msg(langBean.getValue("duplicateName")));
     }
         if (err= = "serialUsed"){
             //send message to XPXage
             facesContext.addMessage(serialNumber.getClientId(facesContext) , msg(langBean.getValue("duplicateSerial")));
     }
 }

 return "xsp-failure";
}

И код Java, который доставляет ошибку, таков

public boolean saveNewAttachment(Session ses, String noteID)
throws NotesException {
debugMsg("Entering saveNewAttachment and  NOTEID = "+noteID);
// this is used when the user saves an attachment to to the
// user profiles db
boolean rtn = false;
Document  doc;
ConfigBean configBean = (ConfigBean)         
ExtLibUtil.resolveVariable(FacesContext.getCurrentInstance(), 
"configBean");
String dbName = (String) configBean.getValue("WebsiteDbPath");
debugMsg("A");
Database thisDB = ses.getDatabase(ses.getServerName(), dbName, false);
String value;
try {
debugMsg("noteID:  "+noteID);

Следующая строка выдает ошибку NotesException

doc = thisDB.getDocumentByID("noteID");
debugMsg("C");
} catch (Exception e) {
debugMsg("utilitiesBean.saveAttachment: " + e.toString());
e.printStackTrace();
System.out.println("utilitiesBean.saveAttachment: " + e.toString());
throw new RuntimeException("utilitiesBean.saveAttachment: "
    + e.toString());
}
 return rtn;
}

Я могу говорить об этом неправильно. Я хочу сохранить документ, данные которого привязаны к базе данных профилей пользователей, но если я отправлю его, мне нужно перенаправить его на другую страницу. Вот почему я использую ссылку, однако мне трудно сохранить документ.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
320
1

Ответы 1

Сохранялся ли document1 перед вызовом этого кода? Если нет, то его нет в серверной базе данных для извлечения через getDocumentByID().

Я предполагаю, что эта строка была скопирована сюда неправильно, потому что «noteID» — это не NoteID или переменная, содержащая NoteID, это строка.

doc = thisDB.getDocumentByID("noteID");

Ой, вы правы. Мне нужно удалить кавычки, но это не настоящая проблема. Я еще не пытался сохранить документ, поэтому я попытаюсь сделать это в первую очередь.

Mike Zens 18.01.2019 16:10

Другие вопросы по теме