XFire

Use of Spring ServiceBean to configure custom end point

Details

  • Type: Bug Bug
  • Status: Open Open
  • Priority: Major Major
  • Resolution: Unresolved
  • Affects Version/s: 1.2.5, 1.2.6
  • Fix Version/s: 1.2.5, 1.2.6, 1.2.7
  • Component/s: Spring
  • Labels:
    None
  • Environment:
    Tried on Windows XP Pro SP2 and Linux Ubuntu distribution. Intel Core Duo
  • Number of attachments :
    0

Description

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.

Activity

There are no comments yet on this issue.

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated: