1

我正在将我的项目代码移动到 JavaONE 后的 Glassfish 4.0,并意识到我对 ecipelink 和 moxy 有一个 maven 编译和捆绑依赖。(这两者现在都应该在 GS4 中提供)。同样,由于 Moxy 现在是 JSON 序列化的默认 JAXB 提供程序,我想删除这个 compile/provided 依赖项。但是,我需要将提供程序配置为不为属性前缀输出“@”。

除了对提供者进行反射性查找之外,除了编译时依赖之外,还有其他方法可以做到这一点吗?

在我执行以下操作之前...

MOXyJsonProvider moxyJsonProvider = new MOXyJsonProvider();
moxyJsonProvider.setAttributePrefix("");

在我的应用程序中。

4

1 回答 1

0

您可以使用 Jersey 依赖项而不是 MOXy 依赖项来执行以下操作。

import javax.ws.rs.ext.*;
import org.glassfish.jersey.moxy.json.MoxyJsonConfig;

@Provider
public class MOXyJsonContextResolver implements ContextResolver<MoxyJsonConfig> {

    private final MoxyJsonConfig config;

    public MOXyJsonContextResolver() {
        config = new MoxyJsonConfig()
            .setAttributePrefix("");
    }

    @Override
    public MoxyJsonConfig getContext(Class<?> objectType) {
        return config;
    }

}

了解更多信息


更新

我在您提到的问题的评论部分注意到您尝试了这种方法但没有成功。您可以发布您尝试过的内容吗?

于 2013-10-01T10:23:39.417 回答