【发布时间】:2013-05-18 15:33:27
【问题描述】:
我使用 CXF 2.7.5 调用 Web 服务。我使用 wsdl2java 程序(在命令行 MSDOS 和 maven 中)生成了客户端类。我必须使用 xmlbeans 数据绑定,因为使用 jaxb(默认数据绑定)我有一些错误,并且我无法修改服务器端。所以使用 xmlbeans 数据绑定参数生成就可以了。
我使用以下方法调用网络方法:
WcfDemandService service = new WcfDemandService();
IWcfDemandService client = service.getBasicHttpBindingIWcfDemandService();
TODemand ticketToSubmit = TODemand.Factory.newInstance();
...
boolean ret = client.submit(ticketToSubmit);
当我调用 webmethods 时,它在简单的 java 程序上运行良好,但在 portlet liferay 上下文中不起作用:我有这个错误(英文,翻译是 org.tempuri.CheckConsistencyDocumen 是一个接口,而 jaxb 可以' t 处理接口):
09:48:33,899 错误 [http-bio-8080-exec-4][PortletServlet:115] javax.portlet.PortletException: com.sun.xml.ws.spi.db.DatabindingException: com.sun.xml .bind.v2.runtime.IllegalAnnotationsException:149 次 IllegalAnnotationExceptions org.tempuri.CheckConsistencyDocument est une interface et JAXB ne peut pas gérer les 接口。 此问题与以下位置有关: 在 org.tempuri.CheckConsistencyDocument org.tempuri.CheckConsistencyDocument$CheckConsistency est une interface et JAXB ne peut pas gérer les 接口。 此问题与以下位置有关: 在 org.tempuri.CheckConsistencyDocument$CheckConsistency 在公共抽象 org.tempuri.CheckConsistencyDocument$CheckConsistency org.tempuri.CheckConsistencyDocument.getCheckConsistency() 在 org.tempuri.CheckConsistencyDocument org.datacontract.schemas.x2004.x07..TODemand est une interface et JAXB ne peut pas gérer les 接口。 此问题与以下位置有关: 在 org.datacontract.schemas.x2004.x07..TODemand 在公共抽象 org.datacontract.schemas.x2004.x07.*.TODemand org.tempuri.CheckConsistencyDocument$CheckConsistency.getEntity() 在 org.tempuri.CheckConsistencyDocument$CheckConsistency 在公共抽象 org.tempuri.CheckConsistencyDocument$CheckConsistency org.tempuri.CheckConsistencyDocument.getCheckConsistency() 在 org.tempuri.CheckConsistencyDocument
很多接口都重复这个错误。
你知道为什么这段代码在 liferay 上下文中不起作用吗?
【问题讨论】:
-
您的模型是使用 XMLBeans 生成的,并且基于异常的模型正在由 JAXB 实现解释?您在使用 JAXB 时遇到的最初问题是什么?
-
是的,我使用 XML bean 生成,但出现 jaxb 错误(但在简单的 java 程序中,它可以工作)。
-
我使用 jaxb 生成 wsdl 时遇到的原始错误是: id 属性已定义。使用
来解决这个冲突。以下位置与上述错误匹配:http://*****/WcfDemandService.svc?xsd=xsd2 [0,0]: -
如果您有兴趣,我可以帮助您解决这个问题。
-
问题是由于一个包含大量库的认可目录;当我删除它时,错误被删除了