Oracle 드라이버를 인스턴스화하면 invocationTargetexception이 발생합니다

StackOverflow https://stackoverflow.com/questions/911052

문제

Oracle 데이터베이스를 사용하는 간단한 웹 서비스가 있습니다. 그러나 내부적으로 서비스를 테스트 할 때는 제대로 작동하지만 클라이언트를 통해 웹 서비스를 호출하여 (동일한 컴퓨터에서 다른 전쟁에서) invocialtargetexception을 던졌습니다. 마침내 Oracledriver를 인스턴스화하는 데 문제가 있음을 알게되었습니다. 예외는 전혀 발생하지 않으므로 오류가 무엇인지 알 수 없습니다.

Googling은 Oracle.jdbc.driver.oracledriver 대신 Oracle.jdbc.driver.oracledriver를 사용하는 솔루션 만 제공했지만 아무것도 수정하지 않는 것 같습니다. 내가 사용하고있는 항아리는 OJDBC14.jar이며, 내가 알 수있는 한, 웹 서비스의 클래스 경로에 올바르게 포함되어 있습니다. 간단한 기본 방법으로 서비스를 테스트 할 때 작동하기 때문에 작동합니다.

편집 : invocationTargetexception은 Axis Server의 축소판에 의해 생성됩니다. invocationTargeteXception은 래퍼 클래스이며 .getCause ()를 사용하여 예외를 추출하려고 시도합니다.

Jboss를 사용하여 서비스를 배포하고 있으며 소스에 대한 Driver Jar 파일을 소스에 포함시키지 않았지만 서버에 대해서는 포함하지 않았습니다. /jboss/server/default/lib에 드라이버를 포함하여 해결되었습니다.

도움이 되었습니까?

해결책

2 전쟁? 나는 당신의 ojdbc.jar가 웹 서비스 전쟁의 Web-inf/lib 내부에 있다고 가정합니다.

어쩌면 당신의 전쟁은 귀 안에있을 수 있으므로 Difest.mf의 운전자를 참조해야합니다.

더 많은 정보: http://java.sun.com/j2ee/verified/packaging.html

다른 팁

더 많은 정보가 없으면 구체적인 제안을 제공하기가 어렵습니다. 그러나 기본 OCI 라이브러리를 통해 연결하려고 시도하고 시스템에 설치된 라이브러리를 찾지 못하고 invocationTargetexception을 던지는 Oracle 드라이버에 대한 경험이있었습니다. 이것은 매우 모호한 기억에서 비롯되므로 마일리지는 거의 확실하게 다를 것입니다.

오랜 시간이 지났지 만 메모리가 저에게 서비스를 제공하는 경우 연결 URL이 잘못 구성된 경우가 있었으며, OracledRiver (또는 래퍼 중 하나)가 가능한 연결 방법을 통해 반복하여 작동하는 방법을 찾으려고 노력했습니다. URL이 올바르게 구성된 경우 OCI 시도에 도달하지 못했지만 (얇은 연결 방법 시도가 먼저 왔음) 연결 URL이 잘못 구성되면 얇은 시도가 실패하여 OCI 시도가 발생하여 실패했습니다. OCI 클라이언트가 호스트에 설치되지 않았기 때문에 (invocationTargetexception을 초래합니다.)

따라서 확인해야 할 사항이 있습니다.

  1. 연결 URL이 유효합니까? 두 장소에서 동일한 연결 URL을 사용하는 경우 두 프로세스가 동일한 NIC에 바인딩되어 있는지 확실합니까? 그들이 다른 NIC에 결합하는 경우, 동일한 호스트에서도 연결의 이상한 점을 유발할 수 있습니다.
  2. 두 경우 모두 환경이 동일합니까 - OCI 클라이언트가 개발 환경에서 사용되는 경우에 따라 몇 가지 환경 변수가있을 수 있습니다. 서블릿 컨테이너가 실행중인 환경에서 이러한 환경 변수가 동일하게 설정되지 않으면 다른 동작을 기대할 것입니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top