Pau*_*nis 12 java spring inversion-of-control
我试图找到将对象传递给Spring MethodInvokingFactoryBean参数列表的方法.这是我的Spring配置:
<bean id="qName" class="javax.xml.namespace.QName">
<constructor-arg index="0" value="${com.groupgti.esb.online.tests.talentq.tns}"/>
<constructor-arg index="1" value="${com.groupgti.esb.online.tests.talentq.serviceName}"/>
</bean>
<bean id="wsdlUrl" class="java.net.URL">
<constructor-arg index="0" value="${com.groupgti.esb.online.tests.talentq.url}"/>
</bean>
<bean id="service" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetObject">
<bean id="serviceObject" class="com.groupgti.onlinetest.talentq.jaxb.TQIntegrationV2"/>
</property>
<property name="targetMethod">
<value>create</value>
</property>
<property name="arguments">
<list>
<value type="java.net.URL">wsdlUrl</value>
<value type="javax.xml.namespace.QName">qName</value>
</list>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
这不起作用:
<value type="java.net.URL">wsdlUrl</value>
<value type="javax.xml.namespace.QName">qName</value>
Run Code Online (Sandbox Code Playgroud)
我得到了例外:
Caused by: org.springframework.beans.TypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'java.net.URL'; nested exception is java.lang.IllegalArgumentException: Could not retrieve URL for OSGi resource[wsdlUrl|bnd.id=573|bnd.sym=com.groupgti.esb.online.tests.talentq]: OSGi resource[wsdlUrl|bnd.id=573|bnd.sym=com.groupgti.esb.online.tests.talentq] cannot be resolved to URL because it does not exist
Run Code Online (Sandbox Code Playgroud)
这是因为参数作为对象传递String,wsdlUrl而不是作为java.net.URL对象传递.
我也试过这个:
<property name="arguments">
<ref bean="wsdlUrl"/>
<ref bean="qName"/>
</property>
Run Code Online (Sandbox Code Playgroud)
这给了我一个例外,ref属性不属于这里.那么我应该如何将一个对象传递给参数列表呢?
Pau*_*nis 17
找到了解决方案.我必须添加<list>然后声明<ref>:
<property name="arguments">
<list>
<ref bean="wsdlUrl"/>
<ref bean="qName"/>
</list>
</property>
Run Code Online (Sandbox Code Playgroud)
像这样,一切正常.
| 归档时间: |
|
| 查看次数: |
15911 次 |
| 最近记录: |