首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >netbeans 7-8,注入远程ejb

netbeans 7-8,注入远程ejb
EN

Stack Overflow用户
提问于 2014-03-27 18:31:05
回答 1查看 414关注 0票数 0

嗨,我有一个名为"service- EJB“的ejb项目,它是这样的:

代码语言:javascript
运行
复制
@Stateless
@Remote(ServiceRemote.class)
public class Services implements ServiceLocal, ServiceRemote {
  [...business code...]
}

在同一个项目中,I具有本地接口:

代码语言:javascript
运行
复制
@Local
public interface ServiceLocal { }

以及名为“service-lib”的类库项目中的远程接口:

代码语言:javascript
运行
复制
@Remote
public interface ServiceRemote {
  public boolean checkIfOk();
}

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

代码语言:javascript
运行
复制
@EJB
private ServiceRemote serviceTest;

但是它当然会失败编译,所以我尝试了:

代码语言:javascript
运行
复制
InitialContext ic = new InitialContext();
ServiceRemote serviceTest = (ServiceRemote) ic.lookup("ServiceRemote");    

没有运气..。在NetBeans中,我可以告诉它使用"service-lib“作为引用吗?我不希望它被添加到库中,然后用ear进行部署,我只想让NetBeans正确编译代码。

如果这个问题听起来很傻,很抱歉,但我已经看过文件了,我不明白我错过了什么.

--编辑--

我会尽量说清楚的。"service-ejb“引用"service-lib",因此我已经将"service-ejb”部署到glassfish中。正确地,我有:

代码语言:javascript
运行
复制
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项目,让我们把它称为"myEngine“,其中包含一个war模块”myEngine“。当然,我尝试在“myEngine”中添加对"service-lib“的引用,在本例中,它编译得很好。关键是我可以做任何事情,告诉netbeans不要在war中打包"service-lib“,但是当我部署"myEngine”时,我得到:

代码语言:javascript
运行
复制
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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-27 18:41:44

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

代码语言:javascript
运行
复制
I don't want it to be added as library and then deployed with the ear

我建议只将service-lib包含接口等作为一个库,并使用ear来部署它,而不是使用包含实现的整个服务-ejb。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22696228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档