glassfish 4和jersey-media-multipart 2不能与beans.xml一起使用
我正在使用glassfish 4使用最近发布的标准
Java 7EE堆栈构建一些restful应用程序.
我的基本restful服务工作正常,但现在我想处理在同一服务中使用multipart mime类型的传入文件上传. 我在https://jersey.java.net/documentation/latest/user-guide.html中找到了一个POC球衣maven示例(multipart-webapp) 严重:加载应用程序时出现异常:CDI部署失败:WELD-001408类型为[Providers]的不满足依赖关系,注入点为[@Default] [[BackedAnnotatedParameter] [BackedAnnotatedConstructor]参数1 @Inject public org.glassfish.jersey. media.multipart.internal.MultiPartReaderServerSide(@Context Providers,Provider)] 我尝试在我的beans.xml文件中使用新的bean-discovery-mode属性设置为all或none,但它没有任何区别. 解决方法
事实证明,错误消息和beans.xml行为是红色的鲱鱼.为了帮助任何有同样问题的人,这就是你需要在glassfish上的一个restful接口中使用multipart mime.
确保仅在编译时添加库.如果你使用netbeans,这意味着从glassfish / modules目录中添加multipart-mime-xxx.jar作为库,但是不要点击’package’按钮,因此它不包含在war包中(因为它已经在glassfish里面了). 如果您使用的是maven,则可以通过在依赖项中使用提供的标记来获得相同的结果: <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-multipart</artifactId> <scope>provided</scope> </dependency> 如果您使用netbeans生成的restful模板作为起点,那么您将拥有一个名为application-config.java的文件,该文件已为您生成.添加行: resources.add(MultiPartFeature.class); 紧接在线之上 addRestResourceClasses(resources); 现在你应该发现你可以安全地在球衣中使用各种注释来进行多部分哑剧. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |