0

SQLタスクを実行するためにantを使用しています-Oracle接続文字列でLDAPSを使用するまでは正常に機能していました。以下で説明する Oracle LDAPS 接続文字列を使用すると、例外がスローされます -ClassNotFoundException: oracle.net.jndi.CustomSSLSocketFactory. We tried ojdbc6.jar and ojdbc14.jar - but of no use. (ant build with -v shows it is referring to ojdbc6.jar or ojdbc14.jar)

同じ接続文字列を使用して、'Oracle SQL Developer' 経由で接続できます。basePath を変更して sqldeveloper\jdbc\lib パスを含めましたが、それでも同じ classnotfoundexception が発生します。お知らせ下さい。

ありがとうクマール

環境仕様

1. Oracle: 10.2.0.4
2. Java JDK: 1.6 (Oracle GlassFish)
3. ojdbc6.jar (Oracle Database 11g Release 2 (11.2.0.3) JDBC Drivers)
4. ojdbc14.jar (Oracle Database 10g Release 2 (10.2.0.4) JDBC Drivers )
5. OS: Windows 7 64 bit

LDAPS 接続文字列

jdbc:oracle:thin:@ldaps://${lDAP-server}:${ldap-port}/${Schema},cn=OracleContext,dc=xxx,dc=com"

SQL アリ タスク

< sql driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@ldaps://${lDAP-server}:${ldap-port}/${Schema},cn=OracleContext,dc=xxxx,dc=com" userid="${this.service.db.user}" password="${this.service.db.password}" classpathref="base.classpath"> 
SELECT * FROM SOMETHING;
</sql>

完全な例外トレース:

BUILD FAILED
The following error occurred while executing
 this line:
java.sql.SQLRecoverableException: IO Error:
JNDI Package failure **javax.naming.CommunicationException**: servername:port (changed) [Root exception is **java.lang.ClassNotFoundException: oracle.net.jndi.CustomSSLSocketFactory**]
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:458)
        at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:546)
        at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:236)
        at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)
        at org.apache.tools.ant.taskdefs.JDBCTask.getConnection(JDBCTask.java:370)
        at org.apache.tools.ant.taskdefs.SQLExec.getConnection(SQLExec.java:942)
        at org.apache.tools.ant.taskdefs.SQLExec.execute(SQLExec.java:614)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
        at net.sf.antcontrib.logic.IfTask.execute(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.TaskAdapter.execute(TaskAdapter.java:154)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
        at net.sf.antcontrib.logic.IfTask.execute(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.TaskAdapter.execute(TaskAdapter.java:154)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:392)
        at org.apache.tools.ant.Target.performTasks(Target.java:413)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
        at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
        at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:442)
        at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:392)
        at org.apache.tools.ant.Target.performTasks(Target.java:413)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
        at org.apache.tools.ant.Main.runBuild(Main.java:811)
        at org.apache.tools.ant.Main.startAnt(Main.java:217)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Caused by: oracle.net.ns.NetException: JNDI Package failure javax.naming.CommunicationException: server:port (changed) [Root exception is java.lang.ClassNotFoundException: oracle.net.jndi.CustomSSLSocketFactory]
        at oracle.net.jndi.JndiAttrs.<init>(JndiAttrs.java:161)
        at oracle.net.resolver.AddrResolution.<init>(AddrResolution.java:193)
        at oracle.net.ns.NSProtocol.connect(NSProtocol.java:219)
        at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1102)
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:320)
        ... 64 more
4

1 に答える 1

0

「モーテン」を使用して sqlplus 経由で sql を実行すると、このエラーが発生しました。ojdbc5.jar (Oracle から) を使用して解決しました。これをクラスパスに含めます。JVM が同じバージョン (JDK 1.5) であることを確認します。

于 2014-12-11T13:33:51.463 に答える