美好的一天,
我有一个部署在 WAS 服务器上的 Web 应用程序。部署后,我可以成功浏览应用程序,一切看起来都正常。
但是,当我检查
ffdc
日志时,我发现了很多错误,如下:
[3/20/19 14:52:45:603 MYT] FFDC Exception:com.ibm.msg.client.jms.DetailedJMSException SourceId:put(Object arg0, Object arg1) ProbeId:XJ00A001 Reporter:java.util.HashMap@8604de48
com.ibm.msg.client.jms.DetailedJMSException: JMSMQ1112: The operation for a domain specific object was not valid. The operation 'setBrokerPubQ()' is not valid for type 'com.ibm.mq.jms.MQQueueConnectionFactory'.
A JMS application attempted to perform an operation on domain specific object, but the operation is valid only for the other messaging domain.
Make sure that the JMS objects and operations used by your application are relevant for the required messaging domain. If your application uses both messaging domains, consider using domain independent objects throughout the application.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:86)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:58)
at java.lang.reflect.Constructor.newInstance(Constructor.java:542)
at com.ibm.msg.client.commonservices.j2se.NLSServices.createException(NLSServices.java:314)
at com.ibm.msg.client.commonservices.nls.NLSServices.createException(NLSServices.java:228)
at com.ibm.msg.client.wmq.factories.WMQConnectionFactory$WMQBrokerPubQPropertyValidator.validate(WMQConnectionFactory.java:267)
at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.validate(WMQConnectionFactory.java:7360)
at com.ibm.msg.client.jms.internal.JmsPropertyContextImpl.setObjectPropertyInternal(JmsPropertyContextImpl.java:454)
at com.ibm.msg.client.jms.internal.JmsPropertyContextImpl.setObjectProperty(JmsPropertyContextImpl.java:616)
at com.ibm.msg.client.jms.internal.JmsPropertyContextImpl.put(JmsPropertyContextImpl.java:874)
at com.ibm.msg.client.jms.internal.JmsPropertyContextImpl.put(JmsPropertyContextImpl.java:46)
at org.springframework.beans.TypeConverterDelegate.convertToTypedMap(TypeConverterDelegate.java:615)
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:178)
at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:447)
at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:499)
at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:493)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.convertForProperty(AbstractAutowireCapableBeanFactory.java:1371)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1330)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at com.ibm.ws.webcontainer.webapp.WebApp.notifyServletContextCreated(WebApp.java:1732)
at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:415)
at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:88)
at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:171)
at com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.java:904)
at com.ibm.ws.webcontainer.WSWebContainer.addWebApplication(WSWebContainer.java:789)
at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:427)
at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:719)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1201)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1390)
at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:639)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:979)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:785)
at com.ibm.ws.runtime.component.ApplicationMgrImpl$5.run(ApplicationMgrImpl.java:2220)
at com.ibm.ws.security.auth.ContextManagerImpl.runAs(ContextManagerImpl.java:5487)
at com.ibm.ws.security.auth.ContextManagerImpl.runAsSystem(ContextManagerImpl.java:5613)
at com.ibm.ws.security.core.SecurityContext.runAsSystem(SecurityContext.java:255)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:2225)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:435)
at com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:123)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:378)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access$500(CompositionUnitMgrImpl.java:126)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl$CUInitializer.run(CompositionUnitMgrImpl.java:984)
at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:524)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1892)
Reporter BEGIN:java.util.HashMap@8604de48
{
key:arg1
value:SYSTEM.BROKER.DEFAULT.STREAM
key:arg0
value:XMSC_WMQ_BROKER_PUBQ
key:exception
value BEGIN:com.ibm.msg.client.jms.DetailedJMSException@26888559
java.lang.Throwable::serialVersionUID:-3042686055658047285
java.lang.Throwable::detailMessage:JMSMQ1112: The operation for a domain specific object was not valid. The operation 'setBrokerPubQ()' is not valid for type 'com.ibm.mq.jms.MQQueueConnectionFactory'.
java.lang.Throwable::walkback BEGIN:[J@2fc32c49
[720577039893432151 1099800282352 1099799283028 720577039952142013 720577039952135215 1100198986529 1100198942393 720577039952317734 720577039952318287 720577039952319412 720577039952320138 1100182847692 1099798095820 1100182793687 1100182794255 1100182794176 1100173399139 1099809061352 1099809055120 1099809049904 1099809346196 1099798080364 1099809146312 1099808361380 1099809317460 1100170974627 1100170890556 1100170887398 1100156516959 1100156516397 1100156190668 720577039957783560 720577039957872596 720577039957936096 720577039949103271 720577039949063088 720577039949062605 720577039949036807 720577039949038641 720577039950077214 720577039955953290 720577039956034142 720577039955947615 720577039950074305 720577039956111452 720577039904231721 720577039904233249 720577039911607098 720577039950082579 720577039950686806 720577039955912308 720577039950685947 720577039950692108 720577039955906175 720577039955907962 720577039901983184]
END:[J@2fc32c49
java.lang.Throwable::cause:com.ibm.msg.client.jms.DetailedJMSException@26888559
java.lang.Throwable::stackTrace BEGIN:[Ljava.lang.StackTraceElement;@f898c5b6
[
java.lang.StackTraceElement@3750d381 depth limit reached
java.lang.StackTraceElement@a2678f8b depth limit reached
java.lang.StackTraceElement@5061134b depth limit reached
java.lang.StackTraceElement@d7abd5b0 depth limit reached
java.lang.StackTraceElement@2a091df5 depth limit reached
java.lang.StackTraceElement@e61a1110 depth limit reached
java.lang.StackTraceElement@c144cc6 depth limit reached
java.lang.StackTraceElement@6d1d0ee7 depth limit reached
java.lang.StackTraceElement@4a9f8932 depth limit reached
java.lang.StackTraceElement@75225336 depth limit reached
java.lang.StackTraceElement@a4f5a3e1 depth limit reached
java.lang.StackTraceElement@f493ff24 depth limit reached
java.lang.StackTraceElement@b65113e2 depth limit reached
java.lang.StackTraceElement@53a3b1d4 depth limit reached
java.lang.StackTraceElement@4b1b395f depth limit reached
java.lang.StackTraceElement@9e606ae depth limit reached
java.lang.StackTraceElement@79e8e194 depth limit reached
java.lang.StackTraceElement@fbfc0ae2 depth limit reached
java.lang.StackTraceElement@d4adc01a depth limit reached
java.lang.StackTraceElement@8d143c8f depth limit reached
java.lang.StackTraceElement@a4a123be depth limit reached
java.lang.StackTraceElement@bb4e37bb depth limit reached
java.lang.StackTraceElement@c235c017 depth limit reached
java.lang.StackTraceElement@32c0c815 depth limit reached
java.lang.StackTraceElement@11fbbdb1 depth limit reached
java.lang.StackTraceElement@69e1c1ce depth limit reached
java.lang.StackTraceElement@19d0698f depth limit reached
java.lang.StackTraceElement@31da72ea depth limit reached
java.lang.StackTraceElement@1f294d2 depth limit reached
java.lang.StackTraceElement@ecb16030 depth limit reached
java.lang.StackTraceElement@71777abd depth limit reached
java.lang.StackTraceElement@a31ff047 depth limit reached
java.lang.StackTraceElement@6192b5bc depth limit reached
java.lang.StackTraceElement@4b1de16a depth limit reached
java.lang.StackTraceElement@827aae03 depth limit reached
java.lang.StackTraceElement@d09171f1 depth limit reached
java.lang.StackTraceElement@719af90 depth limit reached
java.lang.StackTraceElement@c1cc584e depth limit reached
java.lang.StackTraceElement@999c12cf depth limit reached
java.lang.StackTraceElement@4d7851f9 depth limit reached
java.lang.StackTraceElement@48317805 depth limit reached
java.lang.StackTraceElement@a278b023 depth limit reached
java.lang.StackTraceElement@7e0ac9e7 depth limit reached
java.lang.StackTraceElement@a57bf133 depth limit reached
java.lang.StackTraceElement@7dfb0a34 depth limit reached
java.lang.StackTraceElement@5655b8bb depth limit reached
java.lang.StackTraceElement@e3a1d570 depth limit reached
java.lang.StackTraceElement@4afc2287 depth limit reached
java.lang.StackTraceElement@dbb04bd7 depth limit reached
java.lang.StackTraceElement@cd3c036b depth limit reached
java.lang.StackTraceElement@cb295a07 depth limit reached
java.lang.StackTraceElement@32dda987 depth limit reached
java.lang.StackTraceElement@d17d1c depth limit reached
java.lang.StackTraceElement@8baa85dd depth limit reached
java.lang.StackTraceElement@b4c8c4 depth limit reached
java.lang.StackTraceElement@f78719e8 depth limit reached
java.lang.StackTraceElement@aebbc943 depth limit reached
]
END:[Ljava.lang.StackTraceElement;@f898c5b6
java.lang.Throwable::ZeroElementArray BEGIN:[Ljava.lang.Throwable;@ed51fa90
[
]
END:[Ljava.lang.Throwable;@ed51fa90
java.lang.Throwable::ZeroStackTraceElementArray BEGIN:[Ljava.lang.StackTraceElement;@f01ba855
[
]
END:[Ljava.lang.StackTraceElement;@f01ba855
java.lang.Throwable::suppressedExceptions BEGIN:java.util.Collections$EmptyList@c422d1fc
{
}
END:java.util.Collections$EmptyList@c422d1fc
java.lang.Throwable::enableWritableStackTrace:true
java.lang.Exception::serialVersionUID:-3387516993124229948
javax.jms.JMSException::errorCode:JMSMQ1112
javax.jms.JMSException::linkedException:null
com.ibm.msg.client.jms.DetailedJMSException::serialVersionUID:8994644226281699639
com.ibm.msg.client.jms.DetailedJMSException::lineSeparator:
com.ibm.msg.client.jms.DetailedJMSException::copyright_notice:Licensed Materials - Property of IBM 5724-H72, 5655-R36, 5724-L26, 5655-L82 (c) Copyright IBM Corp. 2008, 2011 All Rights Reserved. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
com.ibm.msg.client.jms.DetailedJMSException::explanation:A JMS application attempted to perform an operation on domain specific object, but the operation is valid only for the other messaging domain.
com.ibm.msg.client.jms.DetailedJMSException::useraction:Make sure that the JMS objects and operations used by your application are relevant for the required messaging domain. If your application uses both messaging domains, consider using domain independent objects throughout the application.
com.ibm.msg.client.jms.DetailedJMSException::inserts BEGIN:java.util.HashMap@ba1974f1
{
key:XMSC_INSERT_METHOD
value:setBrokerPubQ()
key:XMSC_INSERT_TYPE
value:com.ibm.mq.jms.MQQueueConnectionFactory
}
END:java.util.HashMap@ba1974f1
END:com.ibm.msg.client.jms.DetailedJMSException@26888559
}
END:java.util.HashMap@8604de48
我尝试谷歌搜索,但不明白这是什么意思。请告知这将如何影响我的申请以及为什么会发生。
当我尝试在 Spring 中创建
ConnectionFactory
bean 时遇到此错误,如下所示:
@Bean
@ConfigurationProperties(prefix = "ibm.mq")
fun mqConnectionFactory(): MQQueueConnectionFactory {
return MQQueueConnectionFactory().apply {
this.setIntProperty(WMQ_CONNECTION_MODE, WMQ_CM_CLIENT)
}
}
更改为:
后就消失了 @Bean
@ConfigurationProperties(prefix = "ibm.mq")
fun mqConnectionFactory(): ConnectionFactory {
return MQQueueConnectionFactory().apply {
this.setIntProperty(WMQ_CONNECTION_MODE, WMQ_CM_CLIENT)
}
}
注意函数返回类型。