Search Results for 'Maven dependency'

2 POSTS

  1. 2013.06.20 Maven ojdbc14.jar 등록오류 해결하기.
  2. 2013.06.19 Spring + WAS 기동시 ContextLoaderListener ClassNotFoundException 1

 

"Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.2"

 

오라클 jdbc driver를 Maven으로 등록해서 사용하려고 하는데, 오류가 발생하고 등록이 되지 않는 문제가 발생합니다.

 

설마 천하의 오라클 ojdbc14.jar 가 maven으로 저장소를 제공하지 않는것은 아닐텐데...

 

 

 

안되나? 해서 jar를 직접받아서 WEB-INF/lib에 연결시키려고 하다가 검색을 해보니 간단히 해결할수 있는 해결책이 있네요.

 

ojdbc14.jar 오류가 발생한 상태에서 pom.xml을 열고 다음과 같이 repositories를 추가 등록하면 됩니다.

 

... 중략

<properties>
  <java-version>1.6</java-version>
  <org.springframework-version>3.1.1.RELEASE</org.springframework-version>
  <org.aspectj-version>1.6.10</org.aspectj-version>
  <org.slf4j-version>1.6.6</org.slf4j-version>
 </properties>

<!-- add new repositories for oracle -->
 <repositories>
  <repository>
      <id>mesir-repo</id>
      <url>http://mesir.googlecode.com/svn/trunk/mavenrepo</url>
   </repository>
 </repositories>

 

... 중략

 

정상적으로 사용이 가능하지만 좀 불편한 방법인건 맞습니다.

 

 

 

 

 



SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
 at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:532)
 at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:514)
 at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:133)
 at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4727)
 at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285)
 at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
 at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
 at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
 at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)

 

 

eclipse에서 Tomcat 연동해서 실행을 시키는데, 멀쩡하던 프로젝트가 위와 같은 오류를 뱉어버리고는 구동되지 않는 현상이 발생합니다. 특히 maven plugin을 사용하는 프로젝트는 이런상황이 되면 더이상 진행 불가합니다.

 

천천히 오류메시지를 읽어내려가다 보면 기본 Spring 관련 ContextLoaderListener가 없다고 나옵니다. 뭔가 관련 클래스가 없는것이 확실합니다. 아니면 톰캣이 인식하지 못하고 있던가...

 

다음의 항목을 일단 체크해봅니다.

 

Project Explorer ==> 마우스 오른쪽 클릭 ==> Properties or Alt + Enter ==> Deployment Assembly

 

 

 

뭔가 있어야 할 위치에 있어야 할것이 없는것 같습니다. 뭐지? 잘 기억이 나지 않는다면 정상적으로 로딩되는 다른 유사한 프로젝트를 열어보십시오.

 

Maven Dependency 가 존재하지 않는다는 차이점을 발견할 것입니다. 왜 없어졌는지는 나중에 살펴보기로 하겠습니다.

 

 

 

Java Build Path Entiries 를 선택하고 NEXT 를 클릭합니다.

 

 

 

Maven Dependencies를 선택하고 Finish 를 클릭하면 완료가 됩니다.

 

 

 

이전에 없던 부분이 추가되었습니다.

 

이제 확인을 하고 다시 톰캣을 구동시켜보면 오류가 없어지고 정상적으로 로딩이 됨을 볼수 있습니다.

 

마찬가지로 다른 jar 관련 부분도 이런방식으로 추가합니다.

프로젝트별로 svn 구성을 다르게 하기도 하고 또 maven을 사용하지 않고 jar파일을 별도의 디렉토리에 넣어서 관리하곤 합니다. 이런경우에도 해당 디렉토리를  WEB-INF/lib 로 연결시켜주면 통캣이 로딩하면서 해당 jar를 인식하게 됩니다.