Я загружаю файл в нашу службу загрузки с помощью soapUI. Файл будет загружаться правильно при вызове инструмента через графический интерфейс. Однако мы вызываем версию командной строки из нашего фреймворка.
Похоже, что вызов командной строки soapUI не может правильно построить Content-Disposition в HTTP-запросе, и когда он пытается добавить параметр «имя файла», возникает исключение, поскольку это неожиданно. Вот трассировка стека:
14:33:51,358 ERROR [SoapUI] An error occured [Expected ';', got "filename"], see error log for details
javax.mail.internet.ParseException: Expected ';', got "filename"
at javax.mail.internet.ParameterList.<init>(ParameterList.java:280)
at javax.mail.internet.ContentDisposition.<init>(ContentDisposition.java:96)
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1338)
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1008)
at javax.mail.internet.PreencodedMimeBodyPart.updateHeaders(PreencodedMimeBodyPart.java:117)
at javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:414)
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1285)
at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2071)
at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:2039)
at com.eviware.soapui.impl.wsdl.submit.filters.HttpRequestFilter.filterHttpRequest(HttpRequestFilter.java:240)
at com.eviware.soapui.impl.wsdl.submit.filters.AbstractRequestFilter.filterAbstractHttpRequest(AbstractRequestFilter.java:41)
at com.eviware.soapui.impl.wsdl.submit.filters.AbstractRequestFilter.filterRequest(AbstractRequestFilter.java:31)
at com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.sendRequest(HttpClientRequestTransport.java:130)
at com.eviware.soapui.impl.wsdl.WsdlSubmit.run(WsdlSubmit.java:122)
at com.eviware.soapui.impl.wsdl.WsdlSubmit.submitRequest(WsdlSubmit.java:75)
at com.eviware.soapui.impl.support.http.HttpRequest.submit(HttpRequest.java:258)
at com.eviware.soapui.impl.wsdl.teststeps.HttpTestRequestStep.run(HttpTestRequestStep.java:253)
at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner.runTestStep(WsdlTestCaseRunner.java:193)
at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner.internalRun(WsdlTestCaseRunner.java:124)
at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner.internalRun(WsdlTestCaseRunner.java:39)
at com.eviware.soapui.impl.wsdl.support.AbstractTestRunner.run(AbstractTestRunner.java:137)
at com.eviware.soapui.impl.wsdl.support.AbstractTestRunner.start(AbstractTestRunner.java:80)
at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCase.run(WsdlTestCase.java:578)
at awris.product.testengine.commands.service.SoapUICommand$BetterSoapUITestCaseRunner.runTestCase(SoapUICommand.java:303)
at com.eviware.soapui.tools.SoapUITestCaseRunner.runRunner(SoapUITestCaseRunner.java:318)
at com.eviware.soapui.tools.AbstractSoapUIRunner.run(AbstractSoapUIRunner.java:133)
at awris.product.testengine.commands.service.SoapUICommand.execute(SoapUICommand.java:76)
at awris.product.testengine.TestRunner.executeCommands(TestRunner.java:123)
at awris.product.testengine.TestRunner.doTest(TestRunner.java:87)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:609)
at org.testng.internal.MethodHelper$1.runTestMethod(MethodHelper.java:727)
......
Когда тест запускается, файл не загружается, потому что вложение отсутствует из-за выдувания конструкции заголовка. Почему это происходит при вызове командной строки, а не в графическом интерфейсе, и как это исправить?