- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
@Path("file.upload")
public class UploadFileService {
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetail) {
System.out.println("-----------------UploadFileService------------------1.");
// Should we use a disk or DB? Decided to use DISK
// Path should be read from properties-files
String uploadedFileLocation = "//uploaded/" + fileDetail.getFileName();
// save it
writeToFile(uploadedInputStream, uploadedFileLocation);
String output = "File uploaded to : " + uploadedFileLocation;
// All went OK
return Response.status(200).entity(output).build();
}
WARNING: No injection source found for a parameter of type public javax.ws.rs.core.Response com.insame.service.UploadFileService.uploadFile(java.io.InputStream,com.sun.jersey.core.header.FormDataContentDisposition) at index 0.
SEVERE: WebModule[/insame]StandardWrapper.Throwable
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.insame.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=MethodHandler{handlerClass=class com.insame.service.UploadFileService, handlerConstructors=[org.glassfish.jersey.server.model.HandlerConstructor@47bee27a]}, handlingMethod=public javax.ws.rs.core.Response com.insame.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:410)
at org.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:157)
at org.glassfish.jersey.server.ApplicationHandler$3.run(ApplicationHandler.java:280)
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:277)
at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:262)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:167)
我在 UploadFileService
下实现了这样的测试服务:
@GET
@Path("count")
@Produces("text/plain")
public String countREST() {
return "1 one 1";
}
我得到了这个异常记录:
FINE: [Web-Security] hasResource perm: ("javax.security.jacc.WebResourcePermission"
"/webresources/file.upload/count" "GET")
SEVERE: WebModule[/insame]StandardWrapper.Throwable
java.lang.IllegalStateException: The resource configuration is not modifiable in this context.
at org.glassfish.jersey.server.ResourceConfig$ImmutableState.register(ResourceConfig.java:257)
WARNING: StandardWrapperValve[com.insame.service.ApplicationConfig]: Allocate exception for servlet com.insame.service.ApplicationConfig
java.lang.IllegalStateException: The resource configuration is not modifiable in this context.
at org.glassfish.jersey.server.ResourceConfig$ImmutableState.register(ResourceConfig.java:257)
at org.glassfish.jersey.server.ResourceConfig$ImmutableState.register(ResourceConfig.java:205)
at org.glassfish.jersey.server.ResourceConfig.register(ResourceConfig.java:435)
at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:261)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:167)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:349)
环境
最佳答案
要在您的 Jersey 应用程序中使用 multipart,您需要注册 MultiPartFeature在您的应用程序中,即:
public class ApplicationConfig extends Application {
public Set<Class<?>> getClasses() {
final Set<Class<?>> resources = new HashSet<Class<?>>();
// Add your resources.
resources.add(UploadFileService.class);
// Add additional features such as support for Multipart.
resources.add(MultiPartFeature.class);
return resources;
}
}
有关详细信息,请参阅 Multipart Jersey 用户指南中的部分。
对于您面临的第二个问题,请尝试重新启动 GlassFish 服务器,我不确定 NetBeans 在更改后如何重新加载 Jersey 应用程序(如果这没有帮助,请发布您的 ApplicationConfig
)。
关于java - 使用 Jersey 通过 RESTfull 服务上传文件和资源配置不可修改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18252990/
我使用 django 作为后端并使用 AngularJS 从我的 RESTfull 端点中提取数据。 我遇到了一个我想不出最佳解决方案的问题。 目前我有这个: /api/planned-meals?f
我在 SpringBoot 中使用 JPA 使用 MySql 数据库创建了一个完整的 Web 服务,我的 Web 服务在 localhost 上运行良好用windows机器。但是当我在 Linux 上
自然而然的答案当然是否定的,所以为了理解我的意思,请让我解释一下。 我们有一个服务,其中客户端 POST 要执行的作业,但它们不会在发布时执行。相反,我们的服务使用一个 ID 进行响应,客户端可以使用
我们正在尝试开发一个 Web 应用程序,其中 Controller (Servlet)应充当静态服务,最初浏览器将充当客户端,然后将来可能会有第三方应用程序使用来自同一 Controller 的服务。
这是我第一次尝试使用 RESTfull 应用程序。我已经阅读了很多与我的问题相同的页面,但他们并没有安静地击中目标。 这是我的服务。 package com.tutorialspoint; impor
我正在尝试使用会出错的安全 Restful 服务 Error = Error Domain=NSURLErrorDomain Code=-1202 “此服务器的证书无效。您可能正在连接到一个伪装成“x
我在 IIS 上发布了简单的 .net restful web 服务: [OperationContract] [WebInvoke(Method = "GET", ResponseF
无论在浏览器中输入什么路径,meteor 应用程序总是返回一个模板。如何添加路由以在 meteor 应用程序中启用 RESTfull 功能? 最佳答案 为了向我的 meteor 应用程序添加 REST
@Path("file.upload") public class UploadFileService { @POST @Consumes(MediaType.MULTIPART_FORM_DATA)
我有以下类和 web.xml 文件。 spring框架是否支持@PATH、@PUT、@Consumes...等jax-rs注解? 换句话说,我可以使用 @PATH 代替 @RequestMapping
我在 .NET 4 中创建了一个 WCF restfull 服务,并在 IIS 7.5/windows 7 x86 下发布了它。动词 GET 和 POST 工作正常,但 DELETE 和 PUT 给出
我的一个 Controller 有问题。当我使用(jason内容类型)从 Angular 发送(POST)数据到java Controller 时,我看到主题中可见的错误。所以我无法捕获服务器的响应。
我正在使用 restfull webservice 开发一个网站。我收到此错误 java.lang.ClassCastException: com.ehr.data.CombineClass cann
我制作了一个简单的 REST Jersey 应用程序,从 maven jersey-quickstart-grizzly 原型(prototype)开始(来自 http://download.java
我已经创建了 WCF Restfull 服务,但是当我从 JS 调用它时,它总是说找不到 Respurce。这是y员工类 namespace WcfRestMVC.Models { [Data
假设我想为一家书店开发一个 RESTfull WebApi。我将有一个 Api 来获取书籍信息,例如:books/1。 我想在有人获得图书信息时创建一个日志。因此,稍后我可以通过 Api 生成关于哪本
我用 Java 开发了一个网络服务。下面是它的一个方法。 @Path("/setup") public class SetupJSONService { @POST @Path("/i
我习惯做ROR,但我需要在Java环境中制作一个RESTfull WebService。所以我决定用 Play 来尝试一下!因为它看起来确实是个好主意。 所以我试图找到一种方法将 JSON 添加到我已
我有一个 ProductsController,我想创建一个复制产品的操作方法。它只需要一个参数,即一个 Id,这让我想要使用一个简单的 GET 请求。不过,有些东西告诉我 GET 在这里没有意义。我
我正在寻找最有效的方法来处理 ajax 请求作为使用普通表单的同步请求。据我所知,有 2 种方法可以处理例如新的订单发布请求: 选项 1: Controller 中的 AJAX 检查(为简单起见,省略
我是一名优秀的程序员,十分优秀!