You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by William Tam <em...@gmail.com> on 2008/10/15 20:02:08 UTC

configure endpoint created by JaxWsServerFactoryBean

Hi,

If I create a server with JaxWsServerFactoryBean, is it possible to
configure my endpoint using Spring?   It does not work when I am doing
the following.

JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
 // populate my factory with setXXX() methods.
...
factory.setStart(false);
Server server = factory.create();
configurer.configureBean(server.getEndpoint());
server.start();

I notice that the object returned by server.getEndpoint() is of type
org.apache.cxf.jaxws.support.JaxWsEndpointImpl and bean name is
<PORT_NAME>.endpoint.   In a "working case" in EndpointImpl.java, the
bean instance that gets passed to configureBean is a EndpointImpl and
the bean name is <PORT_NAME>.jaxws-endpoint.

My jaxws endpoint config looks something like this:

    <jaxws:endpoint name="{http://apache.org/hello_world_soap_http}SoapPort"
        wsdlLocation="wsdl/hello_world.wsdl" createdFromAPI="true">
        <jaxws:properties>
            <entry key="schema-validation-enabled" value="true" />
        </jaxws:properties>

        <!-- Endorser is needed in order to allow WS-Security
Credentials sent over unsecure HTTP -->
        <jaxws:features>
            <security:WSSUsernameTokenAuthServerConfig
               enableAuthorization="false" acquireISFToken="false"
               credentialEndorser="com.iona.cxf.security.rt.NoOpCredentialEndorser"
/>
        </jaxws:features>

        <jaxws:inInterceptors>
           <ref bean="WSS4JInInterceptor"/>
           <bean class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor"/>
        </jaxws:inInterceptors>
    </jaxws:endpoint>


Thanks,
William

Re: configure endpoint created by JaxWsServerFactoryBean

Posted by William Tam <em...@gmail.com>.
I guess my answer is likely to be "no".
org.apache.cxf.jaxws.spring.EndpointDefinitionParser calls
setBeanClass to org.apache.cxf.jaxws.EndpointImpl.class.  That class
is not inherited by org.apache.cxf.jaxws.support.JaxWsEndpointImpl.

    public EndpointDefinitionParser() {
        super();
        setBeanClass(org.apache.cxf.jaxws.EndpointImpl.class);
    }

On Wed, Oct 15, 2008 at 2:02 PM, William Tam <em...@gmail.com> wrote:
> Hi,
>
> If I create a server with JaxWsServerFactoryBean, is it possible to
> configure my endpoint using Spring?   It does not work when I am doing
> the following.
>
> JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
>  // populate my factory with setXXX() methods.
> ...
> factory.setStart(false);
> Server server = factory.create();
> configurer.configureBean(server.getEndpoint());
> server.start();
>
> I notice that the object returned by server.getEndpoint() is of type
> org.apache.cxf.jaxws.support.JaxWsEndpointImpl and bean name is
> <PORT_NAME>.endpoint.   In a "working case" in EndpointImpl.java, the
> bean instance that gets passed to configureBean is a EndpointImpl and
> the bean name is <PORT_NAME>.jaxws-endpoint.
>
> My jaxws endpoint config looks something like this:
>
>    <jaxws:endpoint name="{http://apache.org/hello_world_soap_http}SoapPort"
>        wsdlLocation="wsdl/hello_world.wsdl" createdFromAPI="true">
>        <jaxws:properties>
>            <entry key="schema-validation-enabled" value="true" />
>        </jaxws:properties>
>
>        <!-- Endorser is needed in order to allow WS-Security
> Credentials sent over unsecure HTTP -->
>        <jaxws:features>
>            <security:WSSUsernameTokenAuthServerConfig
>               enableAuthorization="false" acquireISFToken="false"
>               credentialEndorser="com.iona.cxf.security.rt.NoOpCredentialEndorser"
> />
>        </jaxws:features>
>
>        <jaxws:inInterceptors>
>           <ref bean="WSS4JInInterceptor"/>
>           <bean class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor"/>
>        </jaxws:inInterceptors>
>    </jaxws:endpoint>
>
>
> Thanks,
> William
>