Jin*_*won 5 multipartform-data jax-rs multipart jersey jersey-2.0
我的JAX-RS应用程序有一个扩展的Application类.
@ApplicationPath("/")
public class MyApplication extends Application {
// empty; really empty
}
Run Code Online (Sandbox Code Playgroud)
如何在org.glassfish.jersey.media.multipart.MultiPartFeature不修改课程的情况下启用?或者没有必要注册所有资源类/包?
Pau*_*tha 12
不知道为什么你不只是使用一个ResourceConfig而不是一个Application类.我能想到的唯一原因是可移植性,但使用Jersey特定的多部分功能已经打破了这种可移植性.
但无论如何,我会尝试以"最便携"的方式回答这个问题.您可以做的是设置属性,就像在web.xml中一样.要设置任意属性,您可以覆盖
@Override
public Map<String, Object> getProperties() {}
Run Code Online (Sandbox Code Playgroud)
在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;
}
Run Code Online (Sandbox Code Playgroud)
这将维护您的资源和提供程序的类路径扫描.如果您覆盖getClasses()或getSingletons()(并返回非空集),则仅禁用扫描,但是没问题getProperties().
另外一个选项:
创建一个Feature包装该功能,然后发现该功能,如此处所示
就我个人而言......
只是使用一个ResourceConfig,因为你已经打破了可移植性(什么是更多的破损:-)
@ApplicationPath("/")
public class AppConfig extends ResourceConfig {
public AppConfig() {
packages("packages.to.scan");
register(MultiPartFeature.class);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11389 次 |
| 最近记录: |