校验错误,而试图建立从JBoss服务器
到WebSphere队列的连接在尝试并初始化从的jobscheduler ConnectionFactory的(在JBoss中-5上运行),到WebSphere队列中,我得到了下面的异常校验错误,而试图建立从JBoss服务器
java.lang.VerifyError: Cannot inherit from final class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at org.jboss.classloader.spi.base.BaseClassLoader.access$200(BaseClassLoader.java:67)
at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:633)
at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:592)
at java.security.AccessController.doPrivileged(Native Method)
at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:591)
at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:568)
at org.jboss.classloader.spi.base.BaseDelegateLoader.loadClass(BaseDelegateLoader.java:135)
at org.jboss.classloader.spi.filter.FilteredDelegateLoader.loadClass(FilteredDelegateLoader.java:131)
at org.jboss.classloader.spi.base.ClassLoadingTask$ThreadTask.run(ClassLoadingTask.java:455)
at org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:267)
at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:166)
at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:276)
at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1138)
at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:862)
at org.jboss.classloader.spi.base.BaseClassLoader.doLoadClass(BaseClassLoader.java:502)
at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:447)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at com.ibm.ws.naming.util.WsnInitCtxFactory.parseIiopUrl(WsnInitCtxFactory.java:1781)
at com.ibm.ws.naming.util.WsnInitCtxFactory.parseBootstrapURL(WsnInitCtxFactory.java:1525)
at com.ibm.ws.naming.util.WsnInitCtxFactory.getInitialContextInternal(WsnInitCtxFactory.java:389)
at com.ibm.ws.naming.util.WsnInitCtx.getContext(WsnInitCtx.java:113)
at com.ibm.ws.naming.util.WsnInitCtx.getContextIfNull(WsnInitCtx.java:428)
at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:144)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at com.test.testBatch.jms.JMSUtil.initialize(JMSUtil.java:57)
at com.test.testBatch.jms.JMSUtil.send(JMSUtil.java:90)
at com.test.testBatch.job.OutboundChangesPollingJob.execute(OutboundChangesPollingJob.java:76)
at org.quartz.core.JobRunShell.run(JobRunShell.java:195)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
2012-03-29 09:47:11,775 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) Exception in thread "DefaultQuartzScheduler_Worker-0"
2012-03-29 09:47:11,776 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) java.lang.NoClassDefFoundError: com/ibm/rmi/corba/NamedValueImpl
2012-03-29 09:47:11,777 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at com.ibm.ws.naming.util.WsnInitCtxFactory.parseIiopUrl(WsnInitCtxFactory.java:1781)
2012-03-29 09:47:11,777 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at com.ibm.ws.naming.util.WsnInitCtxFactory.parseBootstrapURL(WsnInitCtxFactory.java:1525)
2012-03-29 09:47:11,777 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at com.ibm.ws.naming.util.WsnInitCtxFactory.getInitialContextInternal(WsnInitCtxFactory.java:389)
2012-03-29 09:47:11,777 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at com.ibm.ws.naming.util.WsnInitCtx.getContext(WsnInitCtx.java:113)
2012-03-29 09:47:11,777 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at com.ibm.ws.naming.util.WsnInitCtx.getContextIfNull(WsnInitCtx.java:428)
2012-03-29 09:47:11,777 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:144)
2012-03-29 09:47:11,778 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at javax.naming.InitialContext.lookup(InitialContext.java:392)
2012-03-29 09:47:11,778 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at com.test.testBatch.jms.JMSUtil.initialize(JMSUtil.java:57)
2012-03-29 09:47:11,778 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at com.test.testBatch.jms.JMSUtil.send(JMSUtil.java:90)
2012-03-29 09:47:11,778 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at com.test.testBatch.job.OutboundChangesPollingJob.execute(OutboundChangesPollingJob.java:76)
2012-03-29 09:47:11,778 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at org.quartz.core.JobRunShell.run(JobRunShell.java:195)
2012-03-29 09:47:11,778 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
2012-03-29 09:47:11,779 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) Caused by: java.lang.ClassNotFoundException: Unexpected error during load of: com.ibm.rmi.corba.NamedValueImpl, msg=Cannot inherit from final class
2012-03-29 09:47:11,779 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:181)
2012-03-29 09:47:11,779 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:276)
2012-03-29 09:47:11,779 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1138)
2012-03-29 09:47:11,779 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:862)
2012-03-29 09:47:11,779 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at org.jboss.classloader.spi.base.BaseClassLoader.doLoadClass(BaseClassLoader.java:502)
2012-03-29 09:47:11,779 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:447)
2012-03-29 09:47:11,779 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
2012-03-29 09:47:11,780 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) ... 12 more
2012-03-29 09:47:11,780 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) Caused by: java.lang.VerifyError: Cannot inherit from final class
2012-03-29 09:47:11,780 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at java.lang.ClassLoader.defineClass1(Native Method)
2012-03-29 09:47:11,780 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
2012-03-29 09:47:11,780 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
2012-03-29 09:47:11,780 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at org.jboss.classloader.spi.base.BaseClassLoader.access$200(BaseClassLoader.java:67)
2012-03-29 09:47:11,780 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:633)
2012-03-29 09:47:11,780 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:592)
2012-03-29 09:47:11,780 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at java.security.AccessController.doPrivileged(Native Method)
2012-03-29 09:47:11,781 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:591)
2012-03-29 09:47:11,781 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:568)
2012-03-29 09:47:11,781 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at org.jboss.classloader.spi.base.BaseDelegateLoader.loadClass(BaseDelegateLoader.java:135)
2012-03-29 09:47:11,781 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at org.jboss.classloader.spi.filter.FilteredDelegateLoader.loadClass(FilteredDelegateLoader.java:131)
2012-03-29 09:47:11,781 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at org.jboss.classloader.spi.base.ClassLoadingTask$ThreadTask.run(ClassLoadingTask.java:455)
2012-03-29 09:47:11,781 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:267)
2012-03-29 09:47:11,781 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:166)
2012-03-29 09:47:11,781 ERROR [STDERR] (DefaultQuartzScheduler_Worker-0) ... 18 more
由于它抛出classNotFound,我去了并检查lib文件夹,并且该类存在于名为“ibmorb.jar”的jar中。 (不知道为什么ClassNotFound的被抛出)
这是命名的工厂,在的IntialContext得到initliazed
com.ibm.websphere.naming.WsnInitialContextFactory
请帮我提到似乎表明这
解我分辨这是
删除了IBM罐子中,如果在应用程序
放置两次如果相同的罐子在两个应用程序(在运行单独放置 相同的服务器),然后,放置在JAR文件中JBoss的lib文件夹(到
避免多余的)放置jacorb.jar在JBoss的的lib文件夹,以避免Java的默认CORBA包
我跟着这三个步骤的使用 ,我没有得到这个错误!
感谢您的所有答案和努力! :-)
的罐子和上下文工厂WMQ客户端是从WebSphere Application Server安装中借用的,而不是使用独立的WMQ客户端安装程序。如果是这种情况,您可以通过安装独立客户端来解决这个问题。您可以免费获得(注册)作为SupportPac。这些都是版本,所以你有你的选择:
- V7.1客户端是SupportPacMQC71(首选)
- V7.0客户端SupportPacMQC7
- V6.0客户端是SupportPacMQC6(满分为支持的2012年9月)
注意,从IBM提供的安装程序安装在客户端提供了许多附加功能,如诊断跟踪,版本显示,初始验证测试代码,样本源代码等,这是该方法安装即使您可以通过复制WMQ服务器安装中的jar来使用它,IBM仍然会支持,因此推荐使用IBM的介质。
另请注意,Java和JMS类的打包在版本之间已更改。了解您正在使用的版本非常重要,请参阅CLASSPATH
和其他配置选项的相应文档。 v7.1的实现有许多功能上的改进,并且是唯一可以利用v7.1 QMgr上的功能的版本。然而,它将连接到任何版本的QMgr,所以如果这是新的开发,现在尝试使用v7.1客户端,以便最终不需要升级。
客户端的每个版本的信息中心链接:
- V7.1信息中心Environment Varariables for JMS & Installing classes for JMS
- V7.0信息中心Clients和Using Java手册
- V7.0信息中心Clients和Using Java手册
其中一个工具与IBM安装程序一起提供的setmqjmsenv
脚本(和安装64位客户端时的setmqjmsenv64
)位于java/bin
目录中。您可以在这里查看以确定您的WMQ版Java客户端类所需的CLASSPATH
和其他环境变量。