0

I am working on a java webapplication in Netbeans8.0 IDE, apache-tomcat server.

I have three projects one of which has the parent pom.xml and the other two have their own POM.xml This application has legacy code and in the runtime it references the ojdbc6 jars from the server lib. Now the management wants us to move all the dependency jars to the war's Web-Inf/lib

We have the jars downloaded in our local folder of the application, but for some reason, it is not getting referenced from the Web-INF when I moved them to the pom.xml, I thought that I may be wrong with the group and artifactID. So I am directly referring it from codeIds maven repository, Now I have two issues 1. I see this jar in the Web-Inf only if I build with dependency 2. after seeing it in the Web-Inf, when I debug or run it I am getting ojdbc-driver exception in the runtime.

But when I move the same jar to server/lib it works fine.

I spent almost this whole week to resolve this issue with the help of many documents from the internet but no luck.

My pom.xml parent

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>portalsGroupId.portals</groupId>
    <artifactId>matrix</artifactId>
    <name>matrix</name>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <url>http://www.8x8.com</url>

    <parent>
        <groupId>portalsGroupId</groupId> 
        <artifactId>portals</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <repositories>
        <repository>
            <id>codelds</id>
            <url>https://code.lds.org/nexus/content/groups/main-repo</url>
        </repository>
        <repository>
            <id>jboss-public-repository-group</id>
            <name>Jboss Repository for Maven</name>
        <url><http://repository.jboss.org/nexus/content/groups /public></url>
        </repository>

        <repository>
            <id>jboss</id>
            <name>Jboss</name>
            <url>http://repository.jboss.com/maven2/</url>
        </repository>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>jboss-public-repository-group</id>
            <name>JBoss Public Maven Repository Group</name>
            <url>http://8x8.com/nexus/content/groups/public-jboss/</url>
            <layout>default</layout>
            <releases>
                <enabled>false</enabled>
                <updatePolicy>never</updatePolicy>
            </releases>
            <snapshots>
                <enabled>false</enabled>
                <updatePolicy>never</updatePolicy>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
                <org.richfaces.bom.version>4.0.0.Final</org.richfaces.bom.version>        
        <slf4j.version>1.5.6</slf4j.version>
        <jsf.version>2.1.2</jsf.version>
        <ssputil.version>1.0-SNAPSHOT</ssputil.version>
        <sspapi.version>1.0-SNAPSHOT</sspapi.version>        
        <oltu.version>1.0.0</oltu.version>
    </properties>

    <build>
        <finalName>matrix-${project.version}</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.1-alpha-2</version>
                <configuration>
                    <webResources>
                        <resource>
                            <directory>${basedir}/src/main/java</directory>
                            <targetPath>/WEB-INF/src</targetPath>
                        </resource>
                    </webResources>
                    <webResources>
                        <resource>
                            <directory>${basedir}/../ext_lib/cloud/</directory>
                            <targetPath>/WEB-INF/lib</targetPath>
                        </resource>
                        <resource>
                            <directory>${basedir}/../ext_lib/commons-net/</directory>
                            <targetPath>/WEB-INF/lib</targetPath>
                        </resource>
                        <resource>
                            <directory>${basedir}/src/main/java/com/_8x8/matrix/skin/</directory>
                            <targetPath>/WEB-INF/classes</targetPath>
                        </resource>
                        <resource>
                            <directory>${basedir}/../ext_lib/httpclient431/</directory>
                            <targetPath>/WEB-INF/lib</targetPath>
                        </resource>
                    </webResources>          
                </configuration>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>jee6</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-war-plugin</artifactId>
                        <configuration>
                            <webappDirectory>${project.build.directory}/${project.build.finalName}-jee6</webappDirectory>
                            <packagingExcludes>WEB-INF/lib/jsf-api*,WEB-INF/lib/jsf-impl*,WEB-INF/lib/jstl*</packagingExcludes>
                            <warSourceExcludes>WEB-INF/lib/jsf-api*,WEB-INF/lib/jsf-impl*,WEB-INF/lib/jstl*</warSourceExcludes>
                        </configuration>
                    </plugin>
                </plugins>
            </build>


            <dependencyManagement>  
                <dependencies>  
                    <dependency>  
                        <groupId>org.richfaces</groupId>  
                        <artifactId>richfaces-bom</artifactId>  
                        <version>${org.richfaces.bom.version}</version>  
                        <scope>import</scope>  
                        <type>pom</type>  
                    </dependency>  
                </dependencies>  
            </dependencyManagement> 

            <dependencies>
                <dependency>  
                    <groupId>org.richfaces.ui</groupId>  
                    <artifactId>richfaces-components-ui</artifactId>  
                </dependency>  
                <dependency>  
                    <groupId>org.richfaces.core</groupId>  
                    <artifactId>richfaces-core-impl</artifactId>  
                </dependency>  
                <dependency>
                    <groupId>com.sun.faces</groupId>
                    <artifactId>jsf-api</artifactId>
                    <scope>provided</scope>
                </dependency>
                <dependency>
                    <groupId>org.apache.oltu.oauth2</groupId>
                    <artifactId>org.apache.oltu.oauth2.client</artifactId>
                    <version>${oltu.version}</version>
                </dependency>
                <dependency>
                    <groupId>com.sun.faces</groupId>
                    <artifactId>jsf-impl</artifactId>
                    <scope>provided</scope>
                </dependency>
                <dependency>
                    <groupId>javax.transaction</groupId>
                    <artifactId>jta</artifactId>
                    <version>1.1</version>
                    <scope>provided</scope>
                </dependency>
            </dependencies>
        </profile>
        <profile>
            <id>release</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-war-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>jee6</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>war</goal>
                                </goals>
                                <configuration>
                                    <webappDirectory>${project.build.directory}/${project.build.finalName}-jee6</webappDirectory>
                                    <classifier>jee6</classifier>
                                    <packagingExcludes>WEB-INF/lib/jsf-api*,WEB-INF/lib/jsf-impl*,WEB-INF/lib/jstl*</packagingExcludes>
                                    <warSourceExcludes>WEB-INF/lib/jsf-api*,WEB-INF/lib/jsf-impl*,WEB-INF/lib/jstl*</warSourceExcludes>
                                </configuration>
                            </execution>
                        </executions>
                        <configuration>
                            <webResources>
                                <resource>
                                    <directory>${basedir}/src/main/java</directory>
                                    <targetPath>/WEB-INF/src</targetPath>
                                </resource>
                            </webResources>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>2.5</version>
            </dependency>
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>matrix_ssp_api</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>org.richfaces</groupId>
                <artifactId>richfaces-bom</artifactId>
                <version>${org.richfaces.bom.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>com.sun.faces</groupId>
                <artifactId>jsf-api</artifactId>
                <version>${jsf.version}</version>
            </dependency>
            <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jdbc</artifactId>
            <version>7.0.19</version>
            <type>jar</type>
        </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>4.2.0.Final</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>com.oracle</groupId>
                <artifactId>ojdbc6</artifactId>
                <version>11.2.0.1.0</version>
                <type>jar</type>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.richfaces.ui</groupId>
            <artifactId>richfaces-components-ui</artifactId>
            <version>${org.richfaces.bom.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.oltu.oauth2</groupId>
            <artifactId>org.apache.oltu.oauth2.client</artifactId>
            <version>${oltu.version}</version>
        </dependency>
        <dependency>
            <groupId>org.richfaces.core</groupId>
            <artifactId>richfaces-core-impl</artifactId>
            <version>${org.richfaces.bom.version}</version>
        </dependency>
        <dependency>
            <groupId>org.richfaces.cdk</groupId>
            <artifactId>annotations</artifactId>
            <scope>provided</scope>
            <version>${org.richfaces.bom.version}</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <!--scope>provided</scope-->
        </dependency>        
        <!-- Logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-api</artifactId>
        </dependency>
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-impl</artifactId>
            <version>2.1.2</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.el</groupId>
            <artifactId>el-api</artifactId>
            <version>2.2</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.glassfish.web</groupId>
            <artifactId>el-impl</artifactId>
            <version>2.2</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>

        <dependency>
            <groupId>net.sf.ehcache</groupId>
            <artifactId>ehcache</artifactId>
        </dependency>

        <!-- Local Project Dependency -->
        <dependency>
            <groupId>portalsGroupId.portals</groupId>
            <artifactId>matrix_ssp_util</artifactId>
            <version>1.0-SNAPSHOT</version>
            <exclusions>
                <exclusion>
                    <groupId>com._8x8.matrix</groupId>
                    <artifactId>matrix_httpClient401_cmncodec</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>portalsGroupId.portals</groupId>
            <artifactId>matrix_ssp_api</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>com._8x8.matrix</groupId>
                    <artifactId>matrix_httpClient401_cmncodec</artifactId>
                </exclusion>
            </exclusions>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>portalsGroupId.portals</groupId>
            <artifactId>matrix_cloud_commons</artifactId>
            <scope>system</scope>
            <version>1.0-SNAPSHOT</version>
            <systemPath>${project.basedir}/../ext_lib/cloud/cloud_commons.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>portalsGroupId.portals</groupId>
            <artifactId>matrix_cloud_client</artifactId>
            <scope>system</scope>
            <version>1.0-SNAPSHOT</version>
            <systemPath>${project.basedir}/../ext_lib/cloud/cloud_client.jar</systemPath>
        </dependency>

        <dependency>
            <groupId>commons-net</groupId>
            <artifactId>commons-net</artifactId>
            <scope>system</scope>
            <version>1.0-SNAPSHOT</version>
            <systemPath>${project.basedir}/../ext_lib/commons-net/commons-net-3.0.1.jar</systemPath>
        </dependency>  

        <dependency>
            <groupId>sims</groupId>
            <artifactId>sims</artifactId>
            <scope>system</scope>
            <version>1.0-SNAPSHOT</version>
            <systemPath>${project.basedir}/../ext_lib/sims/sims-connector.jar</systemPath>
        </dependency>  

        <dependency>
            <groupId>jlayer</groupId>
            <artifactId>jlayer</artifactId>
            <scope>system</scope>
            <version>1.0-SNAPSHOT</version>
            <systemPath>${project.basedir}/../ext_lib/jlayer/jl1.0.1.jar</systemPath>
        </dependency>  

        <dependency>
            <groupId>cdirector</groupId>
            <artifactId>cdirector</artifactId>
            <scope>system</scope>
            <version>1.0-SNAPSHOT</version>
            <systemPath>${project.basedir}/../ext_lib/chartdirector/ChartDirector.jar</systemPath>
        </dependency>  

        <dependency>
            <groupId>gson</groupId>
            <artifactId>gson222</artifactId>
            <scope>system</scope>
            <version>1.0-SNAPSHOT</version>
            <systemPath>${project.basedir}/../ext_lib/gson/google-gson-2.2.2/gson-2.2.2.jar</systemPath>
        </dependency>    
        <dependency>
            <groupId>com.thoughtworks.xstream</groupId>
            <artifactId>xstream</artifactId>
            <version>1.4.5</version>
        </dependency>  
        <dependency>
            <groupId>org.codehaus.jettison</groupId>
            <artifactId>jettison</artifactId>
            <version>1.3.4</version>
        </dependency>  
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.3.1</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
            <type>jar</type>
        </dependency>
    </dependencies>
</project>
ROMANIA_engineer
  • 54,432
  • 29
  • 203
  • 199
user2617611
  • 339
  • 1
  • 4
  • 16

1 Answers1

1

Just downloading a jar and putting it to the project folder is not the "maven way"...

If you want to use a library which is not in the central repo you have either to put it in your local repo or use another remote repo. If I understood correctly you have choosen to use the code.lds.org repo. What I can't see in your pom is the (real) dependency. There is only the dependency management for the ojdbc6.

You have to add this to you <dependencies> section and run mvn package (or in Netbeans build) and the ojdbc6 jar should be packaged into the war.

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc6</artifactId>
</dependency>

(Version is skipped here, because it is already defined in the <dependencyManagement>; <type>jar</type> is not needed because its the default...)

You could also look at this question, maybe there are some more/other informations: Oracle JDBC ojdbc6 Jar as a Maven Dependency

Community
  • 1
  • 1
Josef Reichardt
  • 2,778
  • 3
  • 22
  • 37