无法在独立客户端上实例化initialcontext

时间:2013-03-17 15:22:09

标签: java java-ee glassfish jms mom

我有一个独立的客户端,我不想在Glassfish服务器上部署。对于客户端,我想通过点对点通信模式发布消息。我找到了this很棒的教程,它使用了我无法使用的注释,因为我有一个独立的客户端。我在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目录导入一些库。所以我做了:Project properties

我收到以下错误:

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文件夹中检索到的库并使用它们添加它们“绝对的道路”。

1 个答案:

答案 0 :(得分:0)

解决方案可以将独立客户端应用程序打包在jar文件中,例如:myclient.jar。 并使用GlassFish的appclient实用程序将其作为应用程序客户端运行:

applcient -client myclient.jar

appclient实用程序可以在这里找到:[glassfish home dir] / glassfish / bin。

相关问题