OSGi环境:MOXy作为JSON提供者提供MarshalException

时间:2015-10-21 06:31:02

标签: json osgi jax-rs eclipselink moxy

环境:OSGi通过Equinox与Jersey和MOXy

我有一个简单的类作为ReST组件:

package test.rest;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import test.domainobjects.TestDomainObject;

@Path( "/test" )
public class TestTheRest {

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    //@Produces(MediaType.APPLICATION_XML)
    public Object getTestEntity() {
        return new TestDomainObject();
    }
}

和一个简单的实体

package test.domainobjects;
public class TestDomainObject {    
    public int fieldA = 1;
    public String fieldB = "Some content";
}

当我开始启动配置并在<server>:<port>/services/test上运行GET时,出现500错误和异常,我只能在调试器中看到:

  

javax.xml.bind.MarshalException     - 链接异常:   [Exception [EclipseLink-25003](Eclipse Persistence Services - 2.5.0.v20130507-3faac2b):org.eclipse.persistence.exceptions.XMLMarshalException   异常说明:编组对象时发生错误   内部异常:异常[EclipseLink-25007](Eclipse Persistence Services - 2.5.0.v20130507-3faac2b):org.eclipse.persistence.exceptions.XMLMarshalException   异常描述:在项目中找不到类test.domainobjects.TestDomainObject的描述符。对于JAXB,如果使用TypeMappingInfo []引导JAXBContext,则必须调用接受TypeMappingInfo作为输入参数的marshal方法。]

问题在于我使用的是OSGi - JAX-RS ConnectorMOXy provider),因此所有接线都在引擎盖下进行。

我应该如何提供描述符?为什么?在没有其他细节的情况下,MOXy是否能够将POJO转换为JSON?

0 个答案:

没有答案