- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个 JMS 应用程序,我使用 glassFish 管理页面构建了一个 ConnectionFactory 和 Qeueu,我想知道如何让我的应用程序知道服务器上构建的 jndi 以便能够发送消息。
import java.util.Hashtable;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueReceiver;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.swing.JOptionPane;
public class TestJMS {
public static void main(String[] args) {
String input = JOptionPane.showInputDialog("Enter JMS Client Type");
if (input.equals("1")) {
QueueConnection queueConnection = null;
try {
Context context = new InitialContext();
QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory) context.lookup("jms/ConnectionFactory");
String queueName = "jms/Queue";
Queue queue = (Queue) context.lookup(queueName);
queueConnection = queueConnectionFactory.createQueueConnection();
QueueSession queueSession = queueConnection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
QueueSender queueSender = queueSession.createSender(queue);
TextMessage message = queueSession.createTextMessage();
message.setText("This is a TextMessage");
queueSender.send(message);
System.out.println("Message sent.");
} catch (NamingException ex) {
ex.printStackTrace();
System.out.println("Naming Exception");
ex.printStackTrace();
} catch (JMSException ex) {
ex.printStackTrace();
System.out.println("JMS Exception");
} finally {
if (queueConnection != null) {
try {
queueConnection.close();
} catch (JMSException ex) {
}
}
}
}}}
正在处理异常
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initialNaming Exception
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.lookup(Unknown Source)
at TestJMS.main(TestJMS.java:37)
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.lookup(Unknown Source)
at TestJMS.main(TestJMS.java:37)
最佳答案
您需要在创建 InitialContext 时传递一个属性对象。属性对象指定连接到特定后端服务器所需的工厂类和提供者信息(以及其他设置)。
例如,对于 IBM WebSphere,
Properties p = new Properties();
String conFact = "com.ibm.websphere.naming.WsnInitialContextFactory"l
p.setProperty(Context.INITIAL_CONTEXT_FACTORY, conFact);
p.setProperty(Context.PROVIDER_URL, <providerInfo>);
ic = new InitialContext(p);
对于 GlassFish,这将是客户端 jar 中的一个连接工厂,它应该是请求 IC 时指定。
这是来自 Oracle 的部分示例 http://docs.oracle.com/cd/E19879-01/821-0029/aeqba/index.html
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory");
env.put(Context.PROVIDER_URL, "file:///C:/imq_admin_objects");
Context ctx = new InitialContext(env);
关于java - 连接到 glassFish 服务器上的 JNDI 时出现 NoInitialContextException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23906034/
getConnection 异常 javax.naming.NoInitialContextException:需要在环境或系统属性中指定类名,或者作为小程序参数,或者在应用程序资源文件中指定类名:j
我正在为我的 EJB 编写一个客户端,在尝试执行它时,我得到以下异常: javax.naming.NoInitialContextException: Need to specify class na
我一直试图在这里找到解决方案,但我不能...我有以下代码,但出现此错误。 我错过了什么吗?谢谢:) 代码 package src; import java.sql.DriverManager; imp
这个问题在这里已经有了答案: The meaning of NoInitialContextException error (13 个答案) 关闭 6 年前。 这是我的代码: import java
有人可以告诉我为什么会出现以下错误吗? javax.naming.NoInitialContextException: Need to specify class name in environmen
我们拥有在 Servicemix 5 上完美运行的 osgi 应用程序。但由于某些原因,我们必须迁移到 Servicemix 4.5。我尝试了一下,得到了这个 Error parsing SQL Ma
我需要将 java 应用程序连接到 MBean 服务器,但我在使 JMXConnector 工作时遇到问题。 当我尝试运行此命令时,出现 NoInitialContextException: try
对于学校,他们让我们通过普通的旧 dao 和 tomcat 连接到 postgresDB。但是,给定的代码无法正常工作,我现在已经被困在这里很长一段时间了。 就这样吧。 给定的connectionda
我有一个使用 JNDI 的应用程序,首先它可以工作,在我创建一个新项目后,由于与 SVN 冲突,它现在抛出 NoInitialContextException。 这是它抛出的异常: NoInitial
我在 Tomcat 服务器上有一个带有 Java Servlet 的网络服务。在我的 Servlet 中,我使用这样的数据库池: envContext = new InitialContext();
这个问题在这里已经有了答案: The meaning of NoInitialContextException error (13 个答案) 关闭 9 年前。 如标题所示,“javax.naming
我正在使用 Apache Commons 电子邮件 API 尝试以下代码,它在上下文中抛出错误。有什么帮助吗? 导入java.util.Properties; 导入 javax.mail.Passwo
我是 Hibernate 新手。使用 Eclipse indigo 中的 Hibernate 3.0。 这里讨论了这个话题,答案没有帮助,Hibernate: javax.naming.NoIniti
尝试连接到 MySQL 数据库 MysqlDataSource mysqlDs = new MysqlDataSource(); Properties prop = new Properties();
我正在尝试使用 JNDI 连接 mysql。但它显示异常 javax.naming.NoInitialContextException:需要在环境或系统属性中指定类名,或者作为小程序参数,或者在应用程
我想在 Jetty 6 中使用连接池,但到目前为止它给我带来了很多麻烦。 我愿意 InitialContext context = new InitialContext(); 它没有抛出异常,但是当我
我目前面临的问题是,我将 api 打包为 WAR(使用 eclipse + maven)后无法在 Jetty 上启动。从 Eclipse 启动时工作正常。 我查看了 Jetty 的日志并发现: org
我正在尝试编写一个 JMS 应用程序,我使用 glassFish 管理页面构建了一个 ConnectionFactory 和 Qeueu,我想知道如何让我的应用程序知道服务器上构建的 jndi 以便能
我正在使用 cargo maven 插件将我的 .war 部署到 Tomcat 8 实例以进行集成测试。该应用程序是一个基于 jersey 的 REST web 界面。我的问题出现在底层数据库连接池中
我有一个 JSF 网络应用程序,我想使用嵌入式 tomcat 运行它。到目前为止它一直在工作 [包括 JDBCRealm,在以下代码片段的 context.xml 中指定],除了登录后我的代码无法实际
我是一名优秀的程序员,十分优秀!