Uninstalling add-on

Hi
In new version of studio there is and option to install add-ones. Now I need to uninstall one add on. I didn’t find any option to uninstall. I tried to remove it from build.griddle but it seems that it’s not only the place the add on is referenced. Can anyone help?

Hi,

Just click the link of add-on on ‘Installed’ tab. it will open add-on page with uninstall button.

Umesh

1 Like

I did that but I’m getting the following exception at run-time:

  Aug 26, 2019 1:49:12 AM org.apache.catalina.core.ApplicationContext log
INFO: No Spring WebApplicationInitializer types detected on classpath
01:49:12.744 ERROR c.h.c.c.s.AbstractWebAppContextLoader   - Error initializing application
java.lang.RuntimeException: App component descriptor was not found in 'com/haulmont/addon/dashboardchart/app-component.xml'
	at com.haulmont.cuba.core.sys.AppComponents.getDescriptorDoc(AppComponents.java:181) ~[cuba-global-7.0.9.jar:7.0.9]
	at com.haulmont.cuba.core.sys.AppComponents.load(AppComponents.java:112) ~[cuba-global-7.0.9.jar:7.0.9]
	at com.haulmont.cuba.core.sys.AppComponents.<init>(AppComponents.java:67) ~[cuba-global-7.0.9.jar:7.0.9]
	at com.haulmont.cuba.core.sys.AbstractWebAppContextLoader.initAppComponents(AbstractWebAppContextLoader.java:131) ~[cuba-global-7.0.9.jar:7.0.9]
	at com.haulmont.cuba.core.sys.AbstractWebAppContextLoader.contextInitialized(AbstractWebAppContextLoader.java:73) ~[cuba-global-7.0.9.jar:7.0.9]
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4663) [catalina.jar:9.0.14]
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5131) [catalina.jar:9.0.14]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.14]
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:713) [catalina.jar:9.0.14]
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690) [catalina.jar:9.0.14]
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:695) [catalina.jar:9.0.14]
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1133) [catalina.jar:9.0.14]
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1868) [catalina.jar:9.0.14]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_151]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_151]
	at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.14]
	at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112) [na:1.8.0_151]
	at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1045) [catalina.jar:9.0.14]
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:429) [catalina.jar:9.0.14]
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1577) [catalina.jar:9.0.14]
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309) [catalina.jar:9.0.14]
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) [catalina.jar:9.0.14]
	at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:424) [catalina.jar:9.0.14]
	at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:367) [catalina.jar:9.0.14]
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:934) [catalina.jar:9.0.14]
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:831) [catalina.jar:9.0.14]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.14]
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1382) [catalina.jar:9.0.14]
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1372) [catalina.jar:9.0.14]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_151]
	at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.14]
	at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134) [na:1.8.0_151]
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:907) [catalina.jar:9.0.14]
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) [catalina.jar:9.0.14]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.14]
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:423) [catalina.jar:9.0.14]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.14]
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:933) [catalina.jar:9.0.14]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.14]
	at org.apache.catalina.startup.Catalina.start(Catalina.java:637) [catalina.jar:9.0.14]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_151]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_151]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_151]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_151]
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:350) [bootstrap.jar:9.0.14]
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492) [bootstrap.jar:9.0.14]
Aug 26, 2019 1:49:12 AM org.apache.catalina.core.StandardContext listenerStart

Any thoughts about fixing this?

Here is the web.xml

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
    <!-- Application properties config files -->
    <context-param>
        <param-name>appPropertiesConfig</param-name>
        <param-value>classpath:com/myapp/erp/app.properties
            /WEB-INF/local.app.properties
            "file:${catalina.home}/conf/myapp-core/local.app.properties"</param-value>
    </context-param>
    <!--Application components-->
    <context-param>
        <param-name>appComponents</param-name>
        <param-value>com.haulmont.addon.dashboard com.haulmont.addon.imap com.haulmont.cuba com.haulmont.charts com.haulmont.reports com.haulmont.bpm com.myapp.common
            com.haulmont.fts com.haulmont.addon.search com.haulmont.addon.imap com.haulmont.addon.emailtemplates
            com.haulmont.addon.dashboardchart com.haulmont.addon.dashboard com.haulmont.addon.sdbmt
        </param-value>
    </context-param>
    <listener>
        <listener-class>com.haulmont.cuba.core.sys.AppContextLoader</listener-class>
    </listener>
    <servlet>
        <servlet-name>remoting</servlet-name>
        <servlet-class>com.haulmont.cuba.core.sys.remoting.RemotingServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>remoting</servlet-name>
        <url-pattern>/remoting/*</url-pattern>
    </servlet-mapping>
</web-app>

This has happened when I removed the add-on DbLocalization

No idea of this issue. but have you updated dashboard addon as I amfacing similar issue after updating the dashboard add-on. see.

This line is common in error received by you and me.

java.lang.RuntimeException: App component descriptor was not found in ‘com/haulmont/addon/dashboardchart/app-component.xml’

Hi,

The app component descriptor not found for the com.haulmont.addon.dashboardchart add-on.
Please check that it is added to the dependencies section in the build.gradle.

Regarding the uninstalling the add-on. The button should remove appComponent(’…’) from the build.gradle, and the add-on group from the web.xml files. If something went wrong in your case please provide details. You can check Local History in the IDE to see the modifications of your source code.

Hi Alexander
Now I am getting the following error that relates to Dashboardchart add-on. I didn’t uninstall it but dashboardchart is missing in app-component file! This is used by dashboard add-on and I don’t see this in marketplace.

Aug 26, 2019 11:32:18 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory [/Users/mak/Projects/myapp/build/tomcat/webapps/myapp-core]
Aug 26, 2019 11:32:19 AM org.apache.catalina.core.ApplicationContext log
INFO: Initializing AtmosphereFramework
Aug 26, 2019 11:32:19 AM org.apache.catalina.core.ApplicationContext log
INFO: No Spring WebApplicationInitializer types detected on classpath
11:32:19.881 ERROR c.h.c.c.s.AbstractWebAppContextLoader   - Error initializing application
java.lang.RuntimeException: App component descriptor was not found in 'com/haulmont/addon/dashboardchart/app-component.xml'
	at com.haulmont.cuba.core.sys.AppComponents.getDescriptorDoc(AppComponents.java:181) ~[cuba-global-7.0.9.jar:7.0.9]
	at com.haulmont.cuba.core.sys.AppComponents.load(AppComponents.java:112) ~[cuba-global-7.0.9.jar:7.0.9]
	at com.haulmont.cuba.core.sys.AppComponents.<init>(AppComponents.java:67) ~[cuba-global-7.0.9.jar:7.0.9]
	at com.haulmont.cuba.core.sys.AbstractWebAppContextLoader.initAppComponents(AbstractWebAppContextLoader.java:131) ~[cuba-global-7.0.9.jar:7.0.9]
	at com.haulmont.cuba.core.sys.AbstractWebAppContextLoader.contextInitialized(AbstractWebAppContextLoader.java:73) ~[cuba-global-7.0.9.jar:7.0.9]
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4663) [catalina.jar:9.0.14]
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5131) [catalina.jar:9.0.14]

How can I fix this issue?

There were old and new version both in the build.gradle file, I have removed new version and get the following error:

Aug 26, 2019 12:22:53 PM org.apache.catalina.core.ApplicationContext log
INFO: No Spring WebApplicationInitializer types detected on classpath
12:22:53.633 ERROR c.h.c.c.s.AbstractWebAppContextLoader   - Error initializing application
java.lang.RuntimeException: App component descriptor was not found in '>/app-component.xml'
	at com.haulmont.cuba.core.sys.AppComponents.getDescriptorDoc(AppComponents.java:181) ~[cuba-global-7.0.9.jar:7.0.9]
	at com.haulmont.cuba.core.sys.AppComponents.load(AppComponents.java:112) ~[cuba-global-7.0.9.jar:7.0.9]
	at com.haulmont.cuba.core.sys.AppComponents.<init>(AppComponents.java:67) ~[cuba-global-7.0.9.jar:7.0.9]
	at com.haulmont.cuba.core.sys.AbstractWebAppContextLoader.initAppComponents(AbstractWebAppContextLoader.java:131) ~[cuba-global-7.0.9.jar:7.0.9]
	at com.haulmont.cuba.core.sys.AbstractWebAppContextLoader.contextInitialized(AbstractWebAppContextLoader.java:73) ~[cuba-global-7.0.9.jar:7.0.9]
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4663) [catalina.jar:9.0.14]
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5131) [catalina.jar:9.0.14]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.14]
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:713) [catalina.jar:9.0.14]
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690) [catalina.jar:9.0.14]
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:695) [catalina.jar:9.0.14]
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1133) [catalina.jar:9.0.14]
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1868) [catalina.jar:9.0.14]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_151]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_151]

I also tried to remove the old version and use the new version of the dashboard add-on but get the same.

What could be the reason and solution?

Please attach your build.gradle dependencies section content (where are the appComponent("…") definitions listed) and web.xml files of the Core and Web modules.

The general rule for the application component is that you should have appComponent(“group:artifact:version”) definition in build.gradle
And component’s group listed in the appComponents context-param value in the web.xml files.

E.g.
build.gradle:

dependencies {
    appComponent("com.haulmont.cuba:cuba-global:$cubaVersion")
    appComponent('com.haulmont.addon.sdbmt:sdbmt-global:1.3.3')
    appComponent('de.diedavids.cuba.dblocalization:dblocalization-global:0.2.1')
}

web.xml:

    <!--Application components-->
    <context-param>
        <param-name>appComponents</param-name>
        <param-value>com.haulmont.cuba com.haulmont.addon.sdbmt de.diedavids.cuba.dblocalization</param-value>
    </context-param>

Hi
I have checked all those files but didn’t find any problem.

Here is web.xml (core)

        <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
<!-- Application properties config files -->
<context-param>
    <param-name>appPropertiesConfig</param-name>
    <param-value>classpath:com/inteacc/erp/app.properties
        /WEB-INF/local.app.properties
        "file:${catalina.home}/conf/myapp-core/local.app.properties"</param-value>
</context-param>
<!--Application components-->
<context-param>
    <param-name>appComponents</param-name>
    <param-value>com.haulmont.addon.dashboard com.haulmont.addon.dashboardchart com.haulmont.addon.imap
        com.haulmont.cuba com.haulmont.charts com.haulmont.reports com.haulmont.bpm com.inteacc.common com.haulmont.fts
        com.haulmont.addon.search com.haulmont.addon.emailtemplates com.haulmont.addon.sdbmt</param-value>
</context-param>
<listener>
    <listener-class>com.haulmont.cuba.core.sys.AppContextLoader</listener-class>
</listener>
<servlet>
    <servlet-name>remoting</servlet-name>
    <servlet-class>com.haulmont.cuba.core.sys.remoting.RemotingServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>remoting</servlet-name>
    <url-pattern>/remoting/*</url-pattern>
</servlet-mapping>
</web-app>

and web.xml (web)

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
     version="3.0">
<!-- Application properties config files -->
<context-param>
    <param-name>appPropertiesConfig</param-name>
    <param-value>classpath:com/myapp/web-app.properties
        /WEB-INF/local.app.properties
        "file:${catalina.home}/conf/myapp/local.app.properties"</param-value>
</context-param>
<!--Application components-->
<context-param>
    <param-name>appComponents</param-name>
    <param-value>com.haulmont.addon.dashboard com.haulmont.addon.imap com.haulmont.cuba com.haulmont.charts com.haulmont.reports com.haulmont.bpm com.myapp.common com.haulmont.fts com.haulmont.addon.search com.haulmont.addon.emailtemplates com.haulmont.addon.dashboardchart com.haulmont.addon.sdbmt </param-value>
</context-param>
<listener>
    <listener-class>com.vaadin.server.communication.JSR356WebsocketInitializer</listener-class>
</listener>
<listener>
    <listener-class>com.haulmont.cuba.web.sys.WebAppContextLoader</listener-class>
</listener>
<servlet>
    <servlet-name>app_servlet</servlet-name>
    <servlet-class>com.haulmont.cuba.web.sys.CubaApplicationServlet</servlet-class>
    <async-supported>true</async-supported>
</servlet>
<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>com.haulmont.cuba.web.sys.CubaDispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet>
    <servlet-name>rest_api</servlet-name>
    <servlet-class>com.haulmont.restapi.sys.CubaRestApiServlet</servlet-class>
    <load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/dispatch/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>app_servlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>rest_api</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>
<filter>
    <filter-name>cuba_filter</filter-name>
    <filter-class>com.haulmont.cuba.web.sys.CubaHttpFilter</filter-class>
    <async-supported>true</async-supported>
</filter>
<filter-mapping>
    <filter-name>cuba_filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
    <filter-name>restSpringSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    <init-param>
        <param-name>contextAttribute</param-name>
        <param-value>org.springframework.web.servlet.FrameworkServlet.CONTEXT.rest_api</param-value>
    </init-param>
    <init-param>
        <param-name>targetBeanName</param-name>
        <param-value>springSecurityFilterChain</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>restSpringSecurityFilterChain</filter-name>
    <url-pattern>/rest/*</url-pattern>
</filter-mapping>
</web-app>

As I see in the last stacktrace, there is redundant > symbol in the appComponents param value in one of the web.xml files.
But there is no such typo in the provided files.
Don’t you have portal module in your project? It also has web.xml file with this context parameter

That also surprises me as ]]> symbol is not existing in the web.xml file. It was earlier that I have removed and redeployed. Before redeployed it, I have cleaned and assembled the project. By this process the war file shouldn’t have anything like that.

I don’t have portal module in the project though!