2011-03-16 5 views
1

soapUI를 사용하여 업로드 서비스에 파일을 업로드하고 있습니다. 도구의 GUI 호출을 사용할 때 파일이 올바르게 업로드됩니다. 그러나 우리는 프레임 워크에서 명령 행 버전을 호출합니다.soapUI에서 파일 업로드

soapUI 명령 줄 호출이 http 요청의 Content-Disposition을 올바르게 구성 할 수없고 "filename"매개 변수를 추가하려고 시도하면 예상치 못한 예외가 발생합니다. 다음은 스택 추적입니다.

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) 
...... 

테스트가 실행되면 헤더 구성이 끊어져서 첨부 파일이 존재하지 않기 때문에 파일을 업로드 할 수 없습니다. 이 문제가 GUI가 아닌 명령 행 호출에서 발생하는 이유는 무엇입니까? 어떻게 수정합니까?

답변

1

확인 해결책을 직접 찾았습니다. 내가 사용했던 soapUI GUI의 버전은 3.6.1이었고 명령 줄 호출 버전은 3.0.1이었고 파일 업로드 요청에 대해 Content-Disposition을 잘못 생성하는 것을 방지하는 버그가있었습니다. 즉, Content-Disposition에 파일 이름 매개 변수를 포함하지 않습니다.

버전을 3.6.1로 업데이트하면 문제가 해결되었습니다.

관련 문제