将SOAP消息转换为Java对象

将SOAP消息转换为Java对象,java,xml,soap,jaxb,xstream,Java,Xml,Soap,Jaxb,Xstream,我试图找到一个合适的库,它将SOAP消息转换为Java对象 我遇到过XStream和JaxB。这些库在将xml转换为对象时需要类表示 我们收到的SOAP消息是动态的,这意味着它们将根据调用的SOAP方法而变化。因此,不可能为SOAP消息创建类结构。对于每个迭代,我们都会得到不同的SOAP响应 是否有java api可用于将传入的SOAP xml转换为java类,然后使用JaxB或XStream中的类将xml转换为java对象 是否可以使用JaxB或XStream将xml转换为Java集合,如Ma

我试图找到一个合适的库,它将SOAP消息转换为Java对象

我遇到过XStream和JaxB。这些库在将xml转换为对象时需要类表示

我们收到的SOAP消息是动态的,这意味着它们将根据调用的SOAP方法而变化。因此,不可能为SOAP消息创建类结构。对于每个迭代,我们都会得到不同的SOAP响应

是否有java api可用于将传入的SOAP xml转换为java类,然后使用JaxB或XStream中的类将xml转换为java对象

是否可以使用JaxB或XStream将xml转换为Java集合,如Map或Map of Map,而不使用它的类表示?

提供了动态JaxB OXM功能

使用EclipseLink Dynamic MOXy,您可以从各种元数据源引导JAXBContext,并使用现有JAXB API封送和解封送数据……而无需在类路径上编译Java类文件。这允许您根据需要修改元数据,而无需更新和重新编译先前生成的Java源代码

FileInputStream xmlInputStream = new FileInputStream("src/example/dynamic/customer.xml");
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
DynamicEntity customer = (DynamicEntity) unmarshaller.unmarshal(xmlInputStream);
Dynamic MOXy不使用实际的Java类(如Customer.class或Address.class),而是使用简单的get(propertyName)/set(propertyName,propertyValue)API来操作数据。EclipseLink(在内存中)生成与每个DynamicEntity关联的DynamicType

System.out.println(customer.<String>get("name"));
System.out.println(customer.get(“name”);
建议如下:


尝试xerces.jar将xml转换为java对象这有点像我10多年前使用的XmlBeans