【发布时间】:2015-11-24 02:18:34
【问题描述】:
异常堆栈跟踪并没有提供太多信息,只是
javax.naming.OperationNoSupportedException
public static Connection getConnection(Context ctx, String factoryName) throws JMSException, NamingException {
Object objfac = null;
try {
objfac = ctx.lookup(factoryName);
} catch (NoClassDefFoundError e) {
throw new NamingException("Lookup failed: "+e.toString());
}
if (objfac instanceof javax.jms.ConnectionFactory) {
@SuppressWarnings("unchecked") // The environment is supposed to use String keys only
Map<String, Object> env = (Map<String, Object>)ctx.getEnvironment();
if(env.containsKey(Context.SECURITY_PRINCIPAL)) {
String username = (String)env.get(Context.SECURITY_PRINCIPAL);
String password = (String)env.get(Context.SECURITY_CREDENTIALS);
return ((javax.jms.ConnectionFactory) objfac).createConnection(username, password);
}
else {
return ((javax.jms.ConnectionFactory) objfac).createConnection();
}
}
throw new NamingException("Expected javax.jms.ConnectionFactory, found "+(objfac != null ? objfac.getClass().getName(): "null"));
}
堆栈跟踪是:
javax.naming.OperationNotSupportedException 在 com.solacesystems.jndi.SolJNDIInitialContextFactory$SolJNDIInitialContextImpl.getEnvironment(SolJNDIInitialContextFactory.java:230) 在 javax.naming.InitialContext.getEnvironment(InitialContext.java:544) 在 javax.naming.InitialContext.getEnvironment(InitialContext.java:544) 在 org.apache.jmeter.protocol.jms.Utils.getConnection(Utils.java:155) 在 org.apache.jmeter.protocol.jms.client.Publisher.(Publisher.java:130) 在 org.apache.jmeter.protocol.jms.sampler.PublisherSampler.initClient(PublisherSampler.java:135) 在 org.apache.jmeter.protocol.jms.sampler.PublisherSampler.sample(PublisherSampler.java:154) 在 org.apache.jmeter.protocol.jms.sampler.BaseJMSSampler.sample(BaseJMSSampler.java:80) 在 org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:429) 在 org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:257) 在 java.lang.Thread.run(Thread.java:722)
【问题讨论】:
-
请提供完整的例外情况,对于包含您的代码的堆栈跟踪部分,请显示堆栈跟踪中引用的代码和标签行号。