结合使用Jax-B和Jax-WS来返回复杂类型

|| 我敢肯定,您在此处遇到的这类问题有很多问题,但是我发现的所有答案似乎都无法解决我遇到的问题,因此我希望我能够得到一些具体答案。 我有一个由客户端和服务器组成的项目。服务器连接到数据库,客户端可以通过wsdl文件调用服务器中的方法。这可以正常工作,但是服务器只能返回简单的类型和列表。我查找了如何处理自定义类型,然后直接转到JaxB,这似乎正是我所要的。不幸的是,我对应该如何使用它感到有些困惑。我正在使用NetBeans IDE(6.9.1),它使处理wsdl文件更加容易,尽管我已经读到一旦获得wsdl结束,从命令行传递复杂的类就变得很简单了。工作正常吗? 我要做的是让服务器返回一个类,它只包含客户端可以读取和使用的数据。 我已完成以下操作,但显然我在某处出错了! 我在服务器端有一个称为Customer的类,该类在客户端调用特定方法时构造并返回。 客户显然无法正确解释此类。 我已经使用schemagen从Customer类创建XML模式。然后,我使用netbeans向导将架构绑定到客户端中的类。 我想这是我感到困惑的地方。我想从服务器中解组xml响应,并使用它在客户端上创建一个新对象。我正在使用“ jaxbu” netbeans快捷方式,该快捷方式扩展为一些代码,但是我不确定如何将返回的对象放入解组器中。如果那有意义的话? 在try块中,由“ jaxbu”生成的代码与下面类似:
javax.xml.bind.JAXBContext jaxbCtx = javax.xml.bind.JAXBContext.newInstance(c.getClass().getPackage().getName());
javax.xml.bind.Unmarshaller unmarshaller = jaxbCtx.createUnmarshaller();
c = (CustomerInfo) unmarshaller.unmarshal(new java.io.File(\"File path\"));
任何帮助将不胜感激,如果您需要更多信息。请不要犹豫。 谢谢, 马修     
已邀请:
对于最终答案,我不会提供最好的帮助,但不久前我问了类似的问题,并指出了该问题的有用方向。就像Blaise Doughan所说的那样,您需要使用一些东西来遍历xml文档并找到所需的片段,然后从那里将它们编组。 JAXB解封忽略SOAP Envelope / Header标签     
您不应该直接做jaxb的事情。相反,您将所有复杂类型放入与wsdl关联的模式中(假设您正在使用wsdl进行工作)。然后您使用各种jaxws工具(wsgen,wsimport)从wsdl生成存根和jaxb类(对于客户端和服务器)。 几乎所有这些都在jaxws教程中进行了描述(地铁是jaxws的参考实现)。     

要回复问题请先登录注册