Jakarta ee Can';我的JavaEE应用程序客户端无法正常工作

Jakarta ee Can';我的JavaEE应用程序客户端无法正常工作,jakarta-ee,client,websphere,Jakarta Ee,Client,Websphere,我正试图为Websphere 7编写一个Java EE应用程序客户端,以访问部署在Websphere服务器上的EJB,但我似乎无法使用JNDI解析EJB(我得到了“Name comp/env/EJB not found in context“Java:”) 我在RBD7.5中将该项目创建为“应用程序客户机项目”,并使用“WebSphereApplicationServerV.7.0ApplicationClient”来运行它 在创建初始上下文和在运行配置中提供信息时,我尝试了两种方法(但不是同时

我正试图为Websphere 7编写一个Java EE应用程序客户端,以访问部署在Websphere服务器上的EJB,但我似乎无法使用JNDI解析EJB(我得到了“Name comp/env/EJB not found in context“Java:”)

我在RBD7.5中将该项目创建为“应用程序客户机项目”,并使用“WebSphereApplicationServerV.7.0ApplicationClient”来运行它

在创建初始上下文和在运行配置中提供信息时,我尝试了两种方法(但不是同时)指定提供者URL,但没有任何区别

我可能遗漏了一些非常简单的东西


顺便问一下,launchclient是否必须在Webshere服务器上运行,或者我是否可以在另一台服务器上重新复制它?

好的,看起来您已经有所进展了

侧栏:这可能是设置应用程序服务器时最令人沮丧的部分,因为文档编写不规范,而且教程通常针对以前做过的人。我更喜欢JBoss,我真的希望拥有更多WebSphere知识的人能帮上忙,因为他们可能知道答案我能做的就是把你推向一个我认为是的方向

以下是我的多EE上下文查找示例:

@SuppressWarnings("unchecked")
public static <T> T getObjectFromContext(Class<T> clazz, Namespace namespace)
{
    // java:app/ProductionEJB/OptionsDao!com.danielbchapman.production.beans.SomeDaoRemote
    String lookup;
    if(JEE6)
        lookup = "java:global/" + namespace.toEnterpriseSix() + "/"
                + clazz.getSimpleName().replaceAll("Remote", "") + "!" + clazz.getName();
    else
        lookup = "ProductionEE5/" + clazz.getSimpleName().replaceAll("Remote", "") + "/remote";

    T ret = (T) getObjectFromContext(lookup);
    return ret;
}
@SuppressWarnings(“未选中”)
公共静态T getObjectFromContext(类clazz,命名空间)
{
//java:app/ProductionEJB/OptionsDao!com.danielbchapman.production.beans.somedaomote
字符串查找;
如果(6)
lookup=“java:global/”+namespace.toEnterpriseSix()+”/“
+clazz.getSimpleName();
其他的
lookup=“productione5/”+clazz.getSimpleName().replaceAll(“远程”、“远程”)+“/Remote”;
T ret=(T)getObjectFromContext(查找);
返回ret;
}
您可以看到上下文字符串(JBoss7/EE6)是:

java:/global/#{JAR_NAME}/#{IMPLEMENTATION_CLASS}!#{REMOTE_INTERFACE}

对于我的EE5查找(JBoss 5.1GA)来说,是:

{EAR\u NAME}/{IMPLEMENTATION\u CLASS}

要简化此过程,您需要跳转到您的管理工具中并查看您的部署。您将看到上下文,一般来说,每个实现的上下文都有一点不同。有一个标准,据我所知,每个人对它都有自己的看法。(忽略我的“命名空间”)类,它基本上只包含更多信息,无论是
java:app
还是
java:global


发布更多您的信息,我会尝试将您推向正确的方向。另外,请查找有关它的教程。我确信这是一个很小的问题。

您读过这本红皮书吗?向您展示了如何进行操作。

发布堆栈跟踪和日志。由于安全原因,它很有可能包含您正在查找的信息担心有时客户端异常完全没有帮助。可能是您的安全设置不正确,或者您已经打开了它,但不知道您这样做了。您好!日志在这里:在此之前没有错误(只是组件初始化),之后也没有错误。NullPointerException(很可能是调用错误)AFAIK是由返回空值但未捕获它(因为这是测试代码)这一事实引起的吗.我必须重做Ejb项目中的Ejb引用吗?如果是的话,我该怎么做?哇..谈论文档是很简单的,教程是针对以前做过的人的。大量的FUD被丢弃。这很糟糕。不是为了打败Websphere,而是因为文档,我切换到JBoss。上下文查找是决策的主要部分on.interest。如果您购买了该软件,您可以访问IBM支持。他们将在4小时的时间窗口(范围)内为您提供答案。你说的文档也很有趣。……信息中心上有很多页面,还有很多白皮书和红皮书。不是说破烂,但你似乎不知道如何浏览产品信息。哦,我不是在评论文档存在的事实,我是在评论它的质量和你需要阅读的数量了解基本元素的最新情况。如果你有一个很好的资源发布它,很多人都会遇到这些问题。(我认为你的推荐会在3个月后发布,这是一个很好的例子)