我有一个不想部署在 Glassfish 服务器上的独立客户端。对于客户,我想通过点对点通信模式发布消息。我发现了这个很棒的教程,它使用了我无法使用的注释,因为我有一个独立的客户端。我在stackoverflow上找到了以下解决方案:
Context jndiContext;
private ConnectionFactory connectionFactory;
private static Queue queue;
public TweetSender() throws NamingException{
jndiContext = new InitialContext();
connectionFactory = (ConnectionFactory) jndiContext.lookup("JMS/KwetterConnectionFactory");
queue = (Queue) jndiContext.lookup("JMS/KwetterQueue");
}
我还发现我必须从 glassfish 目录中导入一些库。所以我做了:
我收到以下错误:
javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.enterprise.naming.impl.SerialInitContextFactory [Root exception is java.lang.ClassNotFoundException: com.sun.enterprise.naming.impl.SerialInitContextFactory]
我究竟做错了什么?
编辑
我找到了一个临时解决方案,但我觉得它不是正确的(我想当我想迁移项目时可能会遇到问题。我删除了从 Glassfish lib 文件夹中检索到的库,并使用“Absolute小路”。