#java #rest #download
#java #rest #Скачать
Вопрос:
Мне нужно загрузить файл с удаленного сервера с использованием JAX RS, и это мой код:
package rest;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.ResponseBuilder;
@Path("/restwb")
public class FileResource {
@GET
@Path("/{companyName}/{Type}/{cl}/{fname}")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response downloadFile(@PathParam("fname") String fileName, @PathParam("companyName") String CompName,
@PathParam("Type") String Type, @PathParam("cl") String cl) throws FileNotFoundException {
Response response = null;
try {
File file = new File(getClass().getClassLoader()
.getResource(CompName "/" Type "/" cl "/" fileName ".png").getFile());
FileInputStream inputStream = new FileInputStream(file);
ResponseBuilder rb = Response.ok(inputStream);
rb.header("Content-Disposition", "attachment; filename=" file.getName());
response = rb.build();
} catch (Exception e) {
e.printStackTrace();
}
return response;
}
}
Мой вопрос в том, как я могу сохранить изображение на моем удаленном сервере, а затем загрузить его.Я тестирую его на localhost, он работает правильно, но если я протестирую его на удаленном сервере, я не смогу сохранить и загрузить.
2019-03-11 13:20:48,385 ИНФОРМАЦИЯ [com.sun.jersey.server.impl.application.WebApplicationImpl] (Пул потоков ServerService — 71) Инициирование приложения Jersey, версия ‘Джерси: 1.19.2 25.08.2016 12:00’ 2019-03-11 13:20:49 300 ИНФОРМАЦИЯ [org.wildfly.extension.undertow] (пул потоков ServerService — 71) WFLYUT0021: зарегистрированный веб-контекст: /RestWS 2019-03-11 13:20:49 321 ИНФОРМАЦИЯ [org.jboss.as.server ] (Потоки запросов внешнего управления — 7) WFLYSRV0010: развернут «RestWS.war» (имя среды выполнения: «RestWS.war») 2019-03-11 13:24:54,763 ОШИБКА [stderr] (задача по умолчанию-8) java.io.FileNotFoundException: /content/RestWS.war/WEB-INF/classes/Intercable / IOS / Iphone /a_red.png (такого файла или каталога нет) 2019-03-11 13:24:54,764 ОШИБКА [stderr] ( задача по умолчанию-8) в java.io.FileInputStream.open0 (собственный метод) 2019-03-11 13:24:54,764 ОШИБКА [stderr] (задача по умолчанию-8) в java.io.FileInputStream.open(FileInputStream.java:195) 2019-03-11 13:24:54,764 ОШИБКА [stderr] (задача по умолчанию-8) в java.io.FileInputStream.(FileInputStream.java:138) 2019-03-11 13:24:54,764 ОШИБКА [stderr] (задача по умолчанию-8) в состоянии покоя.Файловый источник.DownloadFile(файловый источник.java: 43) 2019-03-11 13:24:54,765 ОШИБКА [stderr] (задача по умолчанию-8) в sun.reflect.NativeMethodAccessorImpl.invoke0(собственный метод) 2019-03-11 13:24:54,765 ОШИБКА [stderr] (задача по умолчанию-8) в sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl .java:62) 2019-03-11 13:24:54,765 ОШИБКА [stderr] (задача по умолчанию-8) в sun.reflect.Делегирование methodaccessorimpl.invoke(DelegatingMethodAccessorImpl.java:43) 2019-03-11 13:24:54,765 ОШИБКА [stderr] (задача по умолчанию-8) в java.lang.reflect.Метод.invoke(Method.java:498) 2019-03-11 13:24:54,765 ОШИБКА [stderr] (задача по умолчанию-8) на com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) 2019-03-11 13:24:54,765 ОШИБКА [stderr] (задача по умолчанию-8) на com.sun.jersey.server .импл.модель.метод.отправка.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205 ) 2019-03-11 13:24:54,768 ОШИБКА [stderr] (задача по умолчанию-8) в com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) 2019-03-11 13:24:54,768 ОШИБКА [stderr] (задача по умолчанию-8) на com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302) 2019-03-11 13:24:54,768 ОШИБКА [stderr] (задача по умолчанию-8) в com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) 2019-03-11 13:24:54,768 ОШИБКА [stderr] (задача по умолчанию-8) в com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) 2019-03-11 13:24:54,768 ОШИБКА [stderr] (задача по умолчанию-8) в com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) 2019-03-11 13:24:54,768 ОШИБКА [stderr] (задача по умолчанию-8) в com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) 2019-03-11 13:24:54,768 ОШИБКА [stderr] (задача по умолчанию-8) в com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542) 2019-03-11 13:24:54,768 ОШИБКА [stderr] (задача по умолчанию-8) в com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473) 2019-03-11 13:24:54,769 ОШИБКА [stderr] (задача по умолчанию-8) на com.sun.jersey.server.impl.application.WebApplication impl.handleRequest(WebApplication impl.java:1419) 2019-03-11 13:24:54,769 ОШИБКА [stderr] (задача по умолчанию-8) в com.sun.jersey.server.impl.application.WebApplication impl.handleRequest(WebApplication impl.java:1409) 2019-03-11 13:24:54,769 ОШИБКА [stderr] (задача по умолчанию-8) в com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409) 2019-03-11 13:24:54,769 ОШИБКА [stderr] (задача по умолчанию-8) в com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558) 2019-03-11 13:24:54,769 ОШИБКА [stderr] (задача по умолчанию-8) в com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733) 2019-03-11 13:24:54,769 ОШИБКА [stderr] (задача по умолчанию-8) в javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 2019-03-11 13:24:54,769 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) 2019-03-11 13:24:54,769 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java: 62) 2019-03-11 13:24:54,769 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) 2019-03-11 13:24:54,770 ОШИБКА [stderr] (задача по умолчанию-8) в org.wildfly.extension.undertow.security.Запрос SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) 2019-03-11 13:24:54,770 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 2019-03-11 13:24:54,770 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) 2019-03-11 13:24:54,770 ОШИБКА [stderr] (задача по умолчанию-8) при вводе-выводе.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) 2019-03-11 13:24:54,770 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 2019-03-11 13:24:54,770 ОШИБКА [stderr] (задача по умолчанию-8) при вводе-выводе.undertow.security.handlers.ЗАПРОС AbstractConfidentialityHandler.handleRequest(ЗАПРОС AbstractConfidentialityHandler.java:46) 2019-03-11 13:24:54,770 ОШИБКА [stderr] (задача по умолчанию-8) при вводе-выводе.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64 ) 2019-03-11 13:24:54,770 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.security.handlers.Запрос AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) 2019-03-11 13:24:54,771 ОШИБКА [stderr] (задача по умолчанию-8) при вводе-выводе.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) 2019-03-11 13:24:54,771 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50 ) 2019-03-11 13:24:54,771 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43 ) 2019-03-11 13:24:54,772 ОШИБКА [stderr] (задача по умолчанию-8) при вводе-выводе.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 2019-03-11 13:24:54,772 ОШИБКА [stderr] (задача по умолчанию-8) в org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61 ) 2019-03-11 13:24:54,772 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 2019-03-11 13:24:54,772 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 2019-03-11 13:24:54,772 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292) 2019-03-11 13:24:54,772 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.servlet.handlers.ServletInitialHandler.access за 100 долларов (ServletInitialHandler.java:81) 2019-03-11 13:24:54 772 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.servlet.handlers.ServletInitialHandler $2.вызов (ServletInitialHandler.java:138) 2019-03-11 13:24:54,773 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.servlet.handlers.ServletInitialHandler$2.вызовите(ServletInitialHandler.java:135) 2019-03-11 13:24:54,773 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.вызов (ServletRequestContextThreadSetupAction.java:48) 2019-03-11 13:24:54,773 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.servlet.core.ContextClassLoaderSetupAction$1.вызов (ContextClassLoaderSetupAction.java:43) 2019-03-11 13:24:54 773 ОШИБКА [stderr] (задача по умолчанию-8) при вводе-выводе.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.вызов (LegacyThreadSetupActionWrapper.java:44) 2019-03-11 13:24:ОШИБКА 773 [stderr] при вводе-выводе.servlet.api.LegacyThreadSetupActionWrapper. 54,773 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.servlet.api.LegacyThreadSetupActionWrapper $ 1.вызов (LegacyThreadSetupActionWrapper.java:44) 2019-03-11 13:24:54,773 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.servlet.api.LegacyThreadSetupActionWrapper $1.вызов (LegacyThreadSetupActionWrapper .java: 44) 2019-03-11 13:24:54,773 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.servlet.api.LegacyThreadSetupActionWrapper $ 1.вызов (LegacyThreadSetupActionWrapper.java:44) 2019-03-11 13:24:54,773 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.servlet.api.LegacyThreadSetupActionWrapper$ 1. вызовите(LegacyThreadSetupActionWrapper.java:44) 2019-03-11 13:24:54,774 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272) 2019-03-11 13:24:54,774 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.servlet.handlers.ServletInitialHandler.доступ к $000 (ServletInitialHandler.java:81) 2019-03-11 13:24:54 774 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.servlet.handlers.ServletInitialHandler $1.handleRequest(ServletInitialHandler.java:104) 2019-03-11 13:24:54,774 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.server.Connectors.executeRootHandler(Connectors.java:202) 2019-03-11 13:24:54,774 ОШИБКА [stderr] (задача по умолчанию-8) в io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:805) 2019-03-11 13:24:54,774 ОШИБКА [stderr] (задача по умолчанию-8) в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 2019-03-11 13:24:54,774 ОШИБКА [stderr] (задача по умолчанию-8) в java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 2019-03-11 13:24:54,774 ОШИБКА [stderr] (задача по умолчанию-8) на java.lang.Thread.run(поток.java:748)
Комментарии:
1. Здравствуйте и добро пожаловать в SO. Пожалуйста, отредактируйте свой вопрос, чтобы добавить stackTrace исключения в виде текста.
2. я думаю, вы ссылаетесь на относительный путь, вам нужно указать фактический путь к файлу
3. Здравствуйте, как я могу указать фактический путь, который я хочу загрузить с удаленного сервера.
4. <build> <finalName> ${project.artifactId}</finalName> <ресурсы> <resource> <каталог>src/main/Design</directory> <фильтрация>true</filtering> </resource> </ресурсы> </сборка> </проект>