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

无法显示XML数据

陆俊捷
2023-03-14

嗨,我需要同时显示xml和json数据。我可以通过JaxB在本地看到这一点,但在服务器上看不到相同的代码。当我把它部署到服务器时,我得到了这个错误。我不知道如何解决这个错误。无法解决这一点,尝试了很多但没有发生,在本地一切都很好,但当涉及到服务器它显示不同的异常。

错误500:org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常为org.springframework.http.converter.httpmessageConversionException:无法实例化类[class com.rest.model.exerceiseInstructionsList]的JAXBContext:null;嵌套异常是javax.xml.bind.jaxbException-与链接异常:[com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationException:1 counts of IllegalAnnotationExceptions类有两个同名属性“ExpresseList”此问题与以下位置相关:at public java.util.list com.rest.model.ExpresseInstructionsList.getExpresseList()at com.rest.model.ExpresseInstructionsList此问题与以下位置相关:at public java.util.list com.rest.model.ExpresseInstructionsList com.rest.model.ExpresseInstructionsList

我的控制器是

@Controller
@RequestMapping("/")
public class ExerciseController {

    @Autowired
    private ExerciseService exerciseService;


    private static final Logger logger = LoggerFactory.getLogger(ExerciseController.class);

    @Consumes
    @Produces
    @RequestMapping(value=OaesRestURIConstants.GET_EXERCISE_ALL,method=RequestMethod.GET,produces={"application/json"})
    public @ResponseBody List<ExerciseInstructions> getAllExercise()throws Exception{


        logger.info("Start getAllExercises.");

        System.out.println("<<<<<<<<<<<<<<<<<--------------Coming Inside List Exercise Controller----------->>>>>>>>>>>");
        List<ExerciseInstructions> listExercise = new ArrayList<ExerciseInstructions>();
        //ExerciseInstructionsList exe = new ExerciseInstructionsList();


        /*This list contains Exercise Instructions Data*/
        listExercise = exerciseService.getAllExercise();

        /*here i kept the list in     ExerciseInstructionsList    list so that i can fetch xml data also and can show the list.*/
        //exe.setExerciseList(listExercise);

        return  listExercise;
    }



    @RequestMapping(value=OaesRestURIConstants.GET_EXERCISE_XML_ALL,method=RequestMethod.GET,produces={"application/xml"})
    public @ResponseBody ExerciseInstructionsList getAllXmlExercise()throws Exception{


        logger.info("Start getAllExercises.");

        System.out.println("<<<<<<<<<<<<<<<<<--------------Coming Inside List Exercise Controller----------->>>>>>>>>>>");
        List<ExerciseInstructions> listExercise = new ArrayList<ExerciseInstructions>();
        ExerciseInstructionsList exeList = new ExerciseInstructionsList();


        /*This list contains Exercise Instructions Data*/
        listExercise = exerciseService.getAllExercise();

        /*here i kept the list in     ExerciseInstructionsList    list so that i can fetch xml data also and can show the list.*/
        exeList.setExerciseList(listExercise);

        return  exeList;
    }

    @RequestMapping(value=OaesRestURIConstants.EXERCISE_SAVE,method=RequestMethod.POST)
    public @ResponseBody ExerciseInstructions saveExercise(@RequestBody ExerciseInstructions exerciseInstructions)throws Exception{

        logger.info("Start saveExercise.");
        exerciseService.saveExercise(exerciseInstructions);


        return exerciseInstructions;
    }



//@Consumes({"application/xml","application/json"})
   // @Produces({"application/xml","application/json"})
    @RequestMapping(value=OaesRestURIConstants.GET_EXERCISE_ID,method=RequestMethod.GET,produces={"application/xml","application/json"})
    public @ResponseBody ExerciseInstructions getExerciseById(@PathVariable("id") String exerciseId ) throws Exception{

        logger.info("Start getExerciseById. ID="+exerciseId);

        ExerciseInstructions exercise = null;



         try {
             exercise = exerciseService.getExerciseById(exerciseId);

              } catch (Exception e) {
               e.printStackTrace();
              }
        System.out.println("Coming Here>>>>>>>>>>>"+exercise);
        return exercise;
    //return exerciseService.getExerciseById(exerciseId);

    }


    @RequestMapping(value=OaesRestURIConstants.EXERCISE_DELETE,method=RequestMethod.PUT)
    public @ResponseBody ExerciseInstructions deleteById(@PathVariable("id") String exerciseId) throws Exception{

        logger.info("Start deleteExercise.");
        exerciseService.deleteExercise(exerciseId);

        return null;
    }

}

我的模型类是:

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class ExerciseInstructions {}

我的模型列表类是:

@XmlRootElement(name="exerciseInstructions")
//@XmlSeeAlso({ExerciseInstructions.class})
@XmlAccessorType(XmlAccessType.FIELD)
public class ExerciseInstructionsList {

    public List<ExerciseInstructions> exerciseList;

    public List<ExerciseInstructions> getExerciseList() {
        return exerciseList;
    }

    public void setExerciseList(List<ExerciseInstructions> exerciseList) {
        this.exerciseList = exerciseList;
    }


}

所以,有谁能在这方面帮助我。
我想获取并查看xml和JSON。

共有1个答案

宋岳
2023-03-14

当您仔细阅读错误消息时,您会看到原因:(为了更好的可读性,我对消息进行了格式化和高亮显示)

IllegalAnnotationExceptions类有两个同名属性“ExpresseList”
此问题与以下位置相关:在public java.util.list com.rest.model.ExpresseInstructionsList.getExpresseList()com.rest.model.ExpresseInstructionsList
此问题与以下位置相关:在public java.util.list com.rest.model.ExpresseInstructionsList com.rest.model.ExpresseInstructionsList com.rest.model.ExpresseInstructionsList com.rest.model.ExpresseInstructionsList com.rest.model.ExpresseInstructionsList

因此,程序抱怨您的类exerceiseInstructionsList有两个属性可以映射到exerceiselist,这两个属性是getexerceiselist()exerceiselist

要解决此问题,可以将expresseList声明为private

@XmlRootElement(name="exerciseInstructions")
@XmlAccessorType(XmlAccessType.FIELD)
public class ExerciseInstructionsList {
    private List<ExerciseInstructions> exerciseList;

    public List<ExerciseInstructions> getExerciseList() {
        return exerciseList;
    }

    public void setExerciseList(List<ExerciseInstructions> exerciseList) {
        this.exerciseList = exerciseList;
    }
}
 类似资料:
  • 当我试图打印我的数据集的单个列时,它显示错误 KeyError回溯(最近一次调用上次)~\anaconda3\lib\site packages\pandas\core\index\base。py in get_loc(自身、键、方法、公差)2645 try:- 熊猫库\索引。大熊猫中的pyx_图书馆。指数IndexEngine。获取_loc() 熊猫库\索引。大熊猫中的pyx_图书馆。指数Ind

  • 我复活了一个CN1项目(已经发布),并尝试让它在Netbeans 11下的模拟器中运行(运行在OpenJdK 11上)。然而,该项目不断失败。 我更新了CN1谷歌地图扩展,刷新了libs,但问题仍然存在。 谷歌地图扩展版本是42。我该怎么做才能让一切都像以前一样运转? 任何帮助都很感激,

  • 问题内容: 我曾经使用过,但是它只能显示HTML,不能显示SVG,并且嵌套的SVG HTML无法完成显示。 然后,我使用,但是它只能显示SVG,不能显示HTML。 有什么办法解决这个问题? 问题答案: 配置为将画布用于SVG。为此,您需要一个专家。这里是的Appleteer。

  • 问题内容: 我正在尝试使用json在extjs中创建一个gridview。由于某种原因,我的gridview不显示任何数据。我试图用Firebug调试它。我可以在“响应”部分中看到结果。这就是我在“响应”中的内容。 {“ ContentEncoding”:null,“ ContentType”:null,“ Data”:“ {\ r \ n \” myTable \“:[\ r \ n {\ r

  • 问题内容: 我想要一个JFrame,在左右两侧有一个边框,边框为黑色,宽度为withfOfJFrame / 10。 现在,我的尝试如下所示: 这会在左右两侧添加一个黑色边框,但是该边框具有固定的大小,并且在调整窗口大小时不会重新计算。大小甚至不是800(JFrame的开始宽度)的1/10。 我究竟做错了什么?还是有更好的方法来做到这一点? 问题答案: 您可以使用和适当的权重来获得所需的结果:

  • 第一次在JAVA项目上使用FreeMarker,在配置汉字时使用堆栈。 看到了一些对FreeMarker.Properties进行更改的示例请求,但我没有这个文件。我只是导入。jar文件并使用它。 请告诉我该怎么做才能让它显示汉字。