OSGi: Instance unnamed of type X is not bound

111 Views Asked by At

I'm currently facing a problem I'm just not able to solve. Hopefully you can help me.

I'm creating a modular Vaadin application with Apache Felix and iPojo. The dependencies are resolved but when starting the application, Felix tells me the following:

Instance unnamed of type df.ui.core.impl.BaseVaadinServlet is not bound.
  Reason: null

I just can't figure out what Felix tries to tell me. Searching the internet was no help and all other instances are valid. In which cases may such errors occur and how to fix this?

I should add, it's only becoming a problem when extending VaadinServlet. I'm using this tutorial. Removing the inheritance solves the problem, however without a working servlet vaadin seems pretty useless ;) .

Greets Kenneth

@Component(immediate = true)
@Instantiate
// Vaadin Servlet annotations
@WebServlet(value = "/*", asyncSupported = true)
@VaadinServletConfiguration(ui = BaseVaadinUI.class, productionMode = false)
public class BaseVaadinServlet
    extends VaadinServlet
{
    @Requires
    private UIProvider provider;

    public BaseVaadinServlet(
        @Requires
        HttpService httpService,
        @Requires(from = "df.ui.core.impl.ResourceProvider")
        Factory factory
    )
    throws ServletException, NamespaceException {
        System.out.println("registering");
    }

    @Override
    protected VaadinServletService createServletService(DeploymentConfiguration deploymentConfiguration)
        throws ServiceException {
        VaadinServletService servletService = super.createServletService(deploymentConfiguration);
        servletService.addSessionInitListener(sessionInitEvent ->
                sessionInitEvent.getSession().addUIProvider(provider)
        );

        return servletService;
    }
}

("registering" is not written to stdout)

0

There are 0 best solutions below