Tutorial for building J2EE Applications using JBOSS and ECLIPSE Chapter 2 part 1

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

All J2EE components are written in the Java programming language

这句话开宗明义的说明了J2EE只能用java来开发,我听说有一些开源爱好者已经可以做到用.net来做,然后通过一些转换器来工作,我也不是很了解这个东西。不过就我而言,要开发.net的就用微软的东西,不要想太多,毕竟那个才是专业的。开发j2ee还是用java算了。

The Java 2 Enterprise Edition (J2EE) is a multitiered architecture for implementing enterprise-class applications and web based applications.

这句话已经说明了J2EE的展现方式。

The main aim of J2EE technology is to create a simple development model for enterprise applications using component based application model.

J2EE的目的是为了可以更加简单的开发企业级应用,但是我觉得在配置J2EE的东西是的确不简单。

Note this may not be ideal in all scenarios: for example, a small scale application might be a better fit for a light-weight Java technology solution

这句话告诉我,不要迷信J2EE,要因需而变。要按照实际情况选择适当的架构。

我将要实现的项目会使用web client。我会话较多精力研究这部分。

从上面的图可以看出,web browser要通过servlets或者jsp来访问business tier,在web tier 和business tier之间还可以选择是否使用java beans components。

下面再来看看Business Components Communication

 

Enterprise Beans有三种类型:

session beans (stateless and stateful)

entity beans (bean managed and container managed)

message-driven beans

文档对session beans是这样描述的“A session bean represents a transient conversation with a client. When the client finishes executing, the session bean and its data are gone”。而entity beans则有与它相反的特性,“If the client terminates or if the server shuts down, the underlying services ensure that the entity bean data is saved”。message-driven beans是session和jms接口的组合,jms这个是好东西,在我以前做的一个大型零售业系统,各个构件之间的通信就是通过jms,但是jms现在好多实现似乎比较贵,而免费的又有一点问题,经常会无缘无故增大内存的消耗。

在这里要区分两个概念Java Beans和Enterprise Java Beans。Java Beans是可以在server端和client层使用,它可以作为一个client应用程序内部通信的部件,也可以运行在j2ee server上,或者在server部件和数据库之间。但是EJB就只能在server层的业务层中。下面是原文的描述,“Java Beans are not considered J2EE components by the J2EE specification as JavaBeans are different from Enterprise Beans. JavaBeans component architecture can be used in both server and client tiers to manage the communication between an application client or applet and components running on the J2EE server or between server components and a database, whereas Enterprise JavaBeans components are only used in the business tier as a part of the server tier. JavaBeans have instance variables and has an accessor and mutator methods to access properties of bean or say, accessing the data in the instance variables which simplifies the design and implementation of JavaBeans components.

J2EE Containers

J2ee的容器提供了很多便利,例如多线程,事务,状态,线程池等处理,现在容器已经提供了。我们只需要集中精力在业务的处理。

容器其实就是业务组件与系统底层功能之间的桥梁。所以我觉得以前都一部分时间花在重复处理一些底层功能,如果有一些项目积累的,或者可以重用线程池之类的东西,现在j2ee container都提供了,不过时间却花在配置上,所以我们要依靠工具来进行自动配置,如果没有这些工具,那j2ee的初衷就已经丧失了,开发一个企业级的系统将会使用更多的时间。

J2EE server 本身已经集成了web container和ejb container。其实客户端也是用java的container,就是我们熟悉的jre。

打包 Packing

我认为j2ee中最复杂的东西就是打包了,一大堆xml文件,而且没有什么东西可以校验,只有到部署的时候才会知道是否正确了。如果全部要手写,那就等于回到原始时代。还好就是lomboz会自动采用xdoclet来生成这些东西。

web 组件会打包成web archive(.war)。里面会包括sevlets,jsp,还有一些静态资源如html,图片等。

业务组件会打包存储成java archive(.jar)。里面包括ejb 部署的脚本,remote,object interface文件等等。

在客户端我们也会见到jar这种文件格式,其实可以说成是本地可执行文件。

J2EE程序会把上面的文件打包成Enterprise Archive(.ear),里面包括所有部署所需要的文件。如下图:

 

角色 J2EE Platform Roles

J2EE规范中规范了不少角色,分别是developer,assembler,deployer,system administartor,tool rovider。在现在国内的开发环境中,分工还没有到这么细致的地步,经常会出现一个人担任多个角色。除了tool provider和developer能够明确分开之外,其他都是一个人干。其中assembler这个角色我打算采用daily bulid的工具来处理,官方是这样说明这个角色的,“The application assembler takes all building blocks from the application component provider and combines them into J2EE applications.”。deployer会采用开源的自动部署工具ant,所以我们还是可以把精力集中在开发业务。

 

Tutorial for building J2EE Applications using JBOSS and ECLIPSE Chapter 2 part 2 J2EE中的分布式应用(Distributed Architecture in J2EE ) 刚好在huihoo论坛看了一篇文章说到如何提高jboss的RMI/IIOP的效率问题,“有个应用是客户端swing+j2ee SERVER ,跑在内网没问题的。现在有个客户,很多分支机构,都是通过adsl(2m带宽)连到总部。j2ee服务器放在总部,感觉特别慢”,这个问题我现在还找不到解决的方法。刚好又看 阅读详情

相关推荐

Tutorial for building J2EE Applications using JBOSS and ECLIPSE Chapter 4

一路跌跌撞撞的把statefule seesion bean 和stateless session beand 的例子都做完了,感觉还是有一点模糊,于是重新翻阅《Mastering EJB 2nd》和sun的培训教程SL - 351终于对EJB有了新的认识。 先看下图:  EJB的整个请求过程 上图完整的说明了请求EJB方法的具体流程。这个流程的home interface是采用EJBHome接

中国 IT 应用/ Adapting information technology in china 1436

Tutorial for building J2EE Applications using JBOSS and ECLIPSE Chapter 3

在阅读这一章的时候,基本没有什么障碍,但是有一个地方文章是写错了。 在Create DAO Interface  那一节中“Go to src > add package named au.com.tusc.dao > Add a class StoreAcessDAOImpl in that package”红色字体错了,应该是StoreAccessDAOImpl。 还有就是因为使用不同版本的j

中国 IT 应用/ Adapting information technology in china 1200

Tutorial for building J2EE Applications using JBOSS and ECLIPSE Chapter 1

现在才补回chapter的阅读经历是因为觉得有一个地方的确要提一下。 在安装配置的时候,资料上说明是使用jboss-3.2.1和lomboz.21_02,我决定使用jboss 3.2.5和lomboz 213。虽然对jboss新增的版本特性不清楚,但是我想既然能升级,已经是解决了已经遗留的问题。但是我在配置的时候却给我增添了麻烦。lobmboz 213并没有对jboss 3.2.5有相应的配置文件

中国 IT 应用/ Adapting information technology in china 1263

Eclipse OpenSOVD学习之六】 数据访问层(DataProvider)

SOVD 把"诊断数据"抽象为,而非 UDS 的"按 DID 读写"。idnamecategorygroupstagsschema服务端不关心数据从哪来(传感器、配置文件、UDS 适配器、内存变量),只关心一个统一接口。这就是trait 存在的意义——。

188

Eclipse OpenSOVD学习之五】拓扑引擎(Topology)

本章是整套架构的核心。Topology 决定了:实体如何存储、关系如何查询、并发如何控制、变更如何传播、远端实体如何汇聚。

193

Hadoop-python中使用大数据1

本文用Python实现迷你MapReduce,按“分而治之”思路依次完成Split分片、Map映射和Reduce归约,统计千万条卡口记录。先切分大文件为1000个小文件,再分别统计城市车流量,最后汇总结果,并介绍真实Hadoop的HDFS、YARN与MapReduce核心架构。

pjj19854的博客 347

Eclipse OpenSOVD学习之三】 Workspace 与 crate 分层

挡在公开 API 之外(避免下游被 schemars 版本绑定),同时让无 schema 场景也能编译。两个 blanket impl 由。这套约束直接禁掉了车载/嵌入式最常见的几类隐患:越界索引、算术溢出、裸 unwrap、非 Send/Sync 的共享(这是唯一一处"上层定义接口、下层提供实现"的依赖倒置(通过 feature 可选依赖实现)。Cargo feature 的并集语义导致了这个泄漏。(依赖 providers)时,即使关掉。因此当 gateway 同时启用。是 optional 的,但。

385

2026最新】Eclipse下载安装使用保姆级教程(附安装包+图文步骤)

Eclipse是老牌免费开源IDE的代表,覆盖Java、Web、C/C++、PHP等多种开发语言。Eclipse下载时需要根据开发方向选对版本包,Java开发用Java版,Java Web开发用Enterprise Java版,C++开发用C/C++版,各个版本列得很清楚,看清楚选对就行了。如果你正在找一款免费、成熟、插件生态丰富的Java开发工具,Eclipse值得一试。

lxttzlove的博客 228

Eclipse OpenSOVD学习之二】 SOVD 协议原理与标准背景

Eclipse OpenSOVD 是ISO 17978-3:2026 SOVD(Service-Oriented Vehicle Diagnostics,面向服务的车辆诊断)标准的开源实现。用 HTTP 资源模型重新表达诊断——把整车诊断能力抽象成 REST 资源,取代传统的 UDS/ODX 点对点诊断协议。分析对象是 Eclipse 组织下的仓库(核心代码仓,含 Server / Client / Gateway)。

512

Eclipse OpenSOVD学习之七】 服务端运行时(Server / Builder / 中间件 / 传输)

因此运行时必须:监听器类型、鉴权方式、中间件栈、TLS、基础路径、静态资源挂载都应是可配置的,而不是写死的。

96

Eclipse OpenSOVD学习之八】 路由与处理器

在请求路径上生成 schema,未缓存。schema 是静态的,应 lazy static 缓存。:先取锁拿到 provider 的克隆、立即放锁、再 await。——拓扑变更只能通过代码注入或 DiscoveryProvider(见。时才调用(惰性),避免所有请求都付出 schema 生成成本。§4.2 缺陷 5)——把。,handler 可直接写。——见 §4.1 缺陷 1。:所有 handler 在。哪些字符需要转义(保留。

177

Eclipse OpenSOVD学习之十三】质量工程

诊断服务的缺陷往往出现在跨层交互(协议序列化、错误映射、传输边界),因此既需要大量单测覆盖算法,也需要端到端测试覆盖真实 HTTP 行为。提供的命令行选项():提供的 fixture(): 2.4 CI 流水线 覆盖率: → JSON → 渲染 Markdown → 发布到 GitHub Pages(当前徽章 87%)。 关键设计: 即:优先用预构建二进制(CI 中跨 job 复用)→ 否则从源码构建 → 用 精确定位产物路径(避免硬编码 )。 解析 的输出,把每个 Rust 测试动态展开为 py

211

Eclipse OpenSOVD学习之四】 领域模型与类型系统

SOVD将领域模型与HTTP传输解耦,构建零HTTP依赖的opensovd-core,支持内嵌与离线测试。通过EntityRef类型化引用(kind+id)避免实体误用。实体(Component/App/Area)采用消费式builder构建,DTO层与领域层严格分层

230

Eclipse:控制台历史消息

这样程序运行时,日志会同时显示在控制台并写入指定文件,方便随时翻查。- 取消行数限制:`Window -> Preferences -> Run/Debug -> Console`,取消勾选 Limit console output,这样控制台就不再有行数上限,能往前翻看所有输出。- 调整缓冲区大小:如果不想完全取消限制,也可以在同一设置里把 `Console buffer size (characters)` 调大,比如改成 1000000 甚至更高,效果类似。💾 自动保存到本地文件。

chinalog的专栏 266

Eclipse OpenSOVD学习之十一】网关二进制与部署

SOVD gateway 是:把多个下游 SOVD server(车内多个 ECU/HPC、或下层网关)的实体汇聚成统一视图,对外暴露单一/sovd/v1。因此 gateway 是""——它把库的能力通过 CLI 参数暴露出来。

160

Eclipse OpenSOVD学习之十】客户端 SDK

客户端 SDK 基于 hyper + Tower 构建,支持 Unix domain socket 与版本协商。通过延迟求值链式构建器实现高效请求组合,利用 Discovery 自动获取服务端 base_uri 并适配多版本。核心流程包括路径编码、URI 拼接、异步发送与响应解析,确保类型安全、可复用且与服务端同构。

217

Eclipse OpenSOVD学习之十二】 MCP 集成(opensovd-mcp)

MCP(Model Context Protocol)是让 LLM 应用连接外部系统的开放协议。SOVD 与 MCP 天然契合:SOVD 的实体/能力模型是的(capabilities + HATEOAS),几乎不需要额外建模就能提供给 LLM;而"用自然语言问车怎么了"正是诊断场景的直觉交互。

108

Eclipse OpenSOVD学习之九】 认证与授权(AuthN / AuthZ)

SOVD 面向:诊断数据会流出车外、被第三方使用。因此安全不能是"外挂一层反向代理",而应是。

202
下一篇: Tutorial for building J2EE Applications using JBOSS and ECLIPSE Chapter 1
MS_Geek
博客等级 码龄25年 3粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值