2016-10-12 1 views
0

私は自分のプロジェクトでSpring Integrationを使用しています。私はmultipart/formdata入力パラメータを取る休憩サービスを実行しようとしています。私はint-http:outbound-gatewayを使用して休憩サービスを実行しています。以下はコードですマルチパートパラメータを使用するrestサービスを実行中に、Beanプロパティ 'componentName'に書き込みができないか、無効なセッターメソッドエラーが発生しました

<int:channel id="PQcreateAttachment-Rest-Channel" /> 
    <int:chain input-channel="PQcreateAttachment-Rest-Channel" output-channel="PQcreateAttachment-StoredProcedure-Router" > 

     <int:header-filter header-names="accept-encoding"/>  

     <int:service-activator ref="httpOutboundGatewayHandler" method="buildMultipartHttpOutboundGatewayRequest" /> 

     <int-http:outbound-gateway url-expression="headers.restResourceUrl" 
            http-method-expression="headers.httpMethod" 
            extract-request-payload="true" 
            > 
     </int-http:outbound-gateway> 
     <bean id="headerMapper" class="org.springframework.integration.http.support.DefaultHttpHeaderMapper"> 
     <property name="outboundHeaderNames" value="Content-Type"/> 
    </bean> 

     <int:service-activator ref="msgHandler" method="buildMessageFromExtSysResponse" /> 

    </int:chain> 

上記のコードを実行すると、次のエラーが発生します。

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'headerMapper' defined in file [D:\SIGAWDCS-524\customer-service\csServer\target\test-classes\CustomerService\spring-integration\Jobs\PQCreateAttachment.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'componentName' of bean class [org.springframework.integration.http.support.DefaultHttpHeaderMapper]: Bean property 'componentName' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter? 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1429) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1134) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:626) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479) 
    at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:120) 
    at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60) 
    at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:100) 
    at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:248) 
    at org.springframework.test.context.CacheAwareContextLoaderDelegate.loadContextInternal(CacheAwareContextLoaderDelegate.java:64) 
    at org.springframework.test.context.CacheAwareContextLoaderDelegate.loadContext(CacheAwareContextLoaderDelegate.java:91) 
    ... 25 more 
Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'componentName' of bean class [org.springframework.integration.http.support.DefaultHttpHeaderMapper]: Bean property 'componentName' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter? 
    at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:1042) 
    at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:902) 
    at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:75) 
    at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:57) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1426) 
    ... 41 more 

ここで何が間違っているかに関するアイデアはありますか?追加情報が必要な場合はお知らせください。

答えて

0

あなたは<chain>定義の外で

<bean id="headerMapper" class="org.springframework.integration.http.support.DefaultHttpHeaderMapper"> 

を移動する必要があります。

<chain>anyをサポートしますが、MessageHandlerを生成するものだけです。

一方で私はあなたの応答のために何とかDefaultHttpHeaderMapper ...

+0

感謝することを使用していることがわかりません。それは 'DefaultHttpHeaderMapper'が全く必要でないことを意味しますか?私は コンテンツタイプ[application/x-java-serialized-object]のHttpMessageConverterが見つかりませんでした。理由は何でしょうか。どのような推測Artem? –

+1

これは全く別の話です。それを新しいSOの質問で見てみましょう!とにかく、現在の設定ではそのBeanの使用状況は表示されません。だから私はそれが必須ではないということです。 –

+0

私は別の質問を提起した。http://stackoverflow.com/questions/40011050/no-suitable-httpmessageconverter-found-error-while-executing-rest-service-that-t –

関連する問題