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

Java 无法在独立客户端上实例化initialcontext,java,jakarta-ee,glassfish,jms,mom,Java,Jakarta Ee,Glassfish,Jms,Mom,我有一个独立的客户端,我不想在我的Glassfish服务器上部署它。对于客户端,我希望通过点对点通信模式发布消息。我找到了很棒的教程,它使用了我无法使用的注释,因为我有一个独立的客户端。我在stackoverflow上找到了以下解决方案: Context jndiContext; private ConnectionFactory connectionFactory; private static Queue queue; public TweetSender() throws NamingE

我有一个独立的客户端,我不想在我的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文件夹中检索到的库,并使用“绝对路径”添加了它们).

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

applcient -client myclient.jar

appclient
实用程序可在此处找到:[glassfish home dir]/glassfish/bin.

这可能会有所帮助谢谢,我尝试过,但没有改变请看一下这个问题,也许这就是问题所在: