Java 当类处于依赖项中时,JAXBContext.newInstance不工作
因此,正如标题所暗示的,我在一个项目中工作,在我调用一个API之后,这个API将设置一个Web服务调用,在API调用WS之后,它将发送回(我自己的应用程序)响应。 我需要将响应记录为XML。因此,经过一些搜索,我最终得到了代码:Java 当类处于依赖项中时,JAXBContext.newInstance不工作,java,jaxb,Java,Jaxb,因此,正如标题所暗示的,我在一个项目中工作,在我调用一个API之后,这个API将设置一个Web服务调用,在API调用WS之后,它将发送回(我自己的应用程序)响应。 我需要将响应记录为XML。因此,经过一些搜索,我最终得到了代码: Marshaller marshaller = JAXBContext.newInstance( vhu.ReqDeclareObject.class ).createMarshaller(); 我的应用程序API WS POM(包含
Marshaller marshaller = JAXBContext.newInstance(
vhu.ReqDeclareObject.class
).createMarshaller();
我的应用程序API WS
POM(包含VHU包的依赖项):
我做了一个简单的测试,试图理解错误。我将所有JAXB生成的类复制到我的项目中,并运行与上面相同的代码,但这次打包的类在我自己的项目中
Marshaller marshaller = JAXBContext.newInstance(
ReqDeclareObject.class
).createMarshaller();
在这里,应用程序运行良好
将所有JAXB生成的类处理到项目中并不是可行的长期解决方案。我需要能够创建一个封送拆收器,而无需将所有类都引入到项目中
谢谢你的帮助。(因为我没有太多的观点,所以我无法发表评论,因此,如果没有帮助,请发帖子作为回答,很抱歉)
我没有在JAXB
方面做过很多工作,但对MOXY
有相当的了解,它是建立在JAXB
实现之上的
类A扩展类B
,并且您正在尝试使用JAXB
封送类A
包
本身传递给封送拆收器
实例?像这样的
Marshaller-Marshaller=JAXBContext.newInstance(“io.model.jaxb”).createMarshaller()代码>
这样,您就需要ObjectFactory
。如有兴趣,请参阅:
如前所述,我只是想谈谈我对这个问题的看法,不确定这是否有帮助。最后我找到了一个解决方案,它不是我的,但我在这里为其他有同样问题的人分享
这个线程似乎与问题没有多大关系,但有一个答案解决了我的问题
在我的例子中,我刚刚在VM环境选项中添加了链接中所述的属性。1-我改进了这个问题,以便您和其他人能够更好地理解这个问题,2-这就是我在示例中试图做的
vhu.ReqDeclaredObject$JaxbAccessorF_control cannot be cast to com.sun.xml.bind.v2.runtime.reflect.Accessor
Marshaller marshaller = JAXBContext.newInstance(
ReqDeclareObject.class
).createMarshaller();