当前位置: 首页 > 知识库问答 >
问题:

如何使用默认Jersey JAXB MessageBodyWriter for XML与自定义提供程序混合使用?

花品
2023-03-14

我似乎无法让基于Jersey/Jetty的服务器使用默认的JAXB MessageBodyWriter for XML。我得到了这个错误:

找不到媒体类型=Application/XML的MessageBodyWriter,类型=...

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

import cmb.agent.engine.resource.AgentCertificateResource;
import cmb.agent.engine.resource.ProfileResource;
import cmb.agent.engine.servlet.SessionRequestFilter;

@ApplicationPath("/")
public class AgentExample extends Application {
    private Set<Object>                         singletons = new HashSet<Object>();
    private Set<Class<?>>                       perRequestServices = new HashSet<>();

    public AgentExample() {
        perRequestServices.add(ProfileResource.class);
        perRequestServices.add(AgentCertificateResource.class);
        singletons.add(new NotificationXmlMarshaller());
        singletons.add(new SessionRequestFilter());
    }

    @Override
    public Set<Class<?>> getClasses() {
        return perRequestServices;
    }

    @Override
    public Set<Object> getSingletons() {
        return singletons;
    }
}
compile("org.glassfish.jersey.containers:jersey-container-servlet:$jerseyGlassfishVersion")
compile("org.glassfish.jersey.media:jersey-media-jaxb:$jerseyGlassfishVersion")
compile("org.glassfish.jersey.core:jersey-client:$jerseyGlassfishVersion")

泽西版本2.25。

共有1个答案

苍嘉澍
2023-03-14

我终于发现我的实体类中有一个重大错误。我忘记了@XmlRootElement注释。叹息。:(

 类似资料:
  • 如果我创建一个提供者并将其绑定到一个类,就像这样 然后

  • 我们正在使用PACT库进行合同测试。当前项目依赖于junit5集成。我必须扩展一个测试,使用2个提供者,而不是1: 当前版本: 我查看了发布说明,没有发现任何更新。是否有其他方法如何定义另一个提供程序?如: 或者在这种情况下junit5集成不是一个好的选择?

  • 问题内容: 我有一个复杂的对象图,正在使用Json.NET进行序列化/反序列化。有些对象是从抽象类派生的,因此为了使反序列化正常工作,我需要创建一个custom 。它的唯一作用是在反序列化时选择抽象类的适当具体实现,并允许Json.NET继续进行。 我要序列化时出现问题。我根本不需要做任何自定义。我希望获得与没有custom时将使用的行为完全相同的行为。 但是,由于我将自定义JsonConvert

  • 我使用的是Spring Boot 2.0(利用Spring Security 5.0)。我正在尝试向WebSecurityConfigureAdapter子类中的AuthenticationManager添加自定义AuthenticationProvider。如果我重写configure(AuthenticationManagerBuilder)方法来提供我的新提供者,那么我不知道如何将Authe

  • 我是EE的新手,我正在Weblogic 12c上开发一个应用程序。数据源在管理控制台中测试良好。当EJB试图访问它时,它会抛出这个ClassNotFoundException。我已经做了三个小时的研究,我知道问题是一些jar不在服务器的类路径中,但我不知道是哪一个!!!我正在使用默认的Eclipse Link持久性提供程序并使用MySQL驱动程序。这两个都是用Weblogic打包的(根据Oracl

  • 我正在将我们的Web应用程序从Glassfish 3迁移到Glassfish 5,在迁移过程中,我遇到了这个请求错误。 Glassfish 5似乎正在使用JSON-B序列化。Glassfish 5忽略JAXB@XmlJavaTypeAdapter注释? 在过去,我们使用moxy和jaxb进行json绑定,因此我一直在尝试将moxy注册为Glassfish 5中的默认提供程序。我按照这里的指示做了,