[ 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.