दिलचस्प पोस्ट
कंसोल में क्रोम 'संसाधन लोड करने में विफल' संदेशों को दबाएं java.lang.VerifyError: शाखा लक्ष्य JDK 1.7 पर एक स्टैकमैप फ़्रेम की अपेक्षा करना JQuery में बाइंड और लाइव विधियों के बीच अंतर क्या है? 'जेड' शब्दशः के साथ सरलीकृत प्रारूप पार्सिंग की तारीख सर्वर से प्रमाण पत्र प्राप्त करने के लिए openssl का उपयोग करना विज़ुअल स्टूडियो 2010 हमेशा सोचता है कि परियोजना पुरानी है, लेकिन कुछ भी नहीं बदला है ffmpeg एक बास पाइप में ASP.NET MVC 4 अनुप्रयोग में सत्र का उपयोग कैसे करें? ऑप्टिमाइज़ेशन सक्षम के साथ भिन्न चल बिन्दु परिणाम – संकलक बग? जेएसएफ में एक पैरामीटर के साथ एक विधि कॉल कैसे करें MySQL – तालिकाओं के बीच 2 अलग-अलग डेटाबेस में शामिल हो? मैं जावास्क्रिप्ट में होस्ट नाम और पथ में यूआरएल को कैसे पार्स कर सकता हूँ? जावा में एक बूलियन चर को टॉगल करने का सबसे सुरक्षित तरीका है? आप जावा ऑब्जेक्ट को एचटीटीपी सत्र में कैसे संग्रहीत करते हैं? एंड्रॉइड सामग्री: स्टेटस बार का रंग बदल नहीं होगा

MULTIPART_FORM_DATA: प्रकार के किसी पैरामीटर के लिए कोई इंजेक्शन स्रोत नहीं मिला javax.ws.rs.core.Response

मैं एक सेवा बनाने के लिए जर्सी आधारित शांत सेवा कार्यान्वयन रणनीति का उपयोग कर रहा हूं जो फाइल अपलोड करने के लिए इस्तेमाल की जाएगी। मेरी सेवा वर्ग का नाम है: UploadFileService.java (नीचे कोड देखें)

package com.jerser.service; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import com.sun.jersey.core.header.FormDataContentDisposition; import com.sun.jersey.multipart.FormDataParam; @Path("/fileUpload") public class UploadFileService { @POST @Path("/upload") @Consumes(MediaType.MULTIPART_FORM_DATA) public Response uploadFile( @FormDataParam("file") InputStream uploadedInputStream, @FormDataParam("file") FormDataContentDisposition fileDetail) { String uploadedFileLocation = "d://uploaded/" + fileDetail.getFileName(); // save it writeToFile(uploadedInputStream, uploadedFileLocation); String output = "File uploaded to : " + uploadedFileLocation; return Response.status(200).entity(output).build(); } // save uploaded file to new location private void writeToFile(InputStream uploadedInputStream, String uploadedFileLocation) { try { OutputStream out = new FileOutputStream(new File( uploadedFileLocation)); int read = 0; byte[] bytes = new byte[1024]; out = new FileOutputStream(new File(uploadedFileLocation)); while ((read = uploadedInputStream.read(bytes)) != -1) { out.write(bytes, 0, read); } out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); } } } 

ये मेरी जेआर फाइलें हैं जो मेरे लिब में हैं:

 aopalliance-repackaged-2.4.0-b10.jar asm-debug-all-5.0.2.jar hk2-api-2.4.0-b10.jar hk2-locator-2.4.0-b10.jar hk2-utils-2.4.0-b10.jar javassist-3.18.1-GA.jar javax.annotation-api-1.2.jar javax.inject-2.4.0-b10.jar javax.servlet-api-3.0.1.jar javax.ws.rs-api-2.0.1.jar jaxb-api-2.2.7.jar jersey-client.jar jersey-common.jar jersey-container-servlet-core.jar jersey-container-servlet.jar jersey-core-1.11.jar jersey-guava-2.17.jar jersey-media-jaxb.jar jersey-multipart-1.18.jar jersey-server.jar org.osgi.core-4.2.0.jar osgi-resource-locator-1.0.1.jar persistence-api-1.0.jar validation-api-1.1.0.Final.jar 

जब मैं अपना टमाटर सर्वर स्थापित करने की कोशिश कर रहा हूं, तो मुझे निम्न त्रुटि मिलती है:

 org.glassfish.jersey.server.model.ModelValidationException: Validation of the application resource model has failed during application initialization. [[FATAL] No injection source found for a parameter of type public javax.ws.rs.core.Response com.jerser.service.UploadFileService.uploadFile(java.io.InputStream,com.sun.jersey.core.header.FormDataContentDisposition) at index 0.; source='ResourceMethod{httpMethod=POST, consumedTypes=[multipart/form-data], producedTypes=[], suspended=false, suspendTimeout=0, suspendTimeoutUnit=MILLISECONDS, invocable=Invocable{handler=ClassBasedMethodHandler{handlerClass=class com.jerser.service.UploadFileService, handlerConstructors=[org.glassfish.jersey.server.model.HandlerConstructor@d3e2d4]}, definitionMethod=public javax.ws.rs.core.Response com.jerser.service.UploadFileService.uploadFile(java.io.InputStream,com.sun.jersey.core.header.FormDataContentDisposition), parameters=[Parameter [type=class java.io.InputStream, source=file, defaultValue=null], Parameter [type=class com.sun.jersey.core.header.FormDataContentDisposition, source=file, defaultValue=null]], responseType=class javax.ws.rs.core.Response}, nameBindings=[]}'] at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:528) at org.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:166) at org.glassfish.jersey.server.ApplicationHandler$3.run(ApplicationHandler.java:327) at org.glassfish.jersey.internal.Errors$2.call(Errors.java:289) at org.glassfish.jersey.internal.Errors$2.call(Errors.java:286) at org.glassfish.jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:286) at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:324) at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:338) at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:171) at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:363) at javax.servlet.GenericServlet.init(GenericServlet.java:160) at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1176) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1102) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1009) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4885) at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5212) at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5207) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 

इंटरनेट पर मैंने पाया कि वहाँ बहुत सारे उदाहरण हैं जो दिखाता है कि मल्टीटार्ट फ़ाइल को RESTFul API का उपयोग कैसे करें। लेकिन एक ही समाधान के साथ मैं उन कोड को भी चलाने में सक्षम नहीं हूं मुझे लगता है कि मैं जेएआर फाइलों में कुछ गलत कर रहा हूं किसी को भी इस पर मेरी मदद कर सकता है?

वेब के समाधान से एकत्रित समाधान "MULTIPART_FORM_DATA: प्रकार के किसी पैरामीटर के लिए कोई इंजेक्शन स्रोत नहीं मिला javax.ws.rs.core.Response"

jersey-multipart-1.18.jar से छुटकारा jersey-multipart-1.18.jar । यह जर्सी 1.x के लिए है। इन दोनों को जोड़ें

  • जर्सी-मीडिया-बहुखण्डीय-2.17
  • mimepull-1.9.3

मैवेन के लिए आप इसका इस्तेमाल करेंगे

 <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-multipart</artifactId> <version>2.17</version> <!-- Make sure the Jersey matches the one you are currently using --> </dependency> 

इसके बाद आपको MultiPartFeature को कॉन्फ़िगर / पंजीकरण करना MultiPartFeature । यदि आप कॉन्फ़िगरेशन के लिए ResourceConfig का उपयोग कर रहे हैं, तो आप बस ऐसा कर सकते हैं

 register(MultiPartFeature.class); 

यदि आप web.xml का उपयोग कर रहे हैं, तो आप क्लास को एक <init-param> के रूप में जर्सी सर्वलेट में जोड़ सकते हैं

 <init-param> <param-name>jersey.config.server.provider.classnames</param-name> <param-value>org.glassfish.jersey.media.multipart.MultiPartFeature</param-value> </init-param> 

अद्यतन करें

इसके अलावा, एक बार जब आप jersey-multipart-1.18.jar से छुटकारा jersey-multipart-1.18.jar हैं तो आप लापता आयातित वर्गों के लिए त्रुटियों का संकलन करेंगे। अधिकांश भाग के लिए, वर्ग के नाम अभी भी समान हैं, बस संकुल बदल गए हैं, अर्थात

  • org.glassfish.jersey.media.multipart.FormDataParam
  • org.glassfish.jersey.media.multipart.FormDataContentDisposition

मुझे भी यही अपवाद मिला है। मैंने वेब.एक्सएमएल में निम्नलिखित बदलाव किए हैं

 <init-param> <param-name>jersey.config.server.provider.classnames</param-name> <param-value>org.glassfish.jersey.filter.LoggingFilter;org.glassfish.jersey.moxy.json.MoxyFeature;org.glassfish.jersey.media.multipart.MultiPartFeature</param-value> </init-param> 

और जर्सी को 2.7 से बदलकर 2. 9 कर दिया। मुझे नहीं पता है कि इस 2 के इस बदलाव ने क्या समस्या हल कर ली है।