【发布时间】: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 的测试应用程序,可以工作。将其实施到常规应用程序中不会。两者都在同一个服务器实例上运行。