I want to configure the xfire generated wsdl to have custom end points instead of the default end point which it configures from the request URI.
I was able to remove the default by doing the following in the appCtx:
<bean name="myService" class="org.codehaus.xfire.spring.ServiceBean">
<property name="createDefaultBindings" value="false" />
<property name="serviceBean" ref="myServiceFacade"/>
<property name="serviceClass" value="com.cj.service.link.MyServiceClass"/>
<property name="name" value="myServiceName"/>
<property name="inHandlers">
<list>
<ref bean="addressingHandler"/>
</list>
</property>
<property name="serviceFactory" ref="xfire.annotationServiceFactory"/>
</bean>
The above configuration removed the default port binding. Then i tried to add a custom binding by the following method:
========================================================================================================================
<bean name="myService" class="org.codehaus.xfire.spring.ServiceBean">
<property name="bindings" ref="soap11BindingBean" />
<property name="createDefaultBindings" value="false" />
<property name="serviceBean" ref="myServiceFacade"/>
<property name="serviceClass" value="com.cj.service.link.MyServiceClass"/>
<property name="name" value="myServiceName"/>
<property name="inHandlers">
<list>
<ref bean="addressingHandler"/>
</list>
</property>
<property name="serviceFactory" ref="xfire.annotationServiceFactory"/>
</bean>
<bean name="soap11BindingBean" class="org.codehaus.xfire.spring.config.Soap11BindingBean" >
<property name="endpoints">
<list>
<ref bean="endPoint" />
</list>
</property>
<property name="allowUndefinedEndpoints" value="false" /> <!-- i tried true also but no effect -->
<property name="transport" value="http://schemas.xmlsoap.org/soap/http" />
</bean>
<bean name="endPoint" class="org.codehaus.xfire.spring.config.EndpointBean">
<property name="name" ref="qName" />
<property name="url" value="https://abc.google.com" />
</bean>
<bean name="qName" class="javax.xml.namespace.QName">
<constructor-arg>
<value> cj.com</value>
</constructor-arg>
</bean>
==========================================================================================================================
The following are the issues:
1) With the above configuration, i was able to add my new custom end point "https://abc.google.com" but the default binding also shows up. The default binding shouold not show up since "createDefaultBindings" is set to "false"
2) If i configure multiple custom end points, only the last one shows up along with the default binding.