Java Drools 6.x Workbench无法部署到windows中的tomcat-没有向uniqueName';注册的资源;jdbc/jbpm';
我无法在tomcat(7.x版)中为Windows启动drools 6.2。这在我的linux机器上运行得很好。但在windows中,我不断遇到以下错误Java Drools 6.x Workbench无法部署到windows中的tomcat-没有向uniqueName';注册的资源;jdbc/jbpm';,java,tomcat,drools,kie-workbench,Java,Tomcat,Drools,Kie Workbench,我无法在tomcat(7.x版)中为Windows启动drools 6.2。这在我的linux机器上运行得很好。但在windows中,我不断遇到以下错误 Caused by: org.hibernate.service.jndi.JndiException: Unable to lookup JNDI name [java:comp/env/jdbc/jbpm] at org.hibernate.service.jndi.internal.JndiServiceImpl.locate(J
Caused by: org.hibernate.service.jndi.JndiException: Unable to lookup JNDI name [java:comp/env/jdbc/jbpm]
at org.hibernate.service.jndi.internal.JndiServiceImpl.locate(JndiServiceImpl.java:68)
at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.configure(DatasourceConnectionProviderImpl.java:116)
at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:85)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:184)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:156)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.buildJdbcConnectionAccess(JdbcServicesImpl.java:223)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:89)
at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:85)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:184)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:156)
at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1827)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1785)
at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:96)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:915)
... 94 more
Caused by: javax.naming.NamingException: no resource registered with uniqueName 'jdbc/jbpm', available resources: []
at bitronix.tm.resource.ResourceObjectFactory.getObjectInstance(ResourceObjectFactory.java:55)
at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:141)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
原因:org.hibernate.service.jndi.JndiException:无法查找jndi名称[java:comp/env/jdbc/jbpm]
位于org.hibernate.service.jndi.internal.JndiServiceImpl.locate(JndiServiceImpl.java:68)
位于org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.configure(DatasourceConnectionProviderImpl.java:116)
位于org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:85)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:184)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:156)
位于org.hibernate.engine.jdbc.internal.jdbcservicesiml.buildJdbcConnectionAccess(jdbcservicesiml.java:223)
位于org.hibernate.engine.jdbc.internal.jdbcservicesiml.configure(jdbcservicesiml.java:89)
位于org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:85)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:184)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:156)
位于org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1827)
位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1785)
位于org.hibernate.ejb.EntityManagerFactoryImpl。(EntityManagerFactoryImpl.java:96)
位于org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:915)
... 94多
原因:javax.naming.NamingException:没有向uniqueName“jdbc/jbpm”注册资源,可用资源:[]
位于bitronix.tm.resource.ResourceObjectFactory.getObjectInstance(ResourceObjectFactory.java:55)
位于org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:141)
位于javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
安全地包装在drools war文件中的是一个README.txt。从这里继续之前,请务必阅读。我遵循了大部分说明。在第一次尝试中,它在linux中运行得非常好。但对于windows,情况有点不同:
README.txt中的步骤3
*******************************************************************************
NOTE: jdbc/jbpm is the JNDI name used by tomcat distribution of the application
3. Define system properties for btm.root, bitronix config file, JBoss logging provider and others.
create setenv.sh (or setenv.bat) file inside TOMCAT_HOME/bin and add following:
CATALINA_OPTS="-Xmx512M -XX:MaxPermSize=512m -Dbtm.root=$CATALINA_HOME \
-Dbitronix.tm.configuration=$CATALINA_HOME/conf/btm-config.properties \
-Djbpm.tsr.jndi.lookup=java:comp/env/TransactionSynchronizationRegistry \
-Djava.security.auth.login.config=$CATALINA_HOME/webapps/kie-drools-wb/WEB-INF/classes/login.config \
-Dorg.jboss.logging.provider=jdk"
NOTE: this is an example for unix like systems for Windows $CATALINA_HOME needs to be replaced with windows env variable or absolute path
NOTE: java.security.auth.login.config value includes name of the folder in which application is deployed by default it assumes kie-drools-wb so ensure that matches real installation.
login.config file can be externalized as well meaning be placed outside of war file.
*****************************************************************
在上述注释中,这是:
注意:这是适用于Windows$CATALINA\u HOME的类unix系统的一个示例,需要将其替换为Windows环境变量或绝对路径
这适用于所有文件。在这里,如果你不是(像我一样)批处理和窗口方面的专家,事情就会变得复杂。因此,我将告诉你2件事,并给出我为使其工作所做的确切更改
resource.ds1.driverProperties.url=jdbc:h2:file:C:/Users/nanospeck/Downloads/apache-tomcat-7.0.54/temp2
我按照下面答案中的workbench自述说明进行了一些修改——我必须添加jvm选项,而不是通过setenv.bat,而是直接添加到tomcat启动选项中。 我还使用了完整路径,路径中没有%catalina_home%环境变量名
在windows中,setenv.bat应如下所示:
SET CATALINA_OPTS=-Xmx512M -XX:MaxPermSize=512m -Dbtm.root=%CATALINA_HOME% -Dbitronix.tm.configuration=%CATALINA_HOME%/conf/btm-config.properties -Djbpm.tsr.jndi.lookup=java:comp/env/TransactionSynchronizationRegistry -Djava.security.auth.login.config=%CATALINA_HOME%/webapps/kie-drools-wb/WEB-INF/classes/login.config -Dorg.jboss.logging.provider=jdk
谢谢我要强调的是,setenv.bat中CATALINA_OPTS的值不应在qoutes中关闭。
-Dbtm.root=C:\Program Files\Apache Software Foundation\Tomcat 8.0
-Dbitronix.tm.configuration=C:\Program Files\Apache Software Foundation\Tomcat 8.0\conf\btm-config.properties
-Djbpm.tsr.jndi.lookup=java:comp/env/TransactionSynchronizationRegistry
-Djava.security.auth.login.config=C:\Program Files\Apache Software Foundation\Tomcat 8.0\webapps\kie-drools-wb\WEB-INF\classes\login.config
-Dorg.jboss.logging.provider=jdk
SET CATALINA_OPTS=-Xmx512M -XX:MaxPermSize=512m -Dbtm.root=%CATALINA_HOME% -Dbitronix.tm.configuration=%CATALINA_HOME%/conf/btm-config.properties -Djbpm.tsr.jndi.lookup=java:comp/env/TransactionSynchronizationRegistry -Djava.security.auth.login.config=%CATALINA_HOME%/webapps/kie-drools-wb/WEB-INF/classes/login.config -Dorg.jboss.logging.provider=jdk