发布application / xml时,泽西岛上的内部服务器错误

时间:2016-09-14 12:33:58

标签: java xml jersey postman

我几个小时一直在努力解决这个错误;我试图在其正文中创建一个带有xml的http发布请求;我设法做到这样:

@POST
@Path("/callback")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_XML)
public Response updateStatus(InputBean inputBean) {     
    //my code
}

我的xml注释是这样的:

@XmlRootElement(name = "project")
public class Project {

    @XmlElement(name ="result")
    private String result;    

    public Project() {
    }

    public String getResult() {
        return result;
    }

    public void setResult (String result) {
        this.result = result;
    }  
}

输入bean实际上比这更复杂;我已经在调试模式下运行我的代码,并在使用postman并发出请求后验证了inputbean是否得到了增强;但是有一个问题,我在我的bean中有一些字段有一个像这样的命名:project-name;与" - "字符所有这些字段在提出请求时没有得到增强,所以我想添加一个注释:

@XmlElement(name ="project-name")
    private String projectName;

当我添加该注释并运行代码时,我得到一个内部服务器错误500,并且无法调试那些值应该是"可读" ,我只需要增强这些领域,但我仍然不知道如何,所有其他领域没有" - " char在此过程中得到了增强。

身体要求上的xml:

 <bag>
<action>bag­execution­result</action>
    <detail>
        <project name="IBankerPorting">
            <component>ASA</component>
            <tag>trunk//264989</tag>
            <request-id>203782</request-id>
            <tag-id>254753</tag-id>
            <date>2010-02-03 12:16</date>
            <security-needed>no</security-needed>
            <type>MAINTENANCE</type>
            <result-ci>-0.000</result-ci>
            <result-pmd-highest>-1</result-pmd-highest>
            <result-pmd-high>-1</result-pmd-high>
            <result-pmd-medium>-1</result-pmd-medium>
            <result-cc-open-issue>0</result-cc-open-issue>
            <result>approved</result>
        </project>
    </detail>
</bag> 

离。每个不包含&#34; - &#34;的字段在我的bean中得到了增强(有一个值由xml采用,这要归功于泽西)除了那些带有&#34; - &#34;喜欢request-id

1 个答案:

答案 0 :(得分:0)

我最终找到了解决方案,我在包含xml字段的pojo类中添加了这个语句:@XmlAccessorType(XmlAccessType.FIELD)

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "project")
public class Project {

    @XmlElement(name ="result")
    private String result;    

    public Project() {
    }

    public String getResult() {
        return result;
    }

    public void setResult (String result) {
        this.result = result;
    }  
}