Java 为什么TomEE无法创建JMS连接工厂资源?
我在尝试在TomEE服务器中创建Java 为什么TomEE无法创建JMS连接工厂资源?,java,jms,jndi,apache-tomee,tomee-7,Java,Jms,Jndi,Apache Tomee,Tomee 7,我在尝试在TomEE服务器中创建javax.jms.ConnectionFactory资源时遇到了一个问题。我正在使用tomee.xml文件编写资源条目 我能够创建javax.jms.Queue和主题,但不能创建这个。当我尝试创建JMS ConnectionFactory资源时,在ME启动时出错 下面是我的tomee.xml文件。为此,我参考了ApacheTomee文档。因为我应该能够创建这个资源 ResourceAdapter=默认JMS资源适配器 TransactionSupport=xa
javax.jms.ConnectionFactory
资源时遇到了一个问题。我正在使用tomee.xml
文件编写资源条目
我能够创建javax.jms.Queue
和主题,但不能创建这个。当我尝试创建JMS ConnectionFactory资源时,在ME启动时出错
下面是我的tomee.xml
文件。为此,我参考了ApacheTomee文档。因为我应该能够创建这个资源
ResourceAdapter=默认JMS资源适配器
TransactionSupport=xa
PoolMaxSize=10
PoolMinSize=0
ConnectionMaxWaitTime=5秒
连接最大时间=15分钟
e,提供者id=Tomcat安全服务)
2019年5月10日11:15:36.532 INFO[main]org.apache.openejb.config.ConfigurationFactory.configureService配置服务(id=默认事务管理器,类型=事务管理器,提供程序id=默认事务管理器)
2019年5月10日11:15:36.536 INFO[main]org.apache.openejb.config.ConfigurationFactory.configureService配置服务(id=Foo,type=Resource,provider id=Default JMS连接工厂)
2019年5月10日11:15:36.544 INFO[main]org.apache.openejb.util.OptionsLog.INFO使用“openejb.deployments.classpath=false”
2019年5月10日11:15:36.600信息[main]org.apache.openejb.assembler.classic.assembler.createRecipe创建事务管理器(id=默认事务管理器)
2019年5月10日11:15:36.864信息[main]org.apache.openejb.assembler.classic.assembler.createRecipe创建安全服务(id=Tomcat安全服务)
2019年5月10日11:15:37.484信息[main]org.apache.openejb.assembler.classic.assembler.createRecipe创建资源(id=Foo)
2019年5月10日11:15:37.520严重[main]org.apache.openejb.openejb$Instance。OpenEJB遇到致命错误,无法启动:汇编程序无法生成容器系统。
org.apache.openejb.OpenEJBException:未定义id为“默认JMS资源适配器”的现有资源适配器。
位于org.apache.openejb.assembler.classic.assembler.replaceResourceAdapterProperty(assembler.java:2942)
位于org.apache.openejb.assembler.classic.assembler.doCreateResource(assembler.java:3108)
位于org.apache.openejb.assembler.classic.assembler.createResource(assembler.java:2966)
位于org.apache.openejb.assembler.classic.assembler.buildContainerSystem(assembler.java:586)
位于org.apache.openejb.assembler.classic.assembler.build(assembler.java:487)
位于org.apache.openejb.openejb$Instance。(openejb.java:150)
位于org.apache.openejb.openejb.init(openejb.java:307)
位于org.apache.tomee.catalina.TomcatLoader.initialize(TomcatLoader.java:247)
位于org.apache.tomee.catalina.ServerListener.lifecycleEvent(ServerListener.java:168)
位于org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
位于org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:395)
位于org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:108)
位于org.apache.catalina.startup.catalina.load(catalina.java:632)
位于org.apache.catalina.startup.catalina.load(catalina.java:655)
位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
位于java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
位于java.base/java.lang.reflect.Method.invoke(Method.java:567)
位于org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:309)
位于org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492)
2019年5月10日11:15:37.524严重[main]org.apache.tomee.catalina.ServerListener.lifecycleEvent-tomee Listener无法启动OpenEJB
org.apache.openejb.OpenEJBException:未定义id为“默认JMS资源适配器”的现有资源适配器。
位于org.apache.openejb.assembler.classic.assembler.replaceResourceAdapterProperty(assembler.java:2942)
位于org.apache.openejb.assembler.classic.assembler.doCreateResource(assembler.java:3108)
位于org.apache.openejb.assembler.classic.assembler.createResource(assembler.java:2966)
位于org.apache.openejb.assembler.classic.assembler.buildContainerSystem(assembler.java:586)
位于org.apache.openejb.assembler.classic.assembler.build(assembler.java:487)
位于org.apache.openejb.openejb$Instance。(openejb.java:150)
位于org.apache.openejb.openejb.init(openejb.java:307)
位于org.apache.tomee.catalina.TomcatLoader.initialize(TomcatLoader.java:247)
位于org.apache.tomee.catalina.ServerListener.lifecycleEvent(ServerListener.java:168)
位于org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
位于org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:395)
位于org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:108)
位于org.apache.catalina.startup.catalina.load(catalina.java:632)
位于org.apache.catalina.startup.catalina.load(catalina.java:655)
位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
位于java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
位于java.base/java.lang.reflect.Method.invoke(Method.java:567)
位于org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:309)
位于org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492)
2019年5月10日11:15:37.576信息[main]jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke初始化处理时间为8796毫秒
2019年5月10日11:15:37.788信息[main]jdk.internal.reflect.Delegat
e, provider-id=Tomcat Security Service)
10-May-2019 11:15:36.532 INFO [main] org.apache.openejb.config.ConfigurationFactory.configureService Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
10-May-2019 11:15:36.536 INFO [main] org.apache.openejb.config.ConfigurationFactory.configureService Configuring Service(id=Foo, type=Resource, provider-id=Default JMS Connection Factory)
10-May-2019 11:15:36.544 INFO [main] org.apache.openejb.util.OptionsLog.info Using 'openejb.deployments.classpath=false'
10-May-2019 11:15:36.600 INFO [main] org.apache.openejb.assembler.classic.Assembler.createRecipe Creating TransactionManager(id=Default Transaction Manager)
10-May-2019 11:15:36.864 INFO [main] org.apache.openejb.assembler.classic.Assembler.createRecipe Creating SecurityService(id=Tomcat Security Service)
10-May-2019 11:15:37.484 INFO [main] org.apache.openejb.assembler.classic.Assembler.createRecipe Creating Resource(id=Foo)
10-May-2019 11:15:37.520 SEVERE [main] org.apache.openejb.OpenEJB$Instance.<init> OpenEJB has encountered a fatal error and cannot be started: Assembler failed to build the container system.
org.apache.openejb.OpenEJBException: No existing resource adapter defined with id 'Default JMS Resource Adapter'.
at org.apache.openejb.assembler.classic.Assembler.replaceResourceAdapterProperty(Assembler.java:2942)
at org.apache.openejb.assembler.classic.Assembler.doCreateResource(Assembler.java:3108)
at org.apache.openejb.assembler.classic.Assembler.createResource(Assembler.java:2966)
at org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:586)
at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:487)
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:150)
at org.apache.openejb.OpenEJB.init(OpenEJB.java:307)
at org.apache.tomee.catalina.TomcatLoader.initialize(TomcatLoader.java:247)
at org.apache.tomee.catalina.ServerListener.lifecycleEvent(ServerListener.java:168)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:395)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:108)
at org.apache.catalina.startup.Catalina.load(Catalina.java:632)
at org.apache.catalina.startup.Catalina.load(Catalina.java:655)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:309)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492)
10-May-2019 11:15:37.524 SEVERE [main] org.apache.tomee.catalina.ServerListener.lifecycleEvent TomEE Listener can't start OpenEJB
org.apache.openejb.OpenEJBException: No existing resource adapter defined with id 'Default JMS Resource Adapter'.
at org.apache.openejb.assembler.classic.Assembler.replaceResourceAdapterProperty(Assembler.java:2942)
at org.apache.openejb.assembler.classic.Assembler.doCreateResource(Assembler.java:3108)
at org.apache.openejb.assembler.classic.Assembler.createResource(Assembler.java:2966)
at org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:586)
at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:487)
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:150)
at org.apache.openejb.OpenEJB.init(OpenEJB.java:307)
at org.apache.tomee.catalina.TomcatLoader.initialize(TomcatLoader.java:247)
at org.apache.tomee.catalina.ServerListener.lifecycleEvent(ServerListener.java:168)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:395)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:108)
at org.apache.catalina.startup.Catalina.load(Catalina.java:632)
at org.apache.catalina.startup.Catalina.load(Catalina.java:655)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:309)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492)
10-May-2019 11:15:37.576 INFO [main] jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke Initialization processed in 8796 ms
10-May-2019 11:15:37.788 INFO [main] jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke Starting service [Catalina]
10-May-2019 11:15:37.788 INFO [main] jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke Starting Servlet Engine: Apache Tomcat/8.5.32
10-May-2019 11:15:37.816 INFO [localhost-startStop-1] jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke Deploying web application directory [D:\servers_\apache-tomee-7.1.0-plus\apache-tomee-plus-7.1.0\webapps\docs]
10-May-2019 11:15:37.848 INFO [localhost-startStop-1] org.apache.tomee.catalina.TomcatWebAppBuilder.init ------------------------- localhost -> /docs
WARNING: An illegal reflective access operation has occurred
ConnectionMaxWaitTime = 5 seconds
ConnectionMaxIdleTime = 15 Minutes
ConnectionMaxWaitMilliseconds = 5000
ConnectionMaxIdleMinutes = 15
<Resource id="myCustomizedJmsConnectionFactory" type="javax.jms.ConnectionFactory">
connectionMaxWaitMilliseconds = 5000
connectionMaxIdleMinutes = 15
poolMaxSize = 10
poolMinSize = 0
resourceAdapter = Default JMS Resource Adapter
transactionSupport = xa
</Resource>
<Resource id="Default JMS Resource Adapter" type="ActiveMQResourceAdapter">
BrokerXmlConfig = broker:(tcp://localhost:61616)?persistent=true
ServerUrl = tcp://localhost:61616
DataSource = MyDataSource
</Resource>
<Resource id="Default JMS Resource Adapter" type="ActiveMQResourceAdapter">...
<?xml version="1.0" encoding="UTF-8"?>
<tomee>
<!-- see http://tomee.apache.org/containers-and-resources.html -->
<!-- activate next line to be able to deploy applications in apps -->
<!-- <Deployments dir="apps" /> -->
<Resource id="MyJmsResourceAdapter" type="ActiveMQResourceAdapter">
BrokerXmlConfig =broker:(tcp://localhost:61616)
ServerUrl = tcp://localhost:61616
</Resource>
<Resource id="MyJmsConnectionFactory" type="javax.jms.ConnectionFactory">
ResourceAdapter = MyJmsResourceAdapter
</Resource>
<Container id="MyJmsMdbContainer" ctype="MESSAGE">
ResourceAdapter = MyJmsResourceAdapter
</Container>
<Resource id="MyQueue" type="javax.jms.Queue"/>
</tomee>
<?xml version="1.0" encoding="UTF-8"?>
<tomee>
<!-- see http://tomee.apache.org/containers-and-resources.html -->
<!-- activate next line to be able to deploy applications in apps -->
<!-- <Deployments dir="apps" /> -->
<Resource id="MyJmsResourceAdapter" type="ActiveMQResourceAdapter">
# Do not start the embedded ActiveMQ broker
BrokerXmlConfig =
ServerUrl = tcp://localhost:61616
</Resource>
<Resource id="MyJmsConnectionFactory" type="javax.jms.ConnectionFactory">
ResourceAdapter = MyJmsResourceAdapter
</Resource>
<Container id="MyJmsMdbContainer" ctype="MESSAGE">
ResourceAdapter = MyJmsResourceAdapter
</Container>
<Resource id="MyQueue" type="javax.jms.Queue"/>
</tomee>