Just to let everyone know that the solution to this problem was that
the bean name was wrong due to the refactoring of Jetty out of the
http module. That bean name is;

org.apache.cxf.transports.http_jetty.JettyHTTPServerEngine.<port#>

Note difference of "http" and "http_jetty" in the package name.

However, I have a question about precedence on this method.
Will Spring Configuration wipe out your setting here, since the
super.configureBean() is after your programmatic call?
Is that your intent?

Cheers,
-Polar

Conrad O'Dea wrote:
H,

I'm in the process of updating a service implementation to an up-to-date snapshot of CXF. In previous versions we were able to programmatically configure an endpoint to be https enabled by registering a Configurer with the Bus and when called, the configurer did the following:

    public void configureBean(Object beanInstance) {

        String beanName = getBeanName(beanInstance);
        if (listenerBeanName.equals(beanName)
            && sslServerPolicy.getKeystore() != null) {
            HTTPListenerConfigBean bean =
                (HTTPListenerConfigBean)beanInstance;
            if (!bean.isSetSslServer()) {
                bean.setSslServer(sslServerPolicy);
            }
        }
        super.configureBean(beanInstance);
    }

However, with the latest update, this no longer works. Firstly, we never see a beanInstance with the right name (previously this was: org.apache.cxf.transport.http.JettyHTTPServerEngine.4968). Secondly, none of the beanInstances visited by the configurer are of type HTTPListenerConfigBean.

Is there some other way to set the SSL server policy for the endpoint?

BTW, the Configurer is registered like this:

        bus.setExtension(myConfigurer, Configurer.class);

and the endpoint itself is published using the JAX-WS APIs:

        Endpoint.publish(address, serviceImpl);

Has something changed recently to affect this?

thanks
Conrad



Reply via email to