Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UniObjects for Java:在UniCommand.exec()中发生错误时如何获取响应字符串_Java_Unidata_Universe_Uniobjects - Fatal编程技术网

UniObjects for Java:在UniCommand.exec()中发生错误时如何获取响应字符串

UniObjects for Java:在UniCommand.exec()中发生错误时如何获取响应字符串,java,unidata,universe,uniobjects,Java,Unidata,Universe,Uniobjects,我希望能够确定UniCommand无法使用UniObjects for Java来告诉用户的确切原因。我有下面的代码,在理想条件下可以正常工作,但是如果命令不是有效的命令,uniCommand.response()返回一个空的字符串。我想知道命令无法执行的确切原因。我尝试使用uniCommand.getSystemReturnCode(),但如果命令未成功完成且信息不足,它总是返回-1。我怎样才能确切地找出哪里出了问题 UniCommand uniCommand = uniSession.com

我希望能够确定
UniCommand
无法使用UniObjects for Java来告诉用户的确切原因。我有下面的代码,在理想条件下可以正常工作,但是如果
命令
不是有效的命令,
uniCommand.response()
返回一个空的
字符串
。我想知道命令无法执行的确切原因。我尝试使用
uniCommand.getSystemReturnCode()
,但如果命令未成功完成且信息不足,它总是返回
-1
。我怎样才能确切地找出哪里出了问题

UniCommand uniCommand = uniSession.command();
uniCommand.setCommand(command);
uniCommand.exec();
int status = uniCommand.status();
//int sysRet = uniCommand.getSystemReturnCode();

if (status == UniObjectsTokens.UVS_COMPLETE) {
    output(uniCommand.response());
}
例如: 当我在UniVerse服务器上通过telnet执行
BLAH
时,我得到:

Verb "BLAH" is not in your VOC.
当我执行
LIST BLAH时,我得到:

RetrieVe: syntax error.  Unexpected sentence without filename.  Token was "".
          Scanned command was LIST 'BLAH'

我希望使用UniObjects for Java在我的程序中获得这些确切的错误消息。这可能吗?

我也遇到了同样的问题,这似乎是uniobjects库的一个限制。处理它的一种方法是将命令包装在子例程中

SUBROUTINE RUN.COMMAND(COMMAND,RESPONSE)
    EXECUTE COMMAND CAPTURING RESPONSE
END
然后使用UniSubroutine对象调用它

String command = "LIST BLAH";
UniSubroutine sub = uniSession.subroutine("RUN.COMMAND", 2);
sub.setArg(0, command);
sub.call();
UniDynArray response = new UniDynArray(sub.getArg(1));

for (int i = 0; i < response.dcount(); i++) {
    String line = response.extract(i).toString();
    System.out.println(line);
}
String命令=“列出废话”;
UniSubroutine sub=uniSession.subroutine(“RUN.COMMAND”,2);
sub.setArg(0,命令);
sub.call();
UniDynArray响应=新UniDynArray(sub.getArg(1));
对于(int i=0;i
我也遇到了同样的问题,这似乎是uniobjects库的一个限制。处理它的一种方法是将命令包装在子例程中

SUBROUTINE RUN.COMMAND(COMMAND,RESPONSE)
    EXECUTE COMMAND CAPTURING RESPONSE
END
然后使用UniSubroutine对象调用它

String command = "LIST BLAH";
UniSubroutine sub = uniSession.subroutine("RUN.COMMAND", 2);
sub.setArg(0, command);
sub.call();
UniDynArray response = new UniDynArray(sub.getArg(1));

for (int i = 0; i < response.dcount(); i++) {
    String line = response.extract(i).toString();
    System.out.println(line);
}
String命令=“列出废话”;
UniSubroutine sub=uniSession.subroutine(“RUN.COMMAND”,2);
sub.setArg(0,命令);
sub.call();
UniDynArray响应=新UniDynArray(sub.getArg(1));
对于(int i=0;i
您的代码似乎应该返回错误消息响应。命令成功时检索响应(例如:LIST)?或者这也是返回一个空白字符串?我同意,它似乎应该返回错误消息。命令成功后,它将按预期返回DB响应。您的代码似乎应该返回错误消息响应。命令成功时检索响应(例如:LIST)?或者这也是返回一个空白字符串?我同意,它似乎应该返回错误消息。命令成功后,它将按预期返回DB响应。