glassfish 4和jersey media multipart 2 don';不能使用beans.xml

glassfish 4和jersey media multipart 2 don';不能使用beans.xml,jersey,java-ee-7,glassfish-4,Jersey,Java Ee 7,Glassfish 4,我正在使用GlassFish4使用最近发布的标准Java7EE堆栈构建一些restful应用程序 我的基本restful服务工作正常,但现在我想处理在同一服务中使用多部分mime类型的传入文件上传 我发现了在 这个部署和工作都很好。 但是,一旦我在这个框架上构建包含依赖项注入的内容,尤其是当我创建一个beans.xml文件(甚至是一个空文件)时,就会出现各种各样的错误,比如: 严重:加载应用程序时异常:CDI部署失败:WELD-001408在[BackedAnnotatedConstructor

我正在使用GlassFish4使用最近发布的标准Java7EE堆栈构建一些restful应用程序

我的基本restful服务工作正常,但现在我想处理在同一服务中使用多部分mime类型的传入文件上传

我发现了在 这个部署和工作都很好。 但是,一旦我在这个框架上构建包含依赖项注入的内容,尤其是当我创建一个beans.xml文件(甚至是一个空文件)时,就会出现各种各样的错误,比如:

严重:加载应用程序时异常:CDI部署失败:WELD-001408在[BackedAnnotatedConstructor]@InjectPublic org.glassfish.jersey.media.multipart.internal.MultiPartReaderServerSide的注入点[[BackedAnnotatedParameter]参数1处具有限定符[@Default]的类型[Provider]的未满足依赖项(@Context-Providers,Provider)]

我已经尝试在beans.xml文件中使用新的bean发现模式属性设置为all或none,但没有任何区别。
这是Glassfish或Jersey中的一个bug,还是尽管Glassfish包含了所有涉及的罐子,但它们目前仍不兼容,还是我做了一些非常愚蠢的事情?

事实证明,错误消息和beans.xml行为是令人费解的。为了帮助任何有同样问题的人,在re中使用多部分mime需要这样做glassfish上的stful接口

确保只在编译时添加库。如果使用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>
线的正上方

     addRestResourceClasses(resources);

现在,您应该会发现,您可以安全地在jersey中使用多部分mime的各种注释。

+1我今天遇到了这个问题,试图运行jersey mvc jsp依赖项上提供的
。很抱歉,我无法对这个答案给出更多+1。
     addRestResourceClasses(resources);