java.lang.ClassNotFoundException: org.apache.Unterhaus.dbcp.BasicDataSource
Iam dabei ein Projekt auf spring MVC mit maven.Iam immer eine java-Fehlermeldung.lang.ClassNotFoundException: org.apache.Unterhaus.dbcp.BasicDataSource während Laufenden Projekt.Ich habe alle Abhängigkeiten, denke ich..unten meine codes.warten auf Ihre Antwort
WEB.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<servlet>
<servlet-name>AccPerSpring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AccPerSpring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
servlet-context.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<!-- Enable @Controller annotation support -->
<mvc:annotation-driven />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/" />
<property name="suffix" value=".jsp" />
</bean>
<context:component-scan base-package="com.gerrytan.pizzashop"/>
<bean id="myDataSource" class=" org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mydatabase"/>
<property name="username" value="root"/>
<property name="password" value="kca@fnpl#12"/>
</bean>
<!-- Hibernate Session Factory -->
<bean id="mySessionFactory"class="org.springframework.orm.hibernate4.LocalSessionFactoryBean>
<property name="dataSource" ref="myDataSource"/>
<property name="packagesToScan">
<array>
<value>com.gerrytan.pizzashop</value>
</array>
</property>
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.MySQLDialect
</value>
</property>
</bean>
<!-- Hibernate Transaction Manager -->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="mySessionFactory"/>
</bean>
<mvc:resources mapping="/resources/**" location="/WEB-INF/resources/" />
<!-- Activates annotation based transaction management -->
<tx:annotation-driven transaction-manager="transactionManager"/>
</beans>
pom.xml
<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>AccPerSpring</groupId>
<artifactId>AccPerSpring</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<spring.version>3.2.3.RELEASE</spring.version>
<hibernate.version>4.2.2.Final</hibernate.version>
</properties>
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<!-- Java EE -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- Others -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
- Ist das jar in den classpath commons-dbcp.jar ?? überprüfen
- ya sicher..aber funktioniert nicht
- commons-dbcp-1.4.jar commons-dbcp-1.4-javadoc.jar commons-dbcp-1.4-sources.jar habe diese 3 Gläser
- Sind Sie der Bereitstellung in Tomcat, durch Zufall?
- Nein, konnte ich nicht.....
- Ich habe nur bemerkt, dass Sie einen führenden Platz in der "Klasse" - Attribut Ihrer Erklärung von "myDataSource" bean. Ich werde überrascht sein, wenn dies der Fall ist, aber wahrscheinlich lohnt sich der Verzicht darauf nur für den Fall!
- Fehler ist Weg, aber immer noch die Ausnahme in der Konsole (java.lang.ClassNotFoundException: org.apache.Unterhaus.dbcp.BasicDataSource)
- Zeigen Sie uns Ihre Abhängigkeitsstruktur (
mvn dependency:tree
). - Kannst du bitte erstellen Sie eine Kopie der jar-Datei commons-dbcp und konvertieren Sie die Erweiterung .zip(ab .jar) und dann öffnen Sie es und sehen, ob die Klasse gesucht wird, die gibt es wirklich. Wir hatten ein ähnliches Problem bei Verwendung commons-dbcp2.jar. basierend auf den tatsächlichen Ordner-Struktur innerhalb der jar - /zip, modifizieren wir unsere datasources.xml Eintrag "org.apache.Unterhaus.dbcp2.BasicDataSource" von "org.apache.Unterhaus.dbcp.BasicDataSource" (beachten Sie die extra 2) - das löste das Problem für uns!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sobald der Bau abgeschlossen ist check-in Ihre war-Datei-> WEB-INF/lib für commons-dbcp-1.4.jar. Wenn es verfügbar ist in die Klasse Pfad, dann ist dein Problem gelöst werden.
Eine weitere Sache ist, öffnen Sie Ihre commons-dbcp-1.4.jar und überprüfen Sie, dass insbesondere Klasse(org.apache.Unterhaus.dbcp.BasicDataSource) verfügbar ist oder nicht? wenn nicht, haben Sie, um zu versuchen, einige andere Versionen commons-dbcp-1.4.jar.
Manchmal hat man diese seltsame Ausnahmen, wenn Sie die in Konflikt stehende Versionen der gleichen Klasse. Dies kann passieren, weil eine andere version von dem selben JAR ist bereits auf dem Anwendungsserver, auf dem Klassenpfad, oder wenn es schon durch eine andere Abhängigkeit.
mvn dependency:tree
ist ein Befehl, den Sie ausführen können, um zu sehen, alle Abhängigkeiten, die in Ihre Anwendung, einschließlich derjenigen, die bekommen, brachte in die anderen Gläser. Es könnte sich lohnen zu laufen, um zu überprüfen, für andere "dbcp" Gläser, die möglicherweise einen Konflikt verursacht.Es lohnt sich auch die überprüfung Ihrer "lib" - Ordner in den application server, in die Sie bereitstellen, um zu sehen, ob es irgendeine "dbcp" JAR schon drin. Wenn dies der Fall ist, dann Wechsel den Bereich "vorgesehen" für die "commons-dbcp" Artefakt sollte das problem lösen.
Ein häufiger Fehler sein könnte, den Import der Klasse
statt
in Ihrem java-code. Es kann leicht übersehen werden, auch in den Fehlermeldungen.