Странная проблема - мы строим проект 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, устраняя подобные трудности.
Но любая помощь сейчас будет отличной - или предложения по отладке других вещей