首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证尝试从JBoss服务器建立到Websphere队列的连接时出错

验证尝试从JBoss服务器建立到Websphere队列的连接时出错
EN

Stack Overflow用户
提问于 2012-03-30 14:45:09
回答 2查看 726关注 0票数 1

在尝试将ConnectionFactory从jobScheduler (在jboss-5中运行)初始化到websphere queue时,我得到了以下异常

代码语言:javascript
复制
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中初始化的命名工厂

代码语言:javascript
复制
com.ibm.websphere.naming.WsnInitialContextFactory

在这方面请帮帮我

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-02 22:22:38

我解决这个问题的解决方案是

  • 删除了IBM,如果它在应用程序
  • 中放置了两次如果相同的jar分别放在两个应用程序中(在同一服务器上运行),然后将jar文件放在jboss的lib文件夹中(到

避免在jboss的lib文件夹中使用redundant)

  • Placed jacorb.jar,以避免使用java的默认corba包

我遵循了这三个步骤,没有得到这个错误!

感谢您的回答和努力!!:-)

票数 0
EN

Stack Overflow用户

发布于 2012-03-31 08:42:55

提到的jar和上下文工厂倾向于表明WMQ客户端是从WebSphere应用服务器安装中借用的,而不是使用独立的WMQ客户端安装程序。如果是这样的话,您可以通过安装独立客户端来很容易地解决这个问题。您可以免费(通过注册)将其作为SupportPac获取。这些是按版本排列的,因此您可以选择:

  • V7.1客户端是SupportPacMQC71 (Preferred)
  • V7.0客户端是SupportPacMQC71客户端是SupportPacMQC6 (自2012年9月起停止支持)

请注意,从IBM提供的安装程序安装客户端提供了许多附加功能,例如用于跟踪的诊断、版本显示、初始验证测试代码、示例源代码等。这是IBM将支持的安装方法,因此,即使您可以通过从WMQ服务器安装程序复制jars来使其工作,建议您使用IBM的介质。

另请注意,Java和JMS类的打包在不同版本之间有所不同。重要的是要知道您使用的是哪个版本,并参考CLASSPATH和其他配置选项的相应文档。v7.1实现有许多功能改进,并且是唯一将利用v7.1 QMgr上的功能的版本。但是,它将连接到任何版本的QMgr,所以如果这是新的开发,请尝试现在使用v7.1客户端,这样您就不需要在以后进行升级。

每个版本的客户端的信息中心链接如下:

  • V7.1信息中心Environment Varariables for JMS &信息中心ClientsUsing Java手册
    • V7.0信息中心ClientsUsing Java手册<代码>H224<代码>F225

随IBM installer提供的实用程序之一是java/bin目录中的setmqjmsenv脚本(如果安装64位客户端,则为setmqjmsenv64 )。您可以在这里确定您的WMQ客户机类版本所需的CLASSPATH和其他环境变量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9938171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档