【问题标题】:Cannot instantiate initialcontext on standalone client无法在独立客户端上实例化初始上下文
【发布时间】:2013-03-05 22:35:28
【问题描述】:

我有一个独立的客户端,我不想在我的 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 目录中导入一些库。所以我做了:

我收到以下错误:

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

【问题讨论】:

标签: java jakarta-ee glassfish jms mom


【解决方案1】:

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

applcient -client myclient.jar

appclient 实用程序可在此处找到:[glassfish 主目录]/glassfish/bin。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多