首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么有些linux命令不能在Citrus中执行,比如PWD

为什么有些linux命令不能在Citrus中执行,比如PWD
EN

Stack Overflow用户
提问于 2018-10-01 10:35:06
回答 1查看 99关注 0票数 0

我是连接到Linux服务器使用SFTP协议使用柑橘FTP组件。文档中提供的以下命令执行良好。

代码语言:javascript
复制
<send endpoint="ftpClient">
  <message>
    <payload>
      <ftp:command>
        <ftp:signal>MKD</ftp:signal>
        <ftp:arguments>test</ftp:arguments>
      </ftp:command>
    </payload>
  </message>
</send> 

但是,当我提供另一个命令,如PWD,如下所示

代码语言:javascript
复制
<send endpoint="ftpClient">
      <message>
        <payload>
          <ftp:command>
            <ftp:signal>PWD</ftp:signal>
            <ftp:arguments></ftp:arguments>
          </ftp:command>
        </payload>
      </message>
    </send> 

我搞错了。但是当我使用SSH协议执行上面的命令时,该命令执行得很好。

代码语言:javascript
复制
<send endpoint="sftpClient">
  <message>
    <payload>
      <ftp:command>
        <ftp:signal>pwd</ftp:signal>
        <ftp:arguments></ftp:arguments>
      </ftp:command>
    </payload>
  </message>
</send>

我无法解决这个问题,另一件事是如何使用柑橘ftp组件在序列中执行两个命令,例如,例如:我想移动到一个特定的路径,并看到该路径中文件的大小,为此,我们必须首先使用"CD“命令,然后使用"ls -l”,如何使用柑橘实现这个目标。下面是错误的堆栈跟踪

代码语言:javascript
复制
 TEST FAILED ssh_connection_Test <com.consol.citrus.samples.todolist> Nested exception is: 
com.consol.citrus.exceptions.CitrusRuntimeException: Failed to read ftp XML object from source
    at com.consol.citrus.ftp.message.FtpMarshaller.unmarshal(FtpMarshaller.java:120)
    at com.consol.citrus.ftp.message.FtpMessage.getCommand(FtpMessage.java:429)
    at com.consol.citrus.ftp.message.FtpMessage.getPayload(FtpMessage.java:384)
    at com.consol.citrus.ftp.client.FtpClient.send(FtpClient.java:108)
    at com.consol.citrus.actions.SendMessageAction.doExecute(SendMessageAction.java:125)
    at com.consol.citrus.actions.AbstractTestAction.execute(AbstractTestAction.java:42)
    at com.consol.citrus.TestCase.executeAction(TestCase.java:234)
    at com.consol.citrus.TestCase.doExecute(TestCase.java:153)
    at com.consol.citrus.actions.AbstractTestAction.execute(AbstractTestAction.java:42)
    at com.consol.citrus.Citrus.run(Citrus.java:403)
    at com.consol.citrus.testng.AbstractTestNGCitrusTest.invokeTestMethod(AbstractTestNGCitrusTest.java:124)
    at com.consol.citrus.testng.AbstractTestNGCitrusTest.run(AbstractTestNGCitrusTest.java:108)
    at com.consol.citrus.testng.AbstractTestNGCitrusTest.run(AbstractTestNGCitrusTest.java:70)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.testng.internal.MethodInvocationHelper.invokeHookable(MethodInvocationHelper.java:212)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:707)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
    at org.testng.TestRunner.privateRun(TestRunner.java:767)
    at org.testng.TestRunner.run(TestRunner.java:617)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
    at org.testng.SuiteRunner.run(SuiteRunner.java:240)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
    at org.testng.TestNG.run(TestNG.java:1057)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
Caused by: org.springframework.oxm.UnmarshallingFailureException: JAXB unmarshalling exception; nested exception is javax.xml.bind.UnmarshalException
 - with linked exception:
[org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 37; cvc-enumeration-valid: Value 'PWD' is not facet-valid with respect to enumeration '[OPEN, ABOR, ACCT, ALLO, APPE, CDUP, CWD, DELE, EPRT, EPSV, FEAT, HELP, LIST, MDTM, MFMT, MKD, MLSD, MLST, MODE, NLST, NOOP, PASS, PASV, PORT, PWD, QUIT, REIN, REST, RETR, RMD, RNFR, RNTO, SITE, SMNT, STAT, STOR, STOU, STRU, SYST, TYPE, USER]'. It must be a value from the enumeration.]
    at org.springframework.oxm.jaxb.Jaxb2Marshaller.convertJaxbException(Jaxb2Marshaller.java:909)
    at org.springframework.oxm.jaxb.Jaxb2Marshaller.unmarshal(Jaxb2Marshaller.java:782)
    at org.springframework.oxm.jaxb.Jaxb2Marshaller.unmarshal(Jaxb2Marshaller.java:751)
    at com.consol.citrus.ftp.message.FtpMarshaller.unmarshal(FtpMarshaller.java:95)
    ... 36 more
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-05 10:10:56

您提供的错误信息与PWD信号无关。它失败了,因为在使用FTP客户端时,您发送的信号ls -ltr不是受支持的信号。

如果要列出服务器上带有FTP的文件,则需要使用LIST信号。

请不要混淆SSH和FTP命令和信号。当然,您也可以打开SSH会话,并使用ls启动列表文件命令。但是您需要使用Citrus SSH客户端。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52589276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档