grails war java.sql.SQLException: Ioception: неверный числовой формат для номера порта - PullRequest
0 голосов
/ 27 мая 2011

Странная проблема - мы строим проект grails на окнах, и он отлично работает, но на машине с Unix получаю:

java.sql.SQLException: Io exception: Invalid number format for port number (stack trace below)

Довольно странно, так как мы определяем источник данных, который должен поступить изjndi:

DataSource.groovy: envName { dataSource { dbCreate = "none" jndiName = "java:comp/env/jdbc/ourDataSource" dialect="org.hibernate.dialect.Oracle10gDialect" }

Jndi обрабатывается параметром context.xml на сервере приложений: <Resource name="jdbc/ourDataSource" auth="Container" type="javax.sql.DataSource" username="OUR_DB_USERNAME" password="OUR_DB_PASSWORD" driverClassName="oracle.jdbc.OracleDriver" url="jdbc:oracle:thin:@<em>host</em>:1521:<em>sid</em>" maxActive="8" maxIdle="4"/>

Мы ожидаемстроить, чтобы быть независимым от окружающей среды.Изучение дельт:

Оба используют несколько разные версии JDK - 1.6.0_21 в Unix, 1.6.0_22 в Windows.Предположим, что это не будет фактором.

Мы используем Grails 3.5.1 для обоих.

Отладка Я расширил WAR-файлы, сгенерированные grails, на машине с Unix и на машине с Windows, и по умолчанию он не включал много JAR-зависимостей в WEB-INF / lib, но без жалоб.Я добавил их, установив JAR-зависимость в Config.groovy, чтобы они теперь присутствовали, но сборка WEB-INF / классы, похоже, отличаются.

Кончаются идеи - любые предложения будут высоко оценены.

команда grails для сборки на Unix: grails -Dgrails.env=envName war OUR.WAR

Полная трассировка стека: ERROR initWebApplicationContext, Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'messageSource': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Cannot resolve reference to bean 'lobHandlerDetector' while setting bean property 'lobHandler'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'lobHandlerDetector': Invocation of init method failed; nested exception is org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Io exception: Invalid number format for port number) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Cannot resolve reference to bean 'lobHandlerDetector' while setting bean property 'lobHandler'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'lobHandlerDetector': Invocation of init method failed; nested exception is org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Io exception: Invalid number format for port number) ... 5 more Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Cannot resolve reference to bean 'lobHandlerDetector' while setting bean property 'lobHandler'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'lobHandlerDetector': Invocation of init method failed; nested exception is org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Io exception: Invalid number format for port number) ... 5 more Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'lobHandlerDetector': Invocation of init method failed; nested exception is org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Io exception: Invalid number format for port number) ... 5 more Caused by: org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Io exception: Invalid number format for port number) ... 5 more Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Io exception: Invalid number format for port number) at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1225) at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880) at $Proxy22.getMetaData(Unknown Source) ... 5 more Caused by: java.sql.SQLException: Io exception: Invalid number format for port number 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:255) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387) at oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:439) at oracle.jdbc.driver.T4CConnection.(T4CConnection.java:165) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801) at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38) at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294) at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1247) at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1221) ... 7 more

К сожалению, все сборки java / maven были простой миграцией - но в grails используется ivy, а неmaven - надеюсь, что в будущем ребята из vmware / springsource обеспечат полную интеграцию с maven, устраняя подобные трудности.

Но любая помощь сейчас будет отличной - или предложения по отладке других вещей

1 Ответ

1 голос
/ 27 мая 2011

Решение: добавить точку останова java.sql.SQLException

Я решил это. В eclipse добавлена ​​точка останова на исключении java.sql.SQLException. Просматривая стек, он обнаружил неправильную конфигурацию в DataSource.groovy; в свою очередь аргумент -Dgrails.env в Гудзоне не был подхвачен. Болезненные.

...