- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Tôi hoàn toàn làm theo cái này Hướng dẫn xây dựng ứng dụng khởi động mùa xuân để tải lên một tệp hướng dẫn. Những thay đổi tôi đã thực hiện được mô tả dưới đây.
Tôi đã thêm các thuộc tính sau vào ứng dụng.property
:
spring.http.multipart.max-file-size=2048MB
spring.http.multipart.max-request-size=2048MB
Sau đó, tôi đã thêm các tham số jvm sau vào cấu hình chạy dự án để giới hạn kích thước vùng heap jvm ở mức 2GB như câu trả lời này được mô tả trong :
-Xmx2048m
Tiếp theo tôi cũng đảm bảo rằng ứng dụng khởi động mùa xuân của tôi đang chạy trên java 64 bit có vẻ như vậy Java 32-bit yêu cầu không gian heap "liền kề" để dự trữ.
Nhưng khi tôi cố tải lên các tệp lớn, nó vẫn báo lỗi tương tự.
Đầu tiên tôi thử tải lên một tệp 20MB. có hiệu quả. Tiếp theo, tôi tiếp tục và thử giá trị (giá trị) iso của Ubuntu là 1GB, nhưng nó vẫn cho tôi ngoại lệ sau:
java.lang.OutOfMemoryError: Không gian vùng heap Java
tại java.util.Arrays.copyOf(Arrays.java:3236) ~[na:1.8.0_74]
tại java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118) ~[na:1.8.0_74]
tại java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93) ~[na:1.8.0_74]
tại java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:153) ~[na:1.8.0_74]
tại org.springframework.util.StreamUtils.copy(StreamUtils.java:128) ~[spring-core-4.3.5.RELEASE.jar:4.3.5.RELEASE]
tại org.springframework.util.FileCopyUtils.copy(FileCopyUtils.java:109) ~[spring-core-4.3.5.RELEASE.jar:4.3.5.RELEASE]
tại org.springframework.util.FileCopyUtils.copyToByteArray(FileCopyUtils.java:156) ~[spring-core-4.3.5.RELEASE.jar:4.3.5.RELEASE]
tại org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile.getBytes(StandardMultipartHttpServletRequest.java:291) ~[spring-web-4.3.5.RELEASE.jar:4.3.5.RELEASE]
tại com.digitate.ignio.spring_boot_hdfs_file_upload.controller.UploadController.singleFileUpload(UploadController.java:73) ~[classes/:na]
tại sun.reflect.NativeMethodAccessorImpl.invoke0(Phương thức gốc) ~[na:1.8.0_74]
tại sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_74]
tại sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_74]
tại java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_74]
tại org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:220) ~[spring-web-4.3.5.RELEASE.jar:4.3.5.RELEASE]
tại org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:134) ~[spring-web-4.3.5.RELEASE.jar:4.3.5.RELEASE]
tại org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:116) ~[spring-webmvc-4.3.5.RELEASE.jar:4.3.5.RELEASE]
tại org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) ~[spring-webmvc-4.3.5.RELEASE.jar:4.3.5.RELEASE]
tại org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) ~[spring-webmvc-4.3.5.RELEASE.jar:4.3.5.RELEASE]
tại org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) ~[spring-webmvc-4.3.5.RELEASE.jar:4.3.5.RELEASE]
tại org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) ~[spring-webmvc-4.3.5.RELEASE.jar:4.3.5.RELEASE]
tại org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) ~[spring-webmvc-4.3.5.RELEASE.jar:4.3.5.RELEASE]
tại org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) ~[spring-webmvc-4.3.5.RELEASE.jar:4.3.5.RELEASE]
tại org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) ~[spring-webmvc-4.3.5.RELEASE.jar:4.3.5.RELEASE]
tại javax.servlet.http.HttpServlet.service(HttpServlet.java:648) ~[tomcat-embed-core-8.5.6.jar:8.5.6]
tại org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) ~[spring-webmvc-4.3.5.RELEASE.jar:4.3.5.RELEASE]
tại javax.servlet.http.HttpServlet.service(HttpServlet.java:729) ~[tomcat-embed-core-8.5.6.jar:8.5.6]
tại org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) ~[tomcat-embed-core-8.5.6.jar:8.5.6]
tại org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.6.jar:8.5.6]
tại org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.5.6.jar:8.5.6]
tại org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) ~[tomcat-embed-core-8.5.6.jar:8.5.6]
tại org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) ~[tomcat-embed-core-8.5.6.jar:8.5.6]
tại org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-4.3.5.RELEASE.jar:4.3.5.RELEASE]
Tôi hiện có 8GB RAM được cài đặt trên máy của mình, trong đó có 1,5 GB trống. Tôi cũng đã thử chạy ứng dụng khởi động mùa xuân khi tôi có sẵn hơn 2 GB RAM.
Trong quá trình gỡ lỗi, tôi thấy kích thước của tệp được tải lên thực sự là 1+GB:
Nhưng khi thực hiện dòng 73 tập tin.getBytes()
, nó sẽ ném ngoại lệ trên.
Tôi đang thiếu gì ở đây?
câu trả lời hay nhất
Đối với các tệp lớn, tốt hơn nên sử dụng vòng lặp while để đọc 1024 byte vào bộ đệm và sau đó ghi bộ đệm vào máy chủ. Mã này đã được thử nghiệm với tệp tải lên 5GB. Bạn cần điều chỉnh các thuộc tính ứng dụng cho phù hợp, tức là ít nhất 5 GB nếu bạn muốn dùng thử
spring.http.multipart.max-file-size=6000MB
spring.http.multipart.max-request-size=6000MB
Đây là đoạn mã được viết bằng Spring framework.
@Ghi đè
public ResponseEntity uploadFile(@RequestParam("file") MultipartFile multipartfile) {
Phản hồi ResponseEntity;
multipartfile.getOriginalFilename();
byte [] bufferedbytes= byte mới [1024];
Tệp tệp = Tệp mới ("/home/david/Music/"+multipartfile.getOriginalFilename());
FileOutputStream outStream = null;
số int=0;
thử {
BufferedInputStream fileInputStream= new BufferedInputStream(multipartfile.getInputStream());
outStream=FileOutputStream mới(tệp);
while((count=fileInputStream.read(bufferedbytes))!=-1) {
outStream.write(bufferedbyte,0,count);
}
outStream.close();
} catch (IOException e) {
reply= new ResponseEntity("Không thể tải lên tệp"+multipartfile.getOriginalFilename(),HttpStatus.PAYLOAD_TOO_LARGE);
trả lời phản hồi;
}
reply= new ResponseEntity("Tệp được tải lên thành công"+multipartfile.getOriginalFilename(),HttpStatus.OK);
trả lời phản hồi;
}
Về java - "java.lang.OutOfMemoryError: Java heap space" trong khi tải lên tệp hơn 1 GB trong ứng dụng khởi động mùa xuân, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/51893585/
Ứng dụng của tôi bắt đầu bằng Bộ điều khiển thanh tab có 5 tab. Lúc đầu, cái đầu tiên xuất hiện với tên của nó, nhưng bốn cái còn lại không có tên cho đến khi tôi nhấp vào chúng. Tên sau đó được hiển thị dựa trên ngôn ngữ người dùng nói. Cách đặt tùy chọn trước khi thanh tab xuất hiện
Tôi có các đối tượng json mảng lồng nhau (lớp 1, lớp 2 và lớp 3). Vấn đề của tôi là bảng dữ liệu không xuất hiện. Mọi CDN liên quan đều đã được nhập. Bảng này chỉ hiển thị một phần của nó. Tôi đã tham khảo nhiều trang web nhưng không trang nào giải quyết được vấn đề của tôi. Trước đây tôi đã sử dụng các bảng tiêu chuẩn để
Tôi đang cố gắng thiết lập để hiển thị Parse PFLoginViewController. Đây là một trong các lớp Trình điều khiển Chế độ xem của tôi. nhập Nhập UIKit Nhập phân tích cú pháp
Tôi gặp phải vấn đề này, các đối tượng tôi vẽ không xuất hiện trong GUI. Tôi biết nó đang được xử lý vì dữ liệu đang được đẩy vào tệp nhật ký. Tuy nhiên, đồ họa không xuất hiện. Đây là một số mã của tôi: public static void main(Strin
Tôi có một sơ đồ cây chứa các lần xuất hiện của các từ như thế này... Số lần xuất hiện của TreeMap = new TreeMap (); Chuỗi = word Integer = số lần xuất hiện. Làm cách nào để có được số lần xuất hiện tối đa - một số nguyên,
Vì vậy, tôi nhắc người dùng nhập một biến. Nếu biến nhỏ hơn 0 và lớn hơn 10. Nếu người dùng nhập 10, tôi muốn yêu cầu người dùng nhập lại số đó. Khi hỏi thời gian, tôi nhập số 4 thì nó báo bạn nhập sai. Nhưng nó hoạt động rất tốt ở lần thử thứ hai. Ví dụ: Nếu tôi nhập 25, nó sẽ in
Tôi đã làm một ví dụ sử dụng thuộc tính tràn css. Trong ví dụ này, tôi gặp sự cố với thao tác cuộn tràn trang. Thanh cuộn xuất hiện nhưng không hoạt động nghĩa là bất cứ khi nào con trỏ được di chuyển đến thanh cuộn, trong thời gian này thanh cuộn không hoạt động. Mình không biết gì về cái này mong các bạn giúp đỡ
Hiện tại tôi đang làm việc trên một phần tử. Khi bạn nhấp vào một phần tử, thông báo sau sẽ xuất hiện và tôi muốn biết cách làm cho nó biến mất khi bạn nhấp vào phần tử tiếp theo mà không cần nhấp lại vào phần tử đó.... Ví dụ: tôi có pizza trong phần tử của mình và tôi muốn Nhấp vào trên pizza thịt để xem phần trên, sau đó bấm vào bánh pizza phô mai để xem phần trên và thịt
Tôi có một mô-đun bộ định tuyến so sánh các chủ đề với các biểu thức thông thường và các lần xuất hiện liên kết với các mặt nạ khóa nhất quán. (Đây là một cách lọc tuyến đường url đơn giản như symfony http://symfony.com/doc/curr
Câu hỏi này đã có câu trả lời ở đây: đã đóng cửa 9 năm trước. Có thể trùng lặp: mysql_fetch_array() dự kiến tham số 1 là tài nguyên, bo
Tôi có Chế độ xem có thanh công cụ ở dưới cùng và tôi đang sử dụng NavigationLink để điều hướng đến Chế độ xem. Nhưng khi View xuất hiện thì thanh công cụ xuất hiện hơi thấp. Ước chừng nửa giây sau, nó đột nhiên nhảy vào vị trí. Nó sẽ chỉ hoạt động khi ứng dụng khởi động
Tôi đang cố gắng thêm AVAudioPlayer cho nhạc nền trên ứng dụng của mình, tôi đang khởi chạy trình phát trên màn hình chính, cố gắng bắt đầu phát khi ứng dụng đang mở nhưng gặp phải hành vi không mong muốn... nó phát và ngay lập tức tiếp tục tạo trình phát mới và chơi những người chơi này, vì vậy hãy chơi đồng thời
Đây là lấy một số, lấy giai thừa của nó và nhân đôi nó, nhưng vì trường hợp cơ bản là nếu bạn nhập 0 thì kết quả là 2, vì vậy để giải quyết nó, tôi đã sử dụng câu lệnh if nhưng gặp lỗi đầu vào " lỗi phân tích cú pháp nếu" . Tôi thực sự đánh giá cao nếu các bạn có thể giúp đỡ
Ngoại lệ được đưa ra khi tạm dừng android.os.DeadObjectException trong android.os.BinderProxy.transactNative(phương thức gốc) trong android.
Tôi đã viết một số mã cho trò chơi đoán từ. Nó đọc một ký tự từ đầu vào của người dùng và tìm kiếm ký tự đó trong một từ, tùy thuộc vào ký tự đó có trong một từ hay không, chương trình sẽ trả về và điều khiển một số biến. Đoạn mã như sau: import java.util.Random import;
Tôi chưa quen với lĩnh vực tự động hóa. Đây là mã đăng nhập TestNG đơn giản của tôi, khi tôi chạy mã này dưới dạng TestNG, nó sẽ ném java.lang.NullPointerException và nhấp đúp vào nó, nó nổi bật, tôi điều hướng đến U
Tôi là lập trình viên C# và tôi đã quen với cú pháp đóng gói của C# và những thứ khác. Nhưng bây giờ, vì lý do nào đó, tôi nên viết một cái gì đó bằng java, tôi đang thực hành java trong một ngày! Tôi sẽ tạo một dự án giả cho chính mình để làm quen với java hơn!
Tôi đang sử dụng Intellij, lớp nguồn của tôi là main.com.coding và tệp tài nguyên của tôi là main.com.testing. Tôi đặt tệp spring.xml vào tệp tài nguyên. Lớp kiểm tra của tôi nằm trong test.
Tôi muốn thư mục kiểm tra của tôi tách biệt với mã ứng dụng của tôi. Cấu trúc dự án của tôi giống như mô-đun myproject/ myproject/ myproject.py này
Câu hỏi này đã có câu trả lời: NullPointerException là gì và làm cách nào để khắc phục nó? (12 câu trả lời) Đã đóng 6 năm trước. Vì vậy tôi cố gắng so sánh 2 giá trị, một
Tôi là một lập trình viên xuất sắc, rất giỏi!