当前位置: 首页 > 知识库问答 >
问题:

netbeans 7-8,注入远程ejb

宓跃
2023-03-14

嗨,我有一个名为“service-ejb”的EJB项目,其中包括:

@Stateless
@Remote(ServiceRemote.class)
public class Services implements ServiceLocal, ServiceRemote {
  [...business code...]
}
@Local
public interface ServiceLocal { }
@Remote
public interface ServiceRemote {
  public boolean checkIfOk();
}

我可以毫无问题地部署它,不管是单独部署还是在java EE应用程序中部署。关键是我不明白如何告诉NetBeans我希望从另一个应用程序调用那个beans。例如,我有另一个带有war组件的java EE项目,其中我在一个servlet中写道:

@EJB
private ServiceRemote serviceTest;

但它当然会在编译时失败,所以我尝试使用:

InitialContext ic = new InitialContext();
ServiceRemote serviceTest = (ServiceRemote) ic.lookup("ServiceRemote");    

运气不好...在NetBeans中,我可以告诉它在哪里使用“service-lib”作为引用?我不希望它被添加为库,然后与ear一起部署,我只希望NetBeans正确地编译代码

我会尽量说得更清楚些。“service-ejb”引用“service-lib”,因此我将“service-ejb”部署到GlassFish。正确的,我有:

glassfish_applications_directory $ find -name "service*"
./__internal/service-ejb
./__internal/service-ejb/service-ejb.jar
./service-ejb
./service-ejb/com/tecytal/components/email/beans/Service.class
./service-ejb/com/tecytal/components/email/interfaces/local/ServiceLocal.class
./service-ejb/service-lib.jar

然后我打开一个java EE项目,让我们把它称为“MyEngine”,其中有一个war模块“MyEngine-war”。当然,我尝试在“myengine-war”中添加对“service-lib”的引用,在本例中,它编译得很好。关键是我可以做任何事情,告诉netbeans不要将“service-lib”与war打包,但当我部署“MyEngine”时,我得到了:

java prettyprint-override">glassfish_applications_directory $ find -name "service*"
./myEngine/lib/service-lib.jar
./__internal/service-ejb
./__internal/service-ejb/service-ejb.jar
./service-ejb
./service-ejb/com/tecytal/components/email/beans/Service.class
./service-ejb/com/tecytal/components/email/interfaces/local/ServiceLocal.class
./service-ejb/service-lib.jar

我不想在我的服务器中有两个service-lib.jar,一个在service-ejb中,一个在myEngine中,我不明白如何在netbeans中使用远程ebj,告诉他不要部署相同的lib 3214899213次:)

共有1个答案

聂琨
2023-03-14

我建议在一个单独的JAR中添加远程服务接口和它引用的所有类(包括异常)。然后,在其他两个项目中,声明对这个jar的依赖。

I don't want it to be added as library and then deployed with the ear

我建议只添加包含接口等的service-lib作为库,并将其与ear一起部署,而不是包含实现的整个service-ejb。

 类似资料:
  • 本文向大家介绍C++封装远程注入类CreateRemoteThreadEx实例,包括了C++封装远程注入类CreateRemoteThreadEx实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C++封装远程注入类CreateRemoteThreadEx的方法,分享给大家供大家参考。具体方法如下: 首先,类初始化时传入要注入的DLL文件名 只使用两个函数 .h头文件如下: .cpp源文

  • 我有一个EAR应用程序,有三个模块: null 这是工作良好的,但现在我必须使用相同的豆子外耳应用程序,注射是不工作的。 我在app-ejb中有: 以及他在app-remote中的远程界面: 这是意料之中的吗?如何才能正确地注入远程bean?

  • 注释虽然写起来很痛苦, 但对保证代码可读性至关重要. 下面的规则描述了如何注释以及在哪儿注释. 当然也要记住: 注释固然很重要, 但最好的代码应当本身就是文档. 有意义的类型名和变量名, 要远胜过要用注释解释的含糊不清的名字. 你写的注释是给代码读者看的, 也就是下一个需要理解你的代码的人. 所以慷慨些吧, 下一个读者可能就是你! 8.1. 注释风格 总述 使用 // 或 /* */, 统一就好.

  • 问题内容: 之前已经被问过很多遍了,我浏览了所有内容,但还没有明确的答案。 问题简化:是否可以将本地Javascript文件(从资产或存储)注入到Android Web View中加载的远程网页?我知道可以将此类文件注入Web视图中加载的本地网页(资产HTML)。 为什么我需要这个来工作?:通过避免每次都下载较大的文件(例如Js和CSS文件)来提高浏览体验的速度。我想避免Web视图缓存。 问题答案

  • remote,远程,指的是远程仓库。你可以为项目创建一个远程仓库,然后把项目在本地的仓库推送到远程仓库上。可以设置让其他人也可以访问远程仓库,或者允许他们也可以把自己在本地对项目做的提交推送到远程仓库上。 为项目创建远程仓库,你可以选择一个提供免费远程仓库的服务商,列表见附录。

  • 注:本节未经校验,如有问题欢迎提issue 要了解关于Akka的远程调用能力的简介请参阅位置透明性. 注意 正如那一章所解释的,Akka remoting是按照端到端(peer-to-peer)对等通信的方式设计的,并在建立客户端-服务器(client-server)模式时受到限制。特别是Akka Remoting除其他外,不能与网络地址转换(Network Address Translation