2015-06-25 3 views
1

Iam Использование сервера Glassfish 3 для запуска веб-службы. Пул соединений реализован на сервере и доступен для ping Database.Glassfish 3 Connection Pool throws java.sql.SQLSyntaxErrorException: ORA-00933

Соединение получено с сервера, но оно выбрасывает java.sql.SQLSyntaxErrorException: ORA-00933: SQL command not properly ended Исключение во время работы PreparedStatement.

Glassfish-не выбрасывают никаких исключений

запроса берется из свойства файла

QUERY=select * from TABLE where SYSTEMID=?1 

Используя два отдельных классов Java для получения соединения и дальнейшей обработки

JDBCUtil.java

public static Connection connectionFromConnectionPool() 
     throws NamingException, SQLException { 
    Context initCtx = new InitialContext(); 
    DataSource dataSource = (DataSource) initCtx.lookup(PropertyFileReader 
          .getPropertyValue("connectionPool.JNDI.name")); 
    Connection connection = (Connection) dataSource.getConnection(); 
    if (connection != null) { 
     logger.info("Received Connection"); 
    } else { 
     logger.info("No Connection Received"); 
    } 

    return connection; 
} 

DAO.java

ResultSet resultSet = null; 
    PreparedStatement preparedStatement = null; 
    Connection connection = null; 
    try { 
     connection = JDBCUtil.connectionFromConnectionPool(); 

     if (connection != null) { 
      preparedStatement = connection 
        .prepareStatement(PropertyFileReader 
          .getPropertyValue("QUERY")); 
      if (preparedStatement != null) { 
       preparedStatement.setString(1, "systemID"); 
       resultSet = preparedStatement.executeQuery();  // line No:56 

Log генерироваться:

18:13:35,328 INFO - *****.JDBCUtil.connectionFromConnectionPool(JDBCUtil.java:38) - Received Connection 
18:13:35,397ERROR - *****(DAO.java:81) - **************************** :: 
java.sql.SQLSyntaxErrorException: ORA-00933: SQL command not properly ended 

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:440) 
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396) 
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:837) 
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:445) 
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191) 
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:523) 
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207) 
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:863) 
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1153) 
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1275) 
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3576) 
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3620) 
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1491) 
at com.sun.gjc.spi.jdbc40.PreparedStatementWrapper40.executeQuery(PreparedStatementWrapper40.java:642) 
at *************************************(DAO.java:56) 
.................... 

ojdbc6.jar помещен в glassfish3 \ GlassFish \ Lib и glassfis h4 \ glassfish \ lib

ответ

0

Проверьте, есть ли другой ojdbc jar внутри серверной папки, особенно внутри папки домена, которую вы используете.

Если в папке сервера есть разные банки или разные версии jar, это может привести к таким ошибкам.

Для бывших: glassfish3 \ GlassFish \ домены \ domain1 \ Lib ...

Если есть баночка файлы различных версий, заменить их все с той же версии.

Я использую Glassfish4. Я держал банку ojdbc только в glassfish4 \ glassfish \ lib, который отлично работает для меня.

+0

проблема решена после замены сервера на новую. – MeVenk

 Смежные вопросы

  • Нет связанных вопросов^_^