2012-11-13 109 views
0

我一直试图从oracle数据库中获取spring roo生成实体。Oracle与Spring roo

但是我一直得到不适用于oracle.jdbc.OracleDriver

错误JDBC驱动程序我安装我的ojdbc14.jar到我的本地Maven程序存储库

mvn install:install-file -Dfile=ojdbc14.jar -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.2 -Dpackaging=jar -DgeneratePom=true 

我已经检查我的pom.xml并将其指向正确的版本,当我mvn干净安装它编译正确。

我不确定我错过了什么。我已经使用MySql工作,但没有与Oracle合作。

我在做什么错?

Roo version 1.2.2.RELEASE

<dependency> 
    <groupId>com.oracle</groupId> 
    <artifactId>ojdbc14</artifactId> 
    <version>10.2.0.2</version> 
    <classifier /> 
</dependency> 

....

<dependency> 
    <groupId>com.oracle</groupId> 
    <artifactId>ojdbc14</artifactId> 
    <version>10.2.0.2</version> 
</dependency> 



#Updated at Tue Nov 13 22:43:01 NZDT 2012 
#Tue Nov 13 22:43:01 NZDT 2012 
database.driverClassName=oracle.jdbc.OracleDriver 
database.url=jdbc\:oracle\:thin\:@[server.ip]\:1521\:orcl 
database.username=MYUSER 
database.password=MYPASSWORD 

其中[server.ip]是数据库的IP地址

嗨,

我什么也没做与OSGI。

下载后提到的jar。 (从这里下载http://www.java2s.com/Code/Jar/b/DownloadbizaQutebndjar.htm

我运行了你给我的命令,但是它产生了一个错误。

ORACLE/SQL/converter_xcharset lx20001.glb lx20002.glb lx2001f.glb lx200b2.glb

一个错误 1:向[javax.naming中,javax.naming.directory,未解决的javax引用。 naming.spi,javax.net,javax.net.ssl,javax.resource,javax.resource.spi,javax.resource.spi.endpoint,javax.resource.spi.security,javax.security.auth,javax.security。 cert,javax.sql,javax.sql.rowset,javax.sql.rowset.spi,javax.transaction.xa,javax.xml.parsers,oracle.i18n.text.converter,oracle.ons,oracle.security.pki, org.w3c.dom,org.xml.sax,org.xml.sax.helpers]按Bundle-Classpath中的类(es)[Jar:ojdbc14.jar]:[orac oracle/jdbc/pool/OracleConnectionCacheManager $ 1.class,oracle/jdbc/rowset/OracleCachedRowSetReader.class,oracle/jdbc/pool/OracleRuntimeLoadBalancingEventHandlerThread $ 1.class,oracle/jdbc/rowset/OracleWebRowSet.class,oracle/jdbc/internal/OracleConnection。类,oracle/jdbc/connector/OracleManagedConnectionMetaData.class,oracle/jdbc/xa/OracleXAConnection.class,oracle/jdbc/xa/OracleXAException.class,oracle/jdbc/xa/OracleXADataSource.class,oracle/jdbc/pool/OracleOCIConnectionPool。类,oracle/jdbc/connector/OracleConnectionManager.class,oracle/jdbc/rowset/OracleJDBCRowSet.class,oracle/net/nt/TcpsConfigure.class,oracle/jdbc/rowset/OraclePredicate.class,oracle/jdbc/pool/OracleRuntimeLoadBalancingEventHandlerThread。类,oracle/jdbc/connector/OracleResourceAdapter.class,oracle/jdbc/pool/OracleConnectionCacheTimeOutThread.class,oracle/net/jndi/CustomSSLSocketFactory.class,oracle/jdbc/rowset/OracleRowSetMetaData.class,oracle/jdbc/driver/T4CXAResource。类,oracle/jdbc/rowset/Oracl eFilteredRowSet.class,oracle/jdbc/xa/OracleXid.class,oracle/jdbc/rowset/OracleWebRowSetXmlWriter.class,oracle/jdbc/rowset/OracleJoinable.class,oracle/jdbc/pool/OracleConnectionCacheImpl.class,oracle/jdbc/connector/OracleManagedConnectionFactory.class,ORACLE/JDBC /游泳池/ OracleFailoverEventHandlerThread $ 1.class中,Oracle/SQL /转换器/ CharacterConverterFactoryOGS。oracle/jdbc/rowset/OracleWebRowSetXmlWriterImpl.class,oracle/jdbc/driver/PhysicalConnection。这是Oracle数据库的一部分。 oracle/jdbc/xa/client/OracleXADataSource.class,oracle/net/jndi/TrustManagerSSLSocketFactory.class,oracle/jdbc/xa/client/OracleXAResource.class,oracle/jdbc/xa/OracleXAResource.class,oracle/jdbc/oracle/jdbc/oracle/jdbc/pool/OracleDataSourceFactory.class,oracle/net/oracle/jdbc/rowset/OracleRowSetListenerAdapter.class,oracle/jdbc/rowset/OracleWebRowSetXmlReaderDomHandler.class,oracle/jdbc/connector/OracleConnectionCacheEventListener.class, jndi/jndiAttrs.class,oracle/jdbc/rowset/OracleJoinRowSet.class,oracle/jdbc/rowset/OracleWebRowSetXmlReader.class,oracle/jdbc/xa/client/OracleXAHeteroConnection.class,oracle/jdbc/driver/T4CXAConnection.class,oracle/net/nt/CustomSSLSocketFactory.class,o racle /net/nt/TcpsNTAdapter.class,oracle/jdbc/rowset/OracleCachedRowSetWriter.class,oracle/jdbc/rowset/OracleCachedRowSet.class,oracle/jdbc/pool/OraclePooledConnection.class,oracle/jdbc/pool/OracleFailoverEventHandlerThread.class, oracle/jdbc/xa/client/OracleXAConnection.class,oracle/jdbc/pool/OracleConnectionPoolDataSource.class,oracle/jdbc/driver/LogicalConnection.class,oracle/jdbc/pool/OracleConnectionCacheManager.class,oracle/jdbc/rowset/OracleRowSet。 oracle/jdbc/oracle/jdbc/xa/client/OracleXAHeteroResource.class,oracle/jdbc/driver/oracle/jdbc/oracle/jdbc/oracle/jdbc/pool/OracleImplicitConnectionCache.class,oracle/jdbc/connector/OracleManagedConnection.class, OracleDriver.class,ORACLE/JDBC /行集/ OracleWebRowSetXmlReaderContHandler.class,ORACLE/JDBC /连接器/ OracleLocalTransaction.class,ORACLE /净/ JNDI/TrustManager.class,ORACLE/JDBC /池/ OracleDataSource.class]

所以我没有得到预期的结果。

对此有何想法?

感谢您的帮助。

+0

你可以在包含这个作为依赖项的'pom.xml'中发布该部分吗? =) – bhagyas

+0

 com.oracle \t \t ojdbc14 \t \t 10.2.0.2 \t \t  
madlad

+0

抱歉格式化无法正常工作 – madlad

回答

0

如果您正在使用mvn jetty:run运行过程中发现了错误,或者mvn tomcat:run你可以尝试添加依赖到Tomcat和Jetty配置:

<plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>tomcat-maven-plugin</artifactId> 
     <version>1.1</version> 
     <configuration> 
    <httpsPort>9443</httpsPort> 
     </configuration> 
     <dependencies> 
      <dependency> 
      <groupId>com.oracle</groupId> 
      <artifactId>ojdbc14</artifactId> 
      <version>10.2.0.2</version> 
      </dependency> 
     </dependencies> 
    </plugin> 
    <plugin> 
     <groupId>org.mortbay.jetty</groupId> 
     <artifactId>jetty-maven-plugin</artifactId> 
     <version>8.1.4.v20120524</version> 
     <configuration> 
      <webAppConfig> 
       <contextPath>/${project.name}</contextPath> 
      </webAppConfig> 
     </configuration> 
     <dependencies> 
      <dependency> 
      <groupId>com.oracle</groupId> 
      <artifactId>ojdbc14</artifactId> 
      <version>10.2.0.2</version> 
      </dependency> 
     </dependencies> 
    </plugin> 
+0

我在运行时没有遇到问题。我想能够调用“数据库内省...”和“数据库反向...”,所以我可以反向工程数据库,但春天roo是抛出异常。所以它的码头或tomcat的外域 – madlad

1

你创建OSGI的Oracle JDBC驱动程序(ojdbc)?从Roo docs

目前暂无开放源码JDBC驱动程序Oracle或DB2和 袋鼠不提供这些数据库OSGi的驱动程序。

您可以按照给定的文档说明。否则,biz.aQute.bnd.jar可帮助您创建OJDBC驱动程序的OSGi捆绑版本。

要做到这一点下载this压缩文件并解压缩。然后在同一个文件夹把你的ojdbc14.jar的,然后运行命令:

java -jar biz.aQute.bnd.jar wrap ojdbc14.jar 

我得到一个警告(多余的出口包装说明:oracle.net,甲骨文,oracle.jpub,oracle.security,甲骨文。核心]),我忽略。

由于这一步,你应该得到一个新的文件的结果:ojdbc14.bar

重命名为任何你想要的,但与.jar扩展名。例如“ojdbc14 OSGi的。坛子

roo> osgi start --url file:///tmp/ojdbc14-osgi.jar 
roo> database reverse engineer ... and so on 

只是有一点要注意安装在袋鼠的罐子。请记住在必要时编辑Roo生成的pom.xml中的ojdbc14 artifactId版本。

希望它有帮助。我已经完成了3个项目和3个数据库没有问题。

+0

看到我上面修改的问题,谢谢 – madlad

+0

我的答案已被编辑。现在它更有意义吗? – Pablo