spring - Error java.lang.IllegalArgumentException: Invalid token character '/' in token "multipart/form-data" -
i have following test case. when run error "java.lang.illegalargumentexception: invalid token character '/' in token "multipart/form-data"".
url url = getclass().getresource("/xyz.dat"); file f = new file(url.getfile()); fileinputstream f1 = new fileinputstream(f); mockmultipartfile mockmultipartfile = new mockmultipartfile("file", "linga", "multipart/form-data", f1); mediatype mediatype = new mediatype(mediatype.multipart_form_data_value); this.mockmvc.perform(post("/someurl") .content(mockmultipartfile.getbytes()) .contenttype(mediatype.multipart_form_data_value)) .andexpect(status().isok()); the full stack trace:
java.lang.illegalargumentexception: invalid token character '/' in token "multipart/form-data" @ org.springframework.util.mimetype.checktoken(mimetype.java:182) @ org.springframework.util.mimetype.<init>(mimetype.java:153) @ org.springframework.util.mimetype.<init>(mimetype.java:118) @ org.springframework.util.mimetype.<init>(mimetype.java:107) @ org.springframework.http.mediatype.<init>(mediatype.java:220) @ com.tangomc.kettle.oven.controllers.fileboxcontrollertest.testuploadfile(fileboxcontrollertest.java:138) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ org.junit.runners.model.frameworkmethod$1.runreflectivecall(frameworkmethod.java:47) @ org.junit.internal.runners.model.reflectivecallable.run(reflectivecallable.java:12) @ org.junit.runners.model.frameworkmethod.invokeexplosively(frameworkmethod.java:44) @ org.junit.internal.runners.statements.invokemethod.evaluate(invokemethod.java:17) @ org.junit.internal.runners.statements.runbefores.evaluate(runbefores.java:26) @ org.springframework.test.context.junit4.statements.runbeforetestmethodcallbacks.evaluate(runbeforetestmethodcallbacks.java:73) @ org.springframework.test.context.junit4.statements.runaftertestmethodcallbacks.evaluate(runaftertestmethodcallbacks.java:82) @ org.springframework.test.context.junit4.statements.springrepeat.evaluate(springrepeat.java:73) @ org.junit.runners.parentrunner.runleaf(parentrunner.java:271) @ org.springframework.test.context.junit4.springjunit4classrunner.runchild(springjunit4classrunner.java:224) @ org.springframework.test.context.junit4.springjunit4classrunner.runchild(springjunit4classrunner.java:83) @ org.junit.runners.parentrunner$3.run(parentrunner.java:238) @ org.junit.runners.parentrunner$1.schedule(parentrunner.java:63) @ org.junit.runners.parentrunner.runchildren(parentrunner.java:236) @ org.junit.runners.parentrunner.access$000(parentrunner.java:53) @ org.junit.runners.parentrunner$2.evaluate(parentrunner.java:229) @ org.springframework.test.context.junit4.statements.runbeforetestclasscallbacks.evaluate(runbeforetestclasscallbacks.java:61) @ org.springframework.test.context.junit4.statements.runaftertestclasscallbacks.evaluate(runaftertestclasscallbacks.java:68) @ org.junit.runners.parentrunner.run(parentrunner.java:309) @ org.springframework.test.context.junit4.springjunit4classrunner.run(springjunit4classrunner.java:163) @ org.junit.runner.junitcore.run(junitcore.java:160) @ com.intellij.junit4.junit4ideatestrunner.startrunnerwithargs(junit4ideatestrunner.java:78) @ com.intellij.rt.execution.junit.junitstarter.preparestreamsandstart(junitstarter.java:212) @ com.intellij.rt.execution.junit.junitstarter.main(junitstarter.java:68) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62) @ com.intellij.rt.execution.application.appmain.main(appmain.java:140) jul 07, 2015 6:29:13 pm org.springframework.test.web.servlet.testdispatcherservlet initservletbean info: frameworkservlet '': initialization completed in 31 ms i got while running above test case on controller uploads files.
update: error on line:
mediatype mediatype = new mediatype(mediatype.multipart_form_data_value);
you using wrong constructor. constructor takes type arguments , treats subtype *
to fix code change:
mediatype mediatype = new mediatype(mediatype.multipart_form_data_value); to:
mediatype mediatype = mediatype.valueof(mediatype.multipart_form_data_value); or:
mediatype mediatype = mediatype.multipart_form_data;
Comments
Post a Comment