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

JAXB解组错误后文件被阻止

令狐钧
2023-03-14

我有一个工作正常的JAXB马歇尔/反马歇尔进程,除了这个:有时我必须反马歇尔的文件是空的或者格式化不好,所以反马歇尔抛出一个异常。这是可以的,但是在这个异常之后,我正在解组的文件(源xml文件java对象)被阻塞。我不能用它。

我注意到,在解组异常之后,试图删除或重命名文件时出现了这种情况。如果没有异常发生,文件可以毫无问题地使用,这是应该的。

有没有办法“解除屏蔽”这些文件?我认为必须有任何方法来释放、关闭或释放阻塞我的文件的JAXB上下文或解组器对象的资源。

提前感谢,,

丹尼

共有2个答案

唐珂
2023-03-14

我错过了最后一块中的资源释放(关闭流等)。许多年前的错误!谢谢

羊丰茂
2023-03-14

您可以从文件中创建一个FileInputStream,然后将其解组。这样,您就可以更好地控制错误发生时发生的情况。

FileInputStream inputStram = new FileInputStream(file);
Foo foo = (Foo) Unmarshaller unmarshal(inputStream);
 类似资料:
  • 我正在使用JAXB/MOXY解组包含约50个此类对象的XML文件: BR

  • 编辑:感谢Preetam Kumar,这个问题已经解决,但错误现在在其他地方。当我再次尝试解组我的xml文件时,我收到这个错误,告诉我找不到元素: 然而,我给了xml文件到模式的正确路径,但是它似乎没有使用它...我不明白。 注意:我知道模式和xml标记在下面的示例中不完全匹配,我已经在我的文件中纠正了它。 最近,我不得不使用JAXB java库将一些XML文件解析为java对象。 我制作了一个X

  • 问题内容: 错误 我在Java项目中使用wsimport来生成三个SOAP Web服务的源。前两个可以正常工作:我使用JAX-WS Maven插件来获取WSDL文件并生成相应的Java源文件。 对于一个Web服务,此操作失败。我收到以下错误: 罪犯 此WSDL文件与有效文件之间的区别在于错误消息中指出的行(第80、127和142行): 注意:wsdl文件的根元素定义“ s”名称空间,因此: 我尝试

  • 问题内容: 我正在尝试从以下站点显示游戏的标题和ID:http ://thegamesdb.net/api/GetGame.php?id =2 当我从以下URL解组时:http : //www.w3schools.com/xml/note.xml没关系,但这只是一个对象,而不是列表。所以我现在有问题。我正在阅读Google的一些教程和示例,并编写了以下代码: Data.java: Game.jav

  • 我在用带栏杆的大摇大摆的块。我其中一个enpoint我有一个图像上传。 在昂首阔步的网站上,它看起来还可以。如果我添加这个图像请求,它有一个标题,一切正常。当我使用其他params并将图像留空时,我得到了,标题是,根据这个答案https://stackoverflow.com/a/37932354我应该添加。然而,在文档中,这个选项只在一般的api设置中,它对我不起作用https://github

  • 在不使用getter和setter的情况下,JAXB可以正确地解组所提供的JSON。 null和“null”是完全不同的东西,但是我不想在POJO中包含这个字段,并且我必须忽略这些null值。 编辑