0

我的出站jaxws-client邮件没有设置内容处置。

如果我尝试在出站端点之前添加:

<message-properties-transformer doc:name="Message Properties">
    <add-message-property key="Content-Disposition" value="somevalue"/>
</message-properties-transformer>

<https:outbound-endpoint exchange-pattern="request-response" host="12.34.56.78" port="1234" path="services/SOAP/Tests" doc:name="HTTP" connector-ref="testConnector" responseTimeout="50000" >
    <cxf:jaxws-client 
        clientClass="com.test.Service"
        enableMuleSoapHeaders="true"
        operation="getTest"
        port="Test"
        wsdlLocation="wsdl/test.wsdl">

        <cxf:inInterceptors>
            <spring:bean id="cxfIn" class="org.apache.cxf.interceptor.LoggingInInterceptor" />
        </cxf:inInterceptors> 
        <cxf:outInterceptors>
            <spring:bean id="cxfOut" class="org.apache.cxf.interceptor.LoggingOutInterceptor" />
        </cxf:outInterceptors>
    </cxf:jaxws-client>
</https:outbound-endpoint>

Content-Disposition 未添加到消息中。但是,当我在名称中添加一个字符时,例如,-Content-Disposition而不是Content-Disposition,会添加该值:

DEBUG 2013-11-06 12:54:53,286 [[muletest].header.stage1.02] httpclient.wire.header: >> "-Content-Disposition: somevalue[\r][\n]"

Content-Type原始消息中已经存在的标头也会发生同样的情况。我也不能用<delete-message-property>. 它们是否以某种方式保护免受修改?

如何添加或修改这些标题?

4

2 回答 2

0

试试这个。

删除消息属性转换器。

       <set-property propertyName="Content-Type" value="text/xml" />

<https:outbound-endpoint exchange-pattern="request-response" host="12.34.56.78" port="1234" path="services/SOAP/Tests" doc:name="HTTP" connector-ref="testConnector" responseTimeout="50000" >
    <set-property propertyName="Content-Disposition" value="somevalue"></set-property>
    <cxf:jaxws-client 
        clientClass="com.test.Service"
        enableMuleSoapHeaders="true"
        operation="getTest"
        port="Test"
        wsdlLocation="wsdl/test.wsdl">
                    <cxf:inInterceptors>
            <spring:bean id="cxfIn" class="org.apache.cxf.interceptor.LoggingInInterceptor" />
        </cxf:inInterceptors> 
        <cxf:outInterceptors>
            <spring:bean id="cxfOut" class="org.apache.cxf.interceptor.LoggingOutInterceptor" />
        </cxf:outInterceptors>
    </cxf:jaxws-client>
</https:outbound-endpoint>

希望这可以帮助。

于 2013-11-06T14:44:49.130 回答
0

在你之前使用这个https:outbound-endpoint

   <set-property propertyName="contentType" value="text/html" /> <!-- Set it to whatever you'd want -->

编辑:

尝试这个:

 <http:outbound-endpoint ref="serverEndpoint" contentType="application/x-download">
            <properties>
                <spring:entry key="Content-Disposition" value="attachment; filename=foo.zip"/>
                <spring:entry key="Content-Type" value="application/x-download"/>
            </properties>
        </http:outbound-endpoint>

参考

于 2013-11-06T15:01:37.133 回答