我使用 CXF 2.7.5 来调用 Web 服务。我使用 wsdl2java 程序(在命令行 MSDOS 和 maven 中)生成了客户端类。我必须使用 xmlbeans 数据绑定,因为使用 jaxb(默认数据绑定)我有一些错误,并且我无法修改服务器端。所以使用 xmlbeans 数据绑定参数生成是可以的。
我使用以下方法调用 Web 方法:
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 不能处理接口) :
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 interfaces。此问题与以下位置有关:在公共摘要的 org.tempuri.CheckConsistencyDocument$CheckConsistency 处 org.tempuri.CheckConsistencyDocument$CheckConsistency org.tempuri.CheckConsistencyDocument.getCheckConsistency() 在 org.tempuri。.TODemand est une interface et JAXB ne peut pas gérer les 接口。此问题与以下位置有关:在 org.datacontract.schemas.x2004.x07。公共摘要 org.datacontract.schemas.x2004.x07 中的 .TODemand。* .TODemand org.tempuri.CheckConsistencyDocument$CheckConsistency.getEntity() 在 org.tempuri.CheckConsistencyDocument$CheckConsistency 在公共摘要 org.tempuri.CheckConsistencyDocument$CheckConsistency org.tempuri.CheckConsistencyDocument.getCheckConsistency() 在 org.tempuri.CheckConsistencyDocument
许多接口重复此错误。
你知道为什么这段代码在 liferay 上下文中不起作用吗?