2016-05-16 59 views
1

以下のコードを使用して、Oracle 11gに接続するために休止状態をSpringに統合する方法を学習しています。しかし、数日から同じエラーで立ち往生してください。これを解決するのを手伝ってください。私は同じエラーで質問に与えられた他の答えに記載されているさまざまなソリューションを試してみましたが、運はありません。java.sql.SQLException:コールで無効な引数

関連するすべてのソリューションを歓迎します。

おかげで、

Nisha

spring.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:aop="http://www.springframework.org/schema/aop" 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd 
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd"> 

    <bean id="serverDatasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" > 
      <value>oracle.jdbc.driver.OracleDriver</value> 
     </property> 
     <property name="url" > 
      <value>jdbc:oracle:thin:@10.23.225.22:1521:PRACTICE</value> 
     </property> 
     <!-- <property name="username" value="SCOTT"/> 
     <property name="password" value="tiger"/>--> 
    </bean> 

    <bean id="dataSource" class="org.springframework.jdbc.datasource.UserCredentialsDataSourceAdapter"> 
     <property name="targetDataSource" ref="serverDatasource"/> 
     <property name="username"><value>SCOTT</value></property> 
     <property name="password"><value>tiger</value></property> 
    </bean> 


    <!-- Hibernate 5 SessionFactory bean definition --> 
    <bean id="Hibernate5SessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource"/> 
     <property name="annotatedClasses"> 
      <list> 
       <value>com.springHibernate.model.Person</value> 
      </list> 
     </property> 
     <property name="HibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop> 
       <prop key="hibernate.current_session_context_class">thread</prop> 
       <prop key="hibernate.show_sql">true</prop> 
      </props> 
     </property> 
    </bean> 

    <bean id="personDao" class="com.springHibernate.dao.PersonDaoImpl"> 
     <property name="sessionFactory" ref="Hibernate5SessionFactory"></property> 
    </bean> 
</beans> 

主な方法:SpringHibernateMain

 package com.springHibernate.main; 

     import java.util.List; 
     import org.springframework.context.support.ClassPathXmlApplicationContext; 
     import com.springHibernate.dao.PersonDao; 
     import com.springHibernate.model.Person; 

     public class SpringHibernateMain { 

      public static void main(String[] args) { 

       ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); 

       PersonDao personDao = context.getBean(PersonDao.class); 

       Person p = new Person(); 

       p.setId(1); 
       p.setName("John"); 
       p.setCountry("United States"); 

       personDao.save(p); 

       List<Person> person = personDao.listPerson(); 

       for(Person p1 : person){ 
        System.out.println("Person List:" + p1); 
       } 

      } 

     } 

スタックトレース:

ERROR: Unable obtain JDBC Connection 
java.sql.SQLException: invalid arguments in call 
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) 
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) 
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208) 
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:236) 
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414) 
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165) 
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35) 
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:153) 
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:144) 
    at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:155) 
    at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:130) 
    at org.springframework.jdbc.datasource.UserCredentialsDataSourceAdapter.doGetConnection(UserCredentialsDataSourceAdapter.java:162) 
    at org.springframework.jdbc.datasource.UserCredentialsDataSourceAdapter.getConnection(UserCredentialsDataSourceAdapter.java:145) 
    at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122) 
    at org.hibernate.internal.SessionFactoryImpl$3.obtainConnection(SessionFactoryImpl.java:643) 
    at org.hibernate.hql.spi.id.IdTableHelper.executeIdTableCreationStatements(IdTableHelper.java:67) 
    at org.hibernate.hql.spi.id.global.GlobalTemporaryTableBulkIdStrategy.finishPreparation(GlobalTemporaryTableBulkIdStrategy.java:125) 
    at org.hibernate.hql.spi.id.global.GlobalTemporaryTableBulkIdStrategy.finishPreparation(GlobalTemporaryTableBulkIdStrategy.java:42) 
    at org.hibernate.hql.spi.id.AbstractMultiTableBulkIdStrategyImpl.prepare(AbstractMultiTableBulkIdStrategyImpl.java:88) 
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:451) 
    at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:465) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:708) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:724) 
    at org.springframework.orm.hibernate5.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:416) 
    at org.springframework.orm.hibernate5.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:401) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:753) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) 
    at com.springHibernate.main.SpringHibernateMain.main(SpringHibernateMain.java:14) 

May 16, 2016 12:59:16 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions 
WARN: SQL Error: 17433, SQLState: null 
May 16, 2016 12:59:16 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions 
ERROR: invalid arguments in call 
Exception in thread "main" org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection 
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47) 
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111) 
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97) 
    at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:87) 
    at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getPhysicalConnection(LogicalConnectionManagedImpl.java:109) 
    at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getConnectionForTransactionManagement(LogicalConnectionManagedImpl.java:227) 
    at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.begin(LogicalConnectionManagedImpl.java:234) 
    at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.begin(JdbcResourceLocalTransactionCoordinatorImpl.java:214) 
    at org.hibernate.engine.transaction.internal.TransactionImpl.begin(TransactionImpl.java:52) 
    at org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1525) 
    at com.springHibernate.dao.PersonDaoImpl.save(PersonDaoImpl.java:25) 
    at com.springHibernate.main.SpringHibernateMain.main(SpringHibernateMain.java:24) 
Caused by: java.sql.SQLException: invalid arguments in call 
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) 
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) 
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208) 
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:236) 
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414) 
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165) 
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35) 
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:153) 
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:144) 
    at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:155) 
    at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:130) 
    at org.springframework.jdbc.datasource.UserCredentialsDataSourceAdapter.doGetConnection(UserCredentialsDataSourceAdapter.java:162) 
    at org.springframework.jdbc.datasource.UserCredentialsDataSourceAdapter.getConnection(UserCredentialsDataSourceAdapter.java:145) 
    at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122) 
    at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:386) 
    at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:84) 
    ... 8 more 
+0

db urlを設定するデータソースにユーザ名/パスワードのプロパティを移動してみてください – Nadir

+0

あなたはOracle 9の方言を使用していますが、これが問題である可能性があります。 – jr593

+0

私は最初にNadirだけが同じエラーを受けていたように試しました。 – Nisha

答えて

0

未満であるべきであるHibernateのzipファイルのlibに/必要なフォルダ内だけのjarファイルを追加することで、最後に、これを解決しました。それまでlibフォルダにすべてのjarファイルを追加しました。

0

代わり

PersonDao personDao = context.getBean(PersonDao.class); 

それがスタックトレースに記載されているとおりspring.xml

+0

コードをデバッグし、ClassPathXmlApplicationContextコンテキスト= new ClassPathXmlApplicationContext( "spring.xml") が実行された後で、次の行( )を実行する前にエラーが発生していることが判明しましたPersonDao personDao = context.getBean(PersonDao.class) – Nisha

0

PersonDao personDao = (PersonDao) context.getBean("personDao"); 

だからあなたのビーンIDで試してみてください接続できません。データソースのドライバ名で

invalid arguments in call 
Exception in thread "main" org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection 

よう

  <value>oracle.jdbc.OracleDriver</value> 
+0

こんにちはVijendra、私は変更を提案しましたが、同じ問題に直面しています – Nisha

+0

こんにちはNishaはあなたのpom.xmlファイルを共有できますか?私はあなたのspring.xm設定を使用して自分のデータベースに接続しようとしましたが、私は接続を取得することができます。 –

+0

私はmavenを使用していません。だから私はpom.xmlを持っていない:| – Nisha