JBOSS系列(一) --EJB远程调用-客户端的配置

6 篇文章 0 订阅
6 篇文章 3 订阅

        EJB访问方式分为远程客户端访问、本地客户端访问和WebService客户端。

        所谓的EJB的远程调用是说客户端与服务端的EJB对象不在同一个JVM进程中。

        本地客户端是说客户端与服务端的EJB对象在同一个JVM进程中。

         WebService客户端可以访问无状态会话Bean的接口,只有在业务逻辑方法被标识为@WebMethod的时候,webService客户端才可以访问到。

 

远程调用

         在没有远程调用的时候,我们需要用到别人的数据了,就直接把别人的接口和实现都拿过来了,接着打到自己的包中,这样做一方面来说是造成了代码的冗余,自己的包会很大,另一方面这样也不是远程调用。

        接下来我们改进,改成远程调用,直接调用别人的接口就可以操作了。这样的好处是针对接口编程,结构清晰,很灵活。

 

客户端配置:

1、当然需要调用的EJBBEAN必须是远程的:

@Stateless(name="ClassEao")
@Remote(ClassEao.class)
@TransactionManagement(TransactionManagementType.CONTAINER)
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public class ClassEaoImpl extends ExamBase<Class> implements ClassEao {

	

}

我们在EAO的实现上加远程的注解。

 

2、我们注入Bean的时候需要用远程的JNDI,在自己的webspring-mvc.xml里面配置,即

<jee:jndi-lookup id="SchoolTeachingBean"
		jndi-name="ejb:itoo-basic-schoolteaching-ear/itoo-basic-schoolteaching-core-0.0.1-SNAPSHOT/SchoolTeachingBeanImpl!com.tgb.itoo.basic.service.SchoolTeachingBean"
		environment-ref="evn">
	</jee:jndi-lookup>

注意上面的jndi-name,我们的项目是打成了一个ear包,并且去掉了ear的版本号:

<build>
<finalName>${project.artifactId}</finalName>
</build>

同时在applicationContext-common.xml里面配置如下:

<util:properties id="evn"
		location="classpath:config/jboss-ejb-client.properties"></util:properties>

这样的目的是通过evn找到相应的JBOSS的配置,也就是需要远程调用的JBOSSip,端口号,用户名和密码。


3、在自己的Web层添加配置文件jboss-ejb-client.properties

endpoint.name=client-endpoint
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
org.jboss.ejb.client.scoped.context=true
jboss.naming.client.ejb.context=true
Context.URL_PKG_PREFIXES=org.jboss.ejb.client.naming
javax.naming.Context.INITIAL_CONTEXT_FACTORY=org.jboss.naming.remote.client.InitialContextFactory
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
remote.connectionprovider.create.options.org.xnio.Options.SSL_STARTTLS=false
jboss.naming.client.connect.options.org.xnio.Options.SASL_POLICY_NOPLAINTEXT=false
remote.connections=one
remote.connection.one.host=192.*.*.*
remote.connection.one.port=4447
remote.connection.one.username=adminks
remote.connection.one.password=!adminks123

       主要是配置IP和端口号以及需要远程调用的JBOSS的账户名和密码,同时我们还可以在JBOSS中配置多个远程调用的接口。

 

4、最后一步,在自己的ear包里面加入jboss-deployment-structure.xml配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
		<sub-deployment name="itoo-assess-studentassess-web-0.0.1-SNAPSHOT.war">
		<dependencies>
			<module name="org.jboss.xnio" />
		</dependencies>
	</sub-deployment>
</jboss-deployment-structure>

          因为现在用的JBOSS版本是eap 6.2 相比较以前的版本加入了模块的概念(用到才被加载),加入以上配置是为了找到war包里面jndi的配置。

 

总结:

        上面主要介绍了EJB远程调用的客户端的配置,主要是因为现在JBOSS提升版本后,突出的一点是JBOSS的模块化,也是因为这个又爱又恨的模块化出了一系列的问题,解决了一系列的问题。下篇博客继续说远程调用JBOSS的配置。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值