404 Error Upon Installation

Hi,
I have followed all the steps for installation in Linux from the doc - https://helicalinsight.github.io/helicalinsight/#/quickstart?id=manual-installation

After coping with the war folder to Web apps, I have changed project.properties and application-context.xml with oracle credentials.
Then I got an error saying oracle driver not found. So, I added oracle dependency in pom.xml and the error got resolved. But, when trying to access UI. I am getting 404 error

I have checked the logs. I couldn’t find any error after restarting Tomcat.

Using Tomcat Version 8

Hi Mohan,
You do not need to make any changes in pom.xml.
You only need to add the oracle JDBC jar driver in the location “…\hi\apache-tomcat-7\webapps\hi-ee\WEB-INF\lib”

Further in applicationcontext.xml file you can open that file and as highlighted in the below image change it from derby dialect to oracle dialect.

After doing the above changes please restart and follow the other set of steps mentioned in the online installation blog.

Hi. Thanks, The issue was resolved now. But, In UI during login.

when clicking default User or admin. I am getting error Invalid Credentials.
Used the following creds -

1.username: hiadmin
password: hiadmin

2.username: hiuser
password: hiuser

Hi Mohan,
(a) in the oracle db, as soon as you might have restarted, it would have created a table by the name of “h_users” and this table will have the default username and password.

Aside, can you also try

  • hdiadmin as the username and password

Hi.
I have tried with hdiadmin also, still i am facing the same error “Please Enter Valid Credentials”

Can you tell me under which schema the table “h_users” will be created.
I have checked the db. I think no such table was created

Please find the logs upon clicking login –

2020-07-02 05:26:20 DEBUG FilterSecurityInterceptor:185 - Public object - authentication not attempted
2020-07-02 05:26:20 DEBUG FilterChainProxy:337 - / at position 13 of 13 in additional filter chain; firing Filter: ‘SwitchUserFilter’
2020-07-02 05:26:20 DEBUG FilterChainProxy:323 - / reached end of additional filter chain; proceeding with original chain
2020-07-02 05:26:20 INFO ValidationFilter:79 - The validation url is /
2020-07-02 05:26:20 INFO ResourceAuthenticationAndAuthorizationFilter:88 - The url requested is /
2020-07-02 05:26:20 DEBUG DispatcherServlet:865 - DispatcherServlet with name ‘dispatcher-servlet’ processing GET request for [/hi-ce/]
2020-07-02 05:26:20 DEBUG RequestMappingHandlerMapping:310 - Looking up handler method for path /
2020-07-02 05:26:20 DEBUG RequestMappingHandlerMapping:320 - Did not find handler method for [/]
2020-07-02 05:26:20 DEBUG RequestMappingHandlerMapping:310 - Looking up handler method for path /
2020-07-02 05:26:20 DEBUG RequestMappingHandlerMapping:317 - Returning handler method [public java.lang.String com.helicalinsight.admin.controller.AdminController.defaultPage()]
2020-07-02 05:26:20 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean ‘adminController’
2020-07-02 05:26:20 DEBUG DispatcherServlet:951 - Last-Modified value for [/hi-ce/] is: -1
2020-07-02 05:26:20 DEBUG AdminController:100 - Root mapping is invoked. Returning tiles view template-main.
2020-07-02 05:26:20 DEBUG DispatcherServlet:1265 - Rendering view [org.springframework.web.servlet.view.tiles3.TilesView: name ‘login-page’; URL [login-page]] in DispatcherServlet with name ‘dispatcher-servlet’
2020-07-02 05:26:20 DEBUG BasicTilesContainer:213 - Render request received for definition ‘login-page’
2020-07-02 05:26:20 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean ‘org.springframework.security.web.access.expression.DefaultWebSecurityExpressionHandler#0’
2020-07-02 05:26:20 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean ‘org.springframework.security.web.access.expression.DefaultWebSecurityExpressionHandler#1’
2020-07-02 05:26:20 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean ‘org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler#0’
2020-07-02 05:26:20 DEBUG HttpSessionSecurityContextRepository:269 - SecurityContext is empty or contents are anonymous - context will not be stored in HttpSession.
2020-07-02 05:26:20 DEBUG DispatcherServlet:1000 - Successfully completed request
2020-07-02 05:26:20 DEBUG ExceptionTranslationFilter:115 - Chain processed normally
2020-07-02 05:26:20 DEBUG SecurityContextPersistenceFilter:97 - SecurityContextHolder now cleared, as request processing completed

Under Admin schema database will be present. Inside that database the table will be h_users.

Can you also share application-contenxt.xml as well as spring-security.xml file? Both of these files will be located in WEB-INF/Classes folder

I have checked the database schema. Table was not created

spring-security.xml

<beans:bean id=“accessDeniedHandler” class=“org.springframework.security.web.access.AccessDeniedHandlerImpl”>
<beans:property name=“errorPage” value="/WEB-INF/pages/accessdenied.jsp"/>
</beans:bean>

<beans:bean id="authenticationProcessingFilter" class="com.helicalinsight.admin.filter.PreAuthenticationFilter">
    <beans:property name="postOnly" value="false"/>
    <beans:property name="authenticationManager" ref="authenticationManager"/>
    <beans:property name="authenticationFailureHandler" ref="failureHandler"/>
    <beans:property name="authenticationSuccessHandler" ref="successHandler"/>
</beans:bean>
<!-- JWT -->
<beans:bean id="authenticationTokenFilterBean"
            class="com.helicalinsight.externalauth.jwt.JwtAuthenticationFilter">
</beans:bean>
<beans:bean id="jwtRestAuthenticationEntryPoint"
            class="com.helicalinsight.externalauth.jwt.JwtAuthenticationEntryPoint">
</beans:bean>


<beans:bean id="requestParameterAuthenticationFilter"
            class="com.helicalinsight.admin.filter.RequestParameterAuthenticationFilter">
    <beans:property name="authenticationManager" ref="authenticationManager">
        <!-- ref="authenticationManager"(use this when no cas)-->
    </beans:property>
    <beans:property name="authenticationFailureUrl" value="/login.html?error=1"/>
    <beans:property name="excludeUrls">
        <beans:list>
            <beans:value>/j_spring_switch_user</beans:value>
        </beans:list>
    </beans:property>
</beans:bean>

<beans:bean id="successHandler"
            class="org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler">
    <beans:property name="defaultTargetUrl" value="/welcome.html"/>
    <beans:property name="alwaysUseDefaultTargetUrl" value="false"/>
</beans:bean>

<beans:bean id="failureHandler"
            class="org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler">
    <beans:property name="defaultFailureUrl" value="/loginFailed.html"/>
</beans:bean>

<beans:bean id="loginUrlAuthenticationEntryPoint"
            class="org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint">
    <beans:property name="loginFormUrl" value="/login.html"/>
    <beans:property name="forceHttps" value="false"/>
</beans:bean>


<authentication-manager alias="authenticationManager" erase-credentials="false">
    <authentication-provider user-service-ref="userDetailsService"/>
    <authentication-provider ref="casAuthenticationProvider"/>
    <authentication-provider ref="internalAuthenticationProvider"/>
</authentication-manager>

<!--htpp configuration for rest api starts-->
<http pattern="/rest/login" security="none"/>
<!--htpp configuration for rest api ends-->
<http pattern="/rest/*" security="none" create-session="stateless"
      entry-point-ref="jwtRestAuthenticationEntryPoint"/>

<http access-denied-page="/WEB-INF/pages/accessdenied.jsp"
      use-expressions="true" auto-config="false"
      entry-point-ref="loginUrlAuthenticationEntryPoint">
    <!--entry-point-ref="loginUrlAuthenticationEntryPoint"(use this when no cas)-->
    <!--entry-point-ref="casEntryPoint"(to enable cas)-->

    <logout invalidate-session="true" logout-success-url="/login.html"
            delete-cookies="JSESSIONID"/>

    <intercept-url pattern="/admin.html" access="hasRole('ROLE_ADMIN')"/>
    <intercept-url pattern="/report.html" access="hasAnyRole('ROLE_ADMIN','ROLE_USER')"/>

    <intercept-url pattern="/favicon.ico" access="permitAll"/>

    <intercept-url pattern="/admin/home.html" access="hasRole('ROLE_ADMIN')"/>

    <intercept-url pattern="/admin/home*" access="denyAll"/>

    <intercept-url pattern="/customscript" access="isAuthenticated()"/>

    <intercept-url pattern="/login.html" access="permitAll"/>

    <intercept-url pattern="/Print" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/DisplayChart" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/GetChart" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/loginfailed.html" access="permitAll"/>

    <intercept-url pattern="/login*" access="denyAll"/>

    <intercept-url pattern="/welcome.html" access="isAuthenticated()"/>

    <intercept-url pattern="/welcome/" access="denyAll"/>

    <intercept-url pattern="/welcome*" access="denyAll"/>

    <intercept-url pattern="/hi.html" access="isAuthenticated()"/>

    <intercept-url pattern="/hi/" access="denyAll"/>

    <intercept-url pattern="/hi*" access="denyAll"/>

    <intercept-url pattern="/admin/users" access="hasRole('ROLE_ADMIN')"/>

    <intercept-url pattern="/admin/roles/**" access="hasRole('ROLE_ADMIN')"/>






    <intercept-url pattern="/admin/profiles" access="hasRole('ROLE_ADMIN')"/>

    <intercept-url pattern="/admin" access="denyAll"/>

    <intercept-url pattern="/admin/*" access="denyAll"/>

    <intercept-url pattern="/admin*" access="denyAll"/>

    <intercept-url pattern="/mock/**" access="hasRole('ROLE_ADMIN') or hasRole('ROLE_PREVIOUS_ADMINISTRATOR')"/>

    <intercept-url pattern="/user*" access="hasRole('ROLE_USER')"/>

    <intercept-url pattern="/services*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/services/**" access="isAuthenticated()"/>

    <intercept-url pattern="/rest/logout.html" access="isAuthenticated()"/>

    <intercept-url pattern="/getSolutionResources*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/getEFWSolution*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/executeDatasource*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>
    <intercept-url pattern="/ce-report-create*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>
    <intercept-url pattern="/ce-report-edit*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/datasource-*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/visualizeData*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/exportData*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/downloadReport*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/updateEFWTemplate*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/getExternalResource*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/createDataSource*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/getResources*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/listDataSources*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/executeSavedReport*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/sendMail*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/downloadEnableSavedReport*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/fileSystemOperations*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/importFile*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/workflow*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/saveReport*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/executeFavourite*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/getScheduleData*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/updateScheduleData*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/sync*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>

    <intercept-url pattern="/getProductInformation*" access="permitAll"/>

    <intercept-url pattern="/jasperReports*" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')"/>


    <!--  JWT -->
    <intercept-url pattern="/rest/*" access="permitAll"/>
    <custom-filter before="BASIC_AUTH_FILTER" ref="authenticationTokenFilterBean"/>
    <!--Filter order changed for integration of CAS_FILTER starts-->
    <custom-filter before="CAS_FILTER" ref="authenticationProcessingFilter"/>
    <custom-filter position="FORM_LOGIN_FILTER" ref="requestParameterAuthenticationFilter"/>
    <custom-filter position="CAS_FILTER" ref="casFilter"/>
    <custom-filter position="SWITCH_USER_FILTER" ref="switchUserProcessingFilter"/>
    <!--Filter order changed for integration of CAS_FILTER ends-->
</http>


<!--Beans configuration related to CAS integration starts -->
<beans:bean id="internalAuthenticationProvider"
            class="com.helicalinsight.externalauth.InternalDaoAuthenticationProvider">
    <beans:property name="userDetailsService" ref="userDetailsService"/>
</beans:bean>

<beans:bean id="casUserDetailsService"
            class="com.helicalinsight.externalauth.cas.CasUserDetailService">
</beans:bean>

<beans:bean id="casFilter" class="org.springframework.security.cas.web.CasAuthenticationFilter">
    <beans:property name="authenticationManager" ref="authenticationManager"/>
    <beans:property name="authenticationSuccessHandler" ref="externalAuthSuccessHandler"/>
</beans:bean>

<beans:bean id="casEntryPoint" class="org.springframework.security.cas.web.CasAuthenticationEntryPoint">
    <beans:property name="loginUrl" value="http://192.168.2.18:8080/cas/login"/>
    <beans:property name="serviceProperties" ref="serviceProperties"/>
</beans:bean>

<beans:bean id="casAuthenticationProvider"
            class="org.springframework.security.cas.authentication.CasAuthenticationProvider">
    <beans:property name="authenticationUserDetailsService">
        <beans:bean class="org.springframework.security.core.userdetails.UserDetailsByNameServiceWrapper">
            <beans:constructor-arg ref="casUserDetailsService"/>
        </beans:bean>
    </beans:property>
    <beans:property name="serviceProperties" ref="serviceProperties"/>
    <beans:property name="ticketValidator">
        <beans:bean class="org.jasig.cas.client.validation.Cas20ServiceTicketValidator">
            <beans:constructor-arg index="0" value="http://192.168.2.18:8080/cas"/>
        </beans:bean>
    </beans:property>
    <beans:property name="key" value="an_id_for_this_auth_provider_only"/>
</beans:bean>
<beans:bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <beans:property name="targetClass" value="org.springframework.security.core.context.SecurityContextHolder"/>
    <beans:property name="targetMethod" value="setStrategyName"/>
    <beans:property name="arguments">
        <beans:list>
            <beans:value>MODE_INHERITABLETHREADLOCAL</beans:value>
        </beans:list>
    </beans:property>
</beans:bean>

<beans:bean name="casSingleSignOutFilter" class="org.jasig.cas.client.session.SingleSignOutFilter">
    <beans:property name="artifactParameterName" value="ticket"/>
    <beans:property name="sessionMappingStorage" ref="casSessionMappingStorage"/>
</beans:bean>

<beans:bean id="proxyAuthenticationProcessingFilter" class="com.helicalinsight.externalauth.cas.HiCasFilter">
    <beans:property name="authenticationManager" ref="authenticationManager"/>
    <beans:property name="authenticationFailureHandler" ref="failureHandler"/>
    <beans:property name="filterProcessesUrl" value="/j_spring_security_check"/>
    <beans:property name="allowSessionCreation" value="true"/>
    <beans:property name="sessionAuthenticationStrategy" ref="casSessionAuthStrategy"/>
    <!--Used the same deprecated class. Need to fix this by writing a custom impl of
    AuthenticationDetailsSource-->
    <beans:property name="authenticationDetailsSource">
        <beans:bean class="com.helicalinsight.externalauth.cas.AuthenticationDetailsSourceImpl">
            <beans:property name="clazz"
                            value="org.springframework.security.web.authentication.WebAuthenticationDetails"/>
        </beans:bean>
    </beans:property>
</beans:bean>

<beans:bean id="externalAuthSuccessHandler"
            class="com.helicalinsight.externalauth.cas.CasSuccessHandler">
    <beans:property name="defaultTargetUrl" value="/welcome.html"/>
    <beans:property name="alwaysUseDefaultTargetUrl" value="false"/>
</beans:bean>

<beans:bean id="casSessionAuthStrategy"
            class="com.helicalinsight.externalauth.cas.CasSessionFixationProtectionStrategy">
    <beans:property name="migrateSessionAttributes" value="true"/>
    <beans:property name="sessionMappingStorage" ref="casSessionMappingStorage"/>
    <beans:property name="artifactParameterName" value="ticket"/>
    <!-- MUST BE THE SAME AS artifactParameterName in casSingleSignOutFilter bean -->
</beans:bean>

<beans:bean id="casSessionMappingStorage" class="org.jasig.cas.client.session.HashMapBackedSessionMappingStorage"/>

<beans:bean name="externalAdminUsers" class="com.helicalinsight.externalauth.cas.ExternalAdminUsers">
    <beans:property name="adminUsers">
        <beans:list>
            <beans:value>casuser</beans:value>
        </beans:list>
    </beans:property>
</beans:bean>
<!--Beans configuration related to CAS integration ends -->

<!--Beans configuration for rest api starts-->
<beans:bean id="unauthorizedEntryPoint" class="com.helicalinsight.externalauth.security.RestUnauthorizedEntryPoint"/>
<beans:bean id="tokenManager" class="com.helicalinsight.externalauth.security.impl.TokenManagerSingle"/>
<beans:bean id="switchUserProcessingFilter"
            class="org.springframework.security.web.authentication.switchuser.SwitchUserFilter">
    <beans:property name="userDetailsService" ref="userDetailsService"/>
    <beans:property name="switchUserUrl" value="/mock/impersonate"/>
    <beans:property name="targetUrl" value="/welcome.html"/>
    <beans:property name="switchFailureUrl" value="/mock/switchUser"/>
    <beans:property name="exitUserUrl" value="/j_spring_security_exit_user"/>
    <beans:property name="usernameParameter" value="username"/>
</beans:bean>

<!--Beans configuration for rest api ends-->
<security:global-method-security secured-annotations="enabled" jsr250-annotations="enabled"
                                 pre-post-annotations="enabled">
</security:global-method-security>

application-context.xml
<context:component-scan base-package=“com.helicalinsight”/>
<util:properties id=“projectProperties” location=“classpath:project.properties”/>

<!-- Root Context: defines shared resources visible to all other web components -->
<!-- A high performance connection pool -->
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
    <property name="username" value="****"/>
    <property name="password" value="-----"/>
    <property name="driverClassName" value="oracle.jdbc.OracleDriver"/>
    <property name="jdbcUrl" value="jdbc:oracle:thin:@=====:1521/-------"/>
</bean>

<!-- Hibernate 4 SessionFactory Bean definition -->
<bean id="hibernate4AnnotatedSessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="configLocation" value="classpath:hibernate.cfg.xml"/>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
            <prop key="hibernate.show_sql">false</prop>
            <prop key="hibernate.format_sql">false</prop>
            <prop key="hibernate.hbm2ddl.auto">update</prop>
        </props>
    </property>
</bean>

<!-- Hibernate Transaction Manager -->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <property name="sessionFactory" ref="hibernate4AnnotatedSessionFactory"/>
</bean>

<tx:annotation-driven transaction-manager="transactionManager"/>
<!--
    The following bean is related to the plug-in for the EFW-Project related to the jrxml execution.
    In case of Java EE full profile application servers, the bean need not be registered explicitly.
    The specific class is already annotated with @Controller annotation. Only in case of Tomcat 6 the class needs to
    wired in the context explicitly, as Tomcat 6 does not scan the WEB-INF/lib for the classes.

    <bean class="com.helicalinsight.efw.controller.EFWPluginController"/>
-->

<!-- To prevent browser's back button on displaying secured resource after logout -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    <property name="cacheSeconds" value="0"/>
</bean>

<bean class="org.springframework.security.web.access.expression.DefaultWebSecurityExpressionHandler"/>

<!-- Spring Internationalisation
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="classpath:messages"/>
    <property name="defaultEncoding" value="UTF-8"/>
</bean>-->
<!-- Spring Internationalisation -->

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basenames">
        <list>
            <value>message</value>
        </list>
    </property>
</bean>

<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
    <property name="defaultLocale" value="en"/>
</bean>

<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
    <property name="paramName" value="language"/>
</bean>

<bean id="handlerMapping"
      class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
    <property name="interceptors" ref="localeChangeInterceptor"/>
</bean>

<!--This bean helps to integrate the application with cas service provider-->
<!--Replace the parameters to work with CAS-->
<bean id="serviceProperties" class="org.springframework.security.cas.ServiceProperties">
    <property name="service" value="http://{your-ip}:{your-port}/{context}/j_spring_cas_security_check"/>
    <property name="sendRenew" value="false"/>
</bean>
1 Like

Hello Mohan,

Please verify the below steps to configure application default database as oracle :

  1. Create a database named “hiee” on oracle db server

  2. In application-context.xml
    -you have already configured database bean
    In Dialet provide this line : <prop key=“hibernate.dialect”>org.hibernate.dialect.OracleDialect</prop>

  3. In the server path : …\hi\apache-tomcat-7\webapps\hi-ee\WEB-INF\classes
    open the file : hikari.properties
    provide oracle database details :
    user=
    password=
    portNumber=
    databaseName=
    serverName=

  4. Download the oracle driver attached in the blow zip file, and place in the server location
    …\hi\apache-tomcat-7\webapps\hi-ee\WEB-INF\lib
    ojdbc8.zip (3.7 MB)

  5. Restart the Helical Server

  6. Connect db using db client and check database hiee . There tables must be created related to userManagement of Helical Insight application
    Please verify all these steps and let us know if you still face issue.
    Thank You
    Team Helical.