【问题标题】:Spring WS Configuration Wsdl11DestinationProvider ErrorSpring WS 配置 Wsdl11DestinationProvider 错误
【发布时间】:2012-04-06 21:29:07
【问题描述】:

尝试定义 wsdl 端点时发生错误。堆栈跟踪表明它不存在,但是,我可以导航到 url。它是 https,我将证书存储在我的 cacerts + root 密钥库中?帮助??

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<!--bean id="propertyConfigurer"
      class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
      p:location="/WEB-INF/jdbc.properties" />

<bean id="dataSource"
      class="org.springframework.jdbc.datasource.DriverManagerDataSource"
      p:driverClassName="${jdbc.driverClassName}"
      p:url="${jdbc.url}"
      p:username="${jdbc.username}"
      p:password="${jdbc.password}" /-->

<!-- ADD PERSISTENCE SUPPORT HERE (jpa, hibernate, etc) -->
<bean id="messageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory" />
<bean id="abstractClient" abstract="true">
    <constructor-arg ref="messageFactory" />
    <property name="destinationProvider">
        <bean class="org.springframework.ws.client.support.destination.Wsdl11DestinationProvider">
            <property name="wsdl" value="https://ws.firstdataglobalgateway.com:443/fdggwsapi/services/order.wsdl"/>
        </bean>
    </property>
</bean>
<bean id="contextApplicationContextProvider" class="com.intellavia.provider.ApplicationContextProvider"></bean>
<bean id="marshaller" class="org.springframework.oxm.xmlbeans.XmlBeansMarshaller" />
<bean id="httpClientParams" class="org.apache.commons.httpclient.params.HttpClientParams">
    <property name="authenticationPreemptive" value="true" />
    <property name="connectionManagerClass" value="org.apache.commons.httpclient.MultiThreadedHttpConnectionManager" />
</bean>
<bean id="httpClient" class="org.apache.commons.httpclient.HttpClient">
    <constructor-arg ref="httpClientParams" />
</bean>
<bean id="credentials" class="org.apache.commons.httpclient.UsernamePasswordCredentials">
    <constructor-arg value="*********" />
    <constructor-arg value="*********" />
</bean>
<bean id="messageSender" class="org.springframework.ws.transport.http.CommonsHttpMessageSender">
    <constructor-arg ref="httpClient"></constructor-arg>
    <property name="credentials" ref="credentials" />
</bean>
<bean id="fdggwsapiorder" parent="abstractClient" class="com.api.client.order">
    <property name="marshaller" ref="marshaller" />
    <property name="unmarshaller" ref="marshaller" />
    <property name="messageSender" ref="messageSender" />
</bean>

原因:org.springframework.beans.factory.BeanCreationException:在 ServletContext 资源 [/WEB-INF/applicationContext. xml]:设置属性值时出错;嵌套异常是 org.springframework.beans.PropertyBatchUpdateException;嵌套的 PropertyAccessExceptions (1) 是: PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'wsdl' 抛出异常;嵌套异常是 java.lang.IllegalArgumentException: URL [https://ws.firstdataglobalgateway.com:443/fdggwsapi/services/order.wsdl] 不存在 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1279) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) 在 java.security.AccessController.doPrivileged(本机方法) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) 在 org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:219) ... 26 更多

【问题讨论】:

  • 您是否在使用代理?尝试将 wsld 下载到本地并指向它。
  • @jddsantaella 感谢您的回复,是的,我已经尝试过了。我实际上有它在我的服务器上,然后我在运行时切换 WSDL url。问题是我需要发布到该网址。
  • 那么,如果您将它放在本地服务器上,它可以工作吗?你在代理后面吗?
  • @jddsantaella 没有代理,本地服务器可以工作。我有一个仅用于测试 wsdl 的测试应用程序,可以工作。将其实施到常规应用程序中不会。两者都在同一个服务器实例上运行。

标签: ssl wsdl spring-ws


【解决方案1】:

我试图从中检索 wsdl 的服务器需要一个密钥和密码组合。 JVM 还要求 SSL 证书作为可信实体存储在 cacerts 文件中。我正在以编程方式设置密钥库属性,但是在切换之前正在处理此请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-09
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多