You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Yaytay (JIRA)" <ji...@apache.org> on 2010/12/19 20:57:03 UTC

[jira] Updated: (CXF-2770) There is no way to specify autoRewriteSoapAddress from a spring context file.

     [ https://issues.apache.org/jira/browse/CXF-2770?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Yaytay updated CXF-2770:
------------------------

    Attachment: SpringConfigureAutoRewriteSoapAddress.diff

Attaching a file that (at long last) the fix sent to the mailing list at the end of September with a couple of tests.
I'm not at all sure that the tests work the best way for a CXF test, but the do test the behaviour correctly.

> There is no way to specify autoRewriteSoapAddress from a spring context file.
> -----------------------------------------------------------------------------
>
>                 Key: CXF-2770
>                 URL: https://issues.apache.org/jira/browse/CXF-2770
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.2.7
>            Reporter: Yaytay
>            Priority: Minor
>         Attachments: SpringConfigureAutoRewriteSoapAddress.diff
>
>
> I need to be able to use the autoRewriteSoapAddress facility in conjunction with CXF.
> This: 
>     <jaxws:endpoint id="wsServer" implementor="#server" address="http://0.0.0.0:8080/Maths" depends-on="jetty-factory" >
>         <jaxws:properties> 
>             <entry key="autoRewriteSoapAddress" value="true"/> 
>         </jaxws:properties> 
>     </jaxws:endpoint>
> Queried as this: http://localhost:8080/Maths?wsdl 
> Produces this: <soap:address location="*http://0.0.0.0:8080/Maths*" /> 
> It seems that the properties are only set on the endpoint (AbstractWSDLBasedEndpointFactory:176), but autoRewriteSoapAddress is looked for on the EndpointInfo (WSDLQueryHandler:278).
> It's not at all clear to me what the correct fix is - somehow we need to be able to specify properties on the EndpointInfo.
> This is a relatively minor problem for code that makes use of just CXF (because one can write code to iterate the endpoints, get the infos and set the property), but for projects that use CXF within something else it's a bigger problem - for example I want to use CXF with Camel, configured entirely with a spring context file.
> The code I use to walk the endpoints and set the property is, roughly:
>             String[] serverRegistryNames = beanFactory.getBeanNamesForType( ServerRegistry.class );
>             for ( String serverRegistryName : serverRegistryNames )
>             {
>                 ServerRegistry serverRegistry = ( ServerRegistry ) beanFactory.getBean( serverRegistryName );
>                 List<Server> servers = serverRegistry.getServers();
>                 for ( Server server : servers )
>                 {
>                     server.getEndpoint().getEndpointInfo().setProperty( "autoRewriteSoapAddress", true );
>                 }
>             }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.