3

現在最も奇妙な問題があります - jaxws:client のアドレス プロパティがアドレス属性のプロパティ プレースホルダーを使用しているが、アドレス属性の解決を拒否している Spring XML ファイルがあります。

これはログ ファイル エラーです。

    原因: java.net.MalformedURLException: プロトコルがありません: ${member.service.uri}
    at java.net.URL.(URL.java:567) ~[na:1.6.0_33]
    at java.net.URL.(URL.java:464) ~[na:1.6.0_33]
    at java.net.URL.(URL.java:413) ~[na:1.6.0_33]
    org.apache.cxf.transport.http.HTTPConduit.setupURL(HTTPConduit.java:700) で ~[cxf-   
    バンドル-2.6.0.jar:2.6.0]
    org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:474) で ~[cxf-  
    バンドル-2.6.0.jar:2.6.0]
    org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:46) で ~[cxf-api-2.6.0.jar:2.6.0]
    ... 43 個の共通フレームを省略

以下は、Spring XML ファイルからの抜粋です。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:http="http://cxf.apache.org/transports/http/configuration"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jaxws="http://cxf.apache.org/jaxws"   \
xmlns:sec="http://cxf.apache.org/configuration/security"
xmlns:cxf="http://cxf.apache.org/core"
xsi:schemaLocation="
http://www.springframework.org/schema/context  
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/beans    
http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
http://cxf.apache.org/transports/http/configuration   
http://cxf.apache.org/schemas/configuration/http-conf.xsd
http://www.springframework.org/schema/context  
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://cxf.apache.org/configuration/security  
http://cxf.apache.org/schemas/configuration/security.xsd
http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd">    
<http:conduit name="https://.*">
<http:tlsClientParameters>
<sec:trustManagers>
<sec:keyStore type="JKS" password="${jkspass}" file="${jkslocation}" />
</sec:trustManagers>
</http:tlsClientParameters>
<http:client AutoRedirect="true" Connection="Keep-Alive" />
</http:conduit> 
<!-- Member Service -->
<!--<bean id="memberServiceProxy" class="com.loyalty.tp.ets.common.member.ws.Member" 
factory-bean="memberServiceProxyFactory" factory-method="create"/>  --> 
<jaxws:client id="memberServiceProxy"
serviceClass="com.loyalty.tp.ets.common.member.ws.Member"   
address="${member.service.uri}">
<jaxws:features>
<bean class="org.apache.cxf.feature.LoggingFeature" />
</jaxws:features>
</jaxws:client> 
<bean id="memberServiceProxyFactory" 
 class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
<property name="serviceClass" value="com.loyalty.tp.ets.common.member.ws.Member"/>
<property name="address" value="${member.service.uri}"/>
</bean> 
<!-- ETS Collector Service -->
<bean id="collectorServiceProxy" class="com.loyalty.tp.ets.collectorservice.Collector" 
factory-bean="collectorServiceProxyFactory" factory-method="create"/>

<bean id="collectorServiceProxyFactory" 
class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
<property name="serviceClass" value="com.loyalty.tp.ets.collectorservice.Collector"/>
<property name="address" value="${ets.collector.service.uri}"/>
</bean> 
</beans>

それは問題なく解決し${jksLocation}ます${jkspassword}。ここで何が起こっているのですか?

4

1 に答える 1

0

特定のバージョンの cxf と spring の間に非互換性があるようです。一緒に動作するカップルを見つけてください。

私は camel-cxf:2.12.0.redhat-610379 を持っています。これは cxf 2.7.0 と spring 3.2.8.RELEASE をもたらし、すべてが問題ありません

于 2015-11-18T13:45:02.420 に答える