好文档 - 专业文书写作范文服务资料分享网站

JBoss中文文档

天下 分享 时间: 加入收藏 我要投稿 点赞

专注于Java EE平台、敏捷方法及Open Source技术咨询

图4-1 HSQL数据库管理器

通过单击上述链接,用户能够使用到Hypersonic MBean服务提供的HSQL数据库管理

功能。具体步骤如下:将屏幕滚动到页面底端,然后单击用于startDatabaseManager()操作的invoke按钮,进而启动了HSQL管理器,即用户能够直接操作数据库的、基于图形用户界面的Java应用。 4.1.8 部署应用

部署基于JBoss的应用很简单,用户只需要将EAR文件拷贝到deploy目录即可。通过Ant目标deploy能够完成应用的部署工作。

ant -f jboss-build.xml deploy

如下给出了示例(作了部分裁减,而且同用户所看到的实际输出会有所差别)。

18:07:53,923 INFO [EARDeployer] Init J2EE application: file:/private/tmp/jboss-4.0.4/server/default/deploy/JBossDukesBank.ear 18:07:55,024 INFO [EjbModule] Deploying CustomerBean 18:07:55,103 INFO [EjbModule] Deploying AccountBean 18:07:55,142 INFO [EjbModule] Deploying TxBean 18:07:55,403 INFO [EjbModule] Deploying NextIdBean

18:07:55,439 INFO [EjbModule] Deploying AccountControllerBean 18:07:55,478 INFO [EjbModule] Deploying CustomerControllerBean

www.open-v.com 拓宽视野,奔向成功

Open View, Victory Open

20 专注于Java EE平台、敏捷方法及Open Source技术咨询

18:07:55,503 INFO [EjbModule] Deploying TxControllerBean

18:07:56,950 INFO [EJBDeployer] Deployed: file:/private/tmp/jboss-4.0.4/server/default/t mp/deploy/tmp15097JBossDukesBank.ear-contents/bank-ejb.jar

18:07:57,267 INFO [TomcatDeployer] deploy, ctxPath=/bank, warUrl=file:/private/tmp/jboss -4.0.4/server/default/tmp/deploy/tmp15097JBossDukesBank.ear-contents/web-client.war/ 18:08:00,784 INFO [EARDeployer] Started J2EE application: file:/private/tmp/jboss-4.0.4/ server/default/deploy/JBossDukesBank.ear

如果存在错误或异常信息,则请注意错误信息,并确认导致错误的原因(比如,部署某

特定EJB时,或Web应用等等)。请检查EAR、WAR、EJB jar文件的完整性,比如所有所需的组件(类、部署描述符等等)是否都存在。 如果应用已经部署,则用户可以放心地再次部署它。如果需要卸载应用,则只需要将相应的存档从deploy目录删除即可。当然,JBoss服务器始终不需要重启。如果一切都正常,并无异常抛出,则通过Web浏览器打开如下URL:

http://localhost:8080/bank/main 用户将浏览到应用登陆界面。同J2EE Tutorial给出的一样,用户通过顾客ID(200)和密码(j2ee)能够登陆进入系统,见图4-2。如果出现错误,则请检查4.1.7.1节设置的数据库是否正常工作。尤其是,需要确保connection-url没问题。然后,需要确保正确地初始化了数据库。 当然,用户使用Ant目标run-client还能够启动单独的Java客户应用。

ant -f jboss-build.xml run-client

这是基于Swing的Java应用,以实现对顾客和账号的管理。

图4-2 Duke银行

www.open-v.com 拓宽视野,奔向成功

Open View, Victory Open

21 专注于Java EE平台、敏捷方法及Open Source技术咨询

4.2 JNDI和Java客户

另外,花些精力研究单独Java客户应用是如何使用JNDI,还是很值得的。本实例使用

了J2EE应用客户框架,它引入了客户端本地环境命名上下文的概念,即能够解析前缀为java:/comp/env的JNDI名字。这同服务器端使用JNDI很类似,因此用户能够避免在客户应用中硬编码JNDI名。用户通过使用专有jboss-client.xml部署描述符能够解析标准application-client.xml部署描述符中的JNDI引用名。详情请参考,3.2.1节。 4.2.1 jndi.properties文件

为查找JNDI服务器,用户需要使用标准Java属性。具体细节及其工作机制,请用户参考JDK API文档对javax.naming.Context类的解析。Java属性可以通过两种方式提供。其一,硬编码;其二,将jndi.properties文件放置在应用类路径中。比如,本实例使用的jndi.properties文件如下:

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory java.naming.provider.url=jnp://localhost:1099 java.naming.factory.url.pkgs=org.jboss.naming.client j2ee.clientName=bank-client

其中,前三个是标准属性,供JBoss JNDI实现使用。通过j2ee.clientName属性能够标识客户应用部署信息,并告知服务器端。j2ee.clientName名必须匹配jboss-client.xml描述符中jndi-name指定的名字。

bank-client

ejb/customerController MyCustomerController

ejb/accountController MyAccountController

当然,如果用户只需要构建简单的Web应用,则不需要顾及远程客户的情形。

4.2.2 JMX控制台中的应用JNDI信息

既然我们在此阐述JNDI主题,则让我们再次回到JBoss JMX控制台,来看看通过它能够浏览到应用的哪些信息。请单击service=JNDIView链接,然后单击list()操作,即显示服

www.open-v.com 拓宽视野,奔向成功

Open View, Victory Open

22 专注于Java EE平台、敏捷方法及Open Source技术咨询

务器的JNDI树。用户应用能够浏览到如下几方面的信息。其一,位于列表顶端,为Duke

银行应用提供的EJB模块;其二,各个EJB的各自私有环境命名上下文;其三,各个EJB连接到JBoss服务器的入口名。下面给出了整理过的JNDI列表:

Ejb Module: bank-ejb.jar

java:comp namespace of the CustomerBean bean: +- env (class: org.jnp.interfaces.NamingContext)

java:comp namespace of the AccountBean bean: +- env (class: org.jnp.interfaces.NamingContext)

java:comp namespace of the TxBean bean: +- env (class: org.jnp.interfaces.NamingContext)

java:comp namespace of the NextIdBean bean: +- env (class: org.jnp.interfaces.NamingContext)

java:comp namespace of the AccountControllerBean bean: +- env (class: org.jnp.interfaces.NamingContext) | +- ejb (class: org.jnp.interfaces.NamingContext) | | +- tx[link -> MyTx] (class: javax.naming.LinkRef) | | +- nextId[link -> MyNextId] (class: javax.naming.LinkRef) | | +- account[link -> MyAccount] (class: javax.naming.LinkRef) | | +- customer[link -> MyCustomer] (class: javax.naming.LinkRef)

java:comp namespace of the CustomerControllerBean bean: +- env (class: org.jnp.interfaces.NamingContext) | +- ejb (class: org.jnp.interfaces.NamingContext) | | +- tx[link -> MyTx] (class: javax.naming.LinkRef) | | +- nextId[link -> MyNextId] (class: javax.naming.LinkRef) | | +- account[link -> MyAccount] (class: javax.naming.LinkRef) | | +- customer[link -> MyCustomer] (class: javax.naming.LinkRef)

java:comp namespace of the TxControllerBean bean: +- env (class: org.jnp.interfaces.NamingContext) | +- ejb (class: org.jnp.interfaces.NamingContext) | | +- tx[link -> MyTx] (class: javax.naming.LinkRef) | | +- nextId[link -> MyNextId] (class: javax.naming.LinkRef) | | +- account[link -> MyAccount] (class: javax.naming.LinkRef) | | +- customer[link -> MyCustomer] (class: javax.naming.LinkRef)

www.open-v.com 拓宽视野,奔向成功

Open View, Victory Open

23 专注于Java EE平台、敏捷方法及Open Source技术咨询

java: Namespace

+- XAConnectionFactory (class: org.jboss.mq.SpyXAConnectionFactory) +- DefaultDS (class: org.jboss.resource.adapter.jdbc.WrapperDataSource) +- SecurityProxyFactory (class: org.jboss.security.SubjectSecurityProxyFactory) +- DefaultJMSProvider (class: org.jboss.jms.jndi.JNDIProviderAdapter) +- comp (class: javax.naming.Context)

+- JmsXA (class: org.jboss.resource.adapter.jms.JmsConnectionFactoryImpl) +- ConnectionFactory (class: org.jboss.mq.SpyConnectionFactory) +- jaas (class: javax.naming.Context)

| +- HsqlDbRealm (class: org.jboss.security.plugins.SecurityDomainContext) | +- jmx-console (class: org.jboss.security.plugins.SecurityDomainContext) | +- jbossmq (class: org.jboss.security.plugins.SecurityDomainContext) | +- JmsXARealm (class: org.jboss.security.plugins.SecurityDomainContext) +- timedCacheFactory (class: javax.naming.Context)

Failed to lookup: timedCacheFactory, errmsg=org.jboss.util.TimedCachePolicy +- TransactionPropagationContextExporter

(class: org.jboss.tm.TransactionPropagationContextFactory) +- StdJMSPool (class: org.jboss.jms.asf.StdServerSessionPoolFactory) +- Mail (class: javax.mail.Session)

+- TransactionPropagationContextImporter

(class: org.jboss.tm.TransactionPropagationContextImporter) +- TransactionManager (class: org.jboss.tm.TxManager)

如果将屏幕滚动到底端,即java:命名空间4之下,用户能够浏览到活动安全性管理器列表。如下给出了绑定的安全性域名字。

+- jaas (class: javax.naming.Context)

| +- dukesbank (class: org.jboss.security.plugins.SecurityDomainContext) | +- JmsXARealm (class: org.jboss.security.plugins.SecurityDomainContext) | +- jbossmq (class: org.jboss.security.plugins.SecurityDomainContext) | +- HsqlDbRealm (class: org.jboss.security.plugins.SecurityDomainContext)

请注意,只有需要某安全性域时,它才会被创建,因此如果应用使用了dukesbank域,并试图登陆到系统中,则才能看到dukesbank入口。

4.3 安全性

初次访问Duke银行应用时,用户需要依据应用提供的简单登陆表单给出用户名和密码。与此同时,然而为使用J2EE安全性,开发者需要在应用服务器中配置相应的信息。J2EE规范本身并不关注认证逻辑的具体行为。实际上,安全性域控制了认证机制。本节将研究Duke 4

java:命名空间中的名字仅供运行JBoss的JVM内部使用。远程客户不能够使用它们,除非使用了全局命名空间中的JNDI名字。

24www.open-v.com 拓宽视野,奔向成功

Open View, Victory Open

JBoss中文文档

专注于JavaEE平台、敏捷方法及OpenSource技术咨询图4-1HSQL数据库管理器通过单击上述链接,用户能够使用到HypersonicMBean服务提供的HSQL数据库管理功能。具体步骤如下:将屏幕滚动到页面底端,然后单击用于startDatabaseManager(
推荐度:
点击下载文档文档为doc格式
38ywy891bi6tck19hlml
领取福利

微信扫码领取福利

微信扫码分享