java - CXF Webservice 客户端在提供 wsdl 时中断

标签 java web-services wsdl weblogic cxf

我使用 cxf-codegen maven 插件创建了一个 Web 服务客户端,然后实例化该服务,如下所示:

    JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
    factory.setEndpointName(SERVICE_NAME);
    factory.setAddress("some address");
    factory.setServiceClass(Service.class);
    this.port = (Service) factory.create();

一切正常,我可以调用网络服务。但我在 Weblogic( XmlSchemaException: Top-level attributes may not have a 'use' ) 上运行时遇到问题,作为一个可能的解决方案,我尝试提供 WSDL 文件,以便它不会重新生成。 但是当我添加 wsdl 时:

factory.setWsdlLocation("service.wsdl");

我得到这个异常:

org.apache.cxf.service.factory.ServiceConstructionException: Could not find definition for port {namespace}Service.
    at org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:179)
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:428)
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:548)
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:265)
    at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:214)
    at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:101)
    at org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:90)
    at org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:155)
    at org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:156)

我无法修改 wsdl,我想知道如果我提供生成服务的 wsdl,服务构建怎么可能会失败。

我使用CXF 2.6.11

最佳答案

您可能还需要一个factory.setServiceName(...) 调用来匹配WSDL。

关于java - CXF Webservice 客户端在提供 wsdl 时中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21167564/

相关文章:

java - 如何处理多个空值?

java - 使用 Powermock 时 Gradle Jacoco 不跟踪 Spock 测试的覆盖率

web-services - 大量持久连接

objective-c - restkit vs afnetworking vs mknetworkkit vs nsurlconnection 有什么区别

java - 从远程计算机使用 Web 服务

java - 无法从 WSDL 创建客户端

java - 在我的 Java 应用程序中发现 ClassCastException

java - ReplaceAll Java方法从字符串中删除 "\\n"

c++ - Onvif - 获取放大倍数

wcf - 动态读取 Web 服务方法