Ibm mobilefirst “接收”;名称[jdbc/WorklightDS]未在此上下文中绑定。找不到[jdbc]”;手动安装后出现错误
我们正在尝试在Rhel Linux上的Tomcat 7上使用一个DB(worklight)在服务器上手动安装worklight 5.06 enterprise。我们运行了create-worklight-oracle.sql脚本,并按照 但仍遇到一些问题。具体来说,tomcat与worklight DB对话的配置文件似乎存在问题:Ibm mobilefirst “接收”;名称[jdbc/WorklightDS]未在此上下文中绑定。找不到[jdbc]”;手动安装后出现错误,ibm-mobilefirst,Ibm Mobilefirst,我们正在尝试在Rhel Linux上的Tomcat 7上使用一个DB(worklight)在服务器上手动安装worklight 5.06 enterprise。我们运行了create-worklight-oracle.sql脚本,并按照 但仍遇到一些问题。具体来说,tomcat与worklight DB对话的配置文件似乎存在问题: SEVERE: com.worklight.server.bundle.project.messages:logger.projectStartFailed org.
SEVERE: com.worklight.server.bundle.project.messages:logger.projectStartFailed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'txManager' defined in URL [jar:file:/usr/share/java/tomcat7/worklight-jee-library.jar!/conf/core.xml]: Cannot resolve reference to bean 'brokerSessionFactory' while setting bean property 'entityManagerFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'brokerSessionFactory' defined in URL [jar:file:/usr/share/java/tomcat7/worklight-jee-library.jar!/conf/spring-server-core.xml]: Cannot resolve reference to bean 'rssBrokerDS' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'rssBrokerDS' defined in URL [jar:file:/usr/share/java/tomcat7/worklight-jee-library.jar!/conf/spring-server-core.xml]: Cannot resolve reference to bean 'worklight-direct' while setting bean property 'targetDataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'worklight-direct' defined in URL [jar:file:/usr/share/java/tomcat7/worklight-jee-library.jar!/conf/spring-server-core.xml]: Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: Name [jdbc/WorklightDS] is not bound in this Context. Unable to find [jdbc].
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:275)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1245)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
可能是愚蠢的错误,我对数据库配置做了以下操作:
在分解的worklight.war中添加了以下worklight.properties:
取消对这些行的注释:
wl.db.type=ORACLE
wl.db.url=jdbc:oracle:thin:@//DBSERVER:1521/SERVICE_NAME <-- changed from our internal names
wl.db.username=worklight
wl.db.password=worklight
wl.db.type=ORACLE
wl.db.url=jdbc:oracle:thin:@//DBSERVER:1521/SERVICE\u NAME-end-tag):
jdbc/WorklightDS
javax.sql.DataSource
容器
可能的解决办法:
问题在于使用JNDI连接——仅使用jdbc连接就可以了 对于tomcat 7上的Worklight 506,以下是一个示例配置:
在tomcat7server.xml中设置JDBC数据源(在部分)
这是更恰当的提问。这对我来说很有效。我使用的是maven资源过滤,出于某种原因,eclipse无法为MySQL数据库找到正确的jndi命名,尽管eclipse中的war文件和扩展的war文件中都显示了正确的设置。埃里克的解决方案对我有效。谢谢你,埃里克!
<Resource name="jdbc/WorklightDS"
auth="Container"
type="javax.sql.DataSource"
username="worklight"
password="worklight"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@//DBSERVER:1521/SERVICE_NAME"/>
<resource-ref>
<res-ref-name>jdbc/WorklightDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<Context docBase="worklight" path="/worklight">
<Resource auth="Container"
driverClassName="oracle.jdbc.driver.OracleDriver"
maxActive="80"
maxIdle="4"
maxWait="5000"
name="jdbc/WorkLightDS"
password="worklight"
type="javax.sql.DataSource"
url="jdbc:oracle:thin:@//DBSERVER:1521/SERVICE_NAME"
username="worklight"/>
</Context>
wl.db.type=ORACLE
wl.db.jndi.name=java:comp/env/jdbc/WorkLightDS