2012-03-23 47 views
0

嘗試定義wsdl端點時發生錯誤。 stacktrace指出它不存在,但是,我可以導航到該URL。它是https,我的證書存儲在我的cacerts + root密鑰庫中?幫幫我??Spring WS配置Wsdl11DestinationProvider錯誤

<?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:錯誤創建名稱爲豆 'org.springframework.ws.client.support.destination.Wsdl11DestinationProvider#7424ce' 在ServletContext的資源定義[/WEB-INF/applicationContext.xml]:設置屬性值時出錯;嵌套異常是org.springframework.beans.PropertyBatchUpdateException;嵌套PropertyAccessExceptions(1)是: PropertyAccessException 1:org.springframework.beans.MethodInvocationException:屬性'wsdl'引發異常;嵌套異常是java.lang.IllegalArgumentException:URL [https://ws.firstdataglobalgateway.com:443/fdggwsapi/services/order.wsdl]不存在 at 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) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory $ 1.run(AbstractAutowireCapableBeanFactory.java:409) at org.springframework.beans.factory java.security.AccessController.doPrivileged(Native Method) 。 support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) 在org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:219) ...... 26多個

+0

你是否支持代理?嘗試將wsld下載到本地並指向它。 – jddsantaella 2012-03-24 13:41:31

+0

@jddsantaella謝謝你的迴應,是的,我試過了。我實際上已經在我的服務器上,然後在運行時切換WSDL URL。問題是我需要發佈到該網址。 – 2012-03-26 12:57:05

+0

那麼,它是否可以在本地服務器上使用?你是否在代理之後? – jddsantaella 2012-03-26 14:02:08

回答

0

我嘗試將服務器從預期密鑰和密碼組合中檢索wsdl。 JVM還要求將SSL證書作爲可信實體存儲在cacerts文件中。我以編程方式設置密鑰庫屬性,但是此請求在切換之前正在處理。