ejb在jboss下的部署入门

我觉得做一个客户端调用一个实体bean算是一个完整列子吧
实体bean这里不就不详细说了
客户端调用需要使用会话bean这个也写好吧
然后打包这个ejb
这里部署到jboss下就可以使用了
另外我使用oracle数据库
所以在jboss下的deploy下得增加oracle数据源配置文件,如下:
oracledb-ds.xml
<datasources>
<local-tx-datasource>
<jndi-name>oracleDS</jndi-name>
<connection-url>
jdbc:oracle:thin:@localhost:1521:cmmboss
</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>system</user-name>
<password>cmmboss</password>
<metadata>
<type-mapping>oracle10g</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
注意这个jndi名字和你调用的时候一致
这个实在ejb这个里面的persistence.xml里面一致
部署的话
ejb打包的jar可以单独部署于deploy下面
也可以打包成ear里面
ear的结构:mytestejbweb.ear
META-INF
--application.xml
testejbweb.war
testejb.jar
客户端调用
可以是普通类
也可以是servlet
我这里以一个servlet距离
在servlet初始化的时候处理
public void init() throws ServletException {
Hashtable properties = new Hashtable();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
properties.put(Context.PROVIDER_URL, "jnp://localhost:1100");这里特别注意的是使用jnp方式访问,其他容器都有自己的访问方式,比如weblogic使用T3,ip如果是夸ip访问注意ip绑定,还有端口号是jnp的端口1100,而不是http端口8080等
properties.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
try {
InitialContext ctx = new InitialContext(properties);
ComputerBeanRemote computerBean = (ComputerBeanRemote)ctx.lookup("mytestejbweb/ComputerBean/remote");
这里首先调用的是ear这个资源的jndi路径(我第一次使用了war的资源路径,唉对jndi没有理解,调试了一个晚上,希望大家不要犯我这样的错误),然后再是ejb bean的路径,
this.computerBean = computerBean;
} catch (NamingException e) {
e.printStackTrace();
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值