gpt4 book ai didi

jersey - 如何启用 MultiPartFeature?

转载 作者:行者123 更新时间:2023-12-04 16:59:48 24 4
gpt4 key购买 nike

我的 JAX-RS 应用程序有一个扩展的 Application 类。

@ApplicationPath("/")
public class MyApplication extends Application {
// empty; really empty
}

如何启用 org.glassfish.jersey.media.multipart.MultiPartFeature不修改类?或者不需要注册所有资源类/包?

最佳答案

不知道你为什么不直接使用 ResourceConfig而不是 Application类(class)。我能想到的唯一原因是可移植性,但使用 Jersey 特定的多部分功能已经破坏了这种可移植性。

但无论如何,我会尝试以“最便携”的方式来回答这个问题。您可以做的是设置一个属性,就像在 web.xml 中一样。要设置任意属性,您可以覆盖

@Override
public Map<String, Object> getProperties() {}

Application子类,并在那里设置属性。
@Override
public Map<String, Object> getProperties() {
Map<String, Object> props = new HashMap<>();
props.put("jersey.config.server.provider.classnames",
"org.glassfish.jersey.media.multipart.MultiPartFeature");
return props;
}

这将维护对您的资源和提供程序的类路径扫描。仅当您覆盖 getClasses() 时才会禁用扫描或 getSingletons() (并返回非空集),但是 getProperties()很好。

另一种选择:

创建一个 Feature包装该功能,并让该功能被发现,如 seen here

就个人而言,我会...

只需使用 ResourceConfig ,因为您已经破坏了便携性(还有一点破损:-)
@ApplicationPath("/")
public class AppConfig extends ResourceConfig {
public AppConfig() {
packages("packages.to.scan");
register(MultiPartFeature.class);
}
}

关于jersey - 如何启用 MultiPartFeature?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29534289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com