首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >EJB的资料辅导(3)

EJB的资料辅导(3)

作者头像
紫风
发布2025-10-14 17:18:54
发布2025-10-14 17:18:54
630
举报

WebService

WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。

WebService实现不同语言间的调用,是依托于一个标准,webservice是需要遵守WSDL(web服务定义语言)/SOAP(简单请求协议)规范的。

WebService=WSDL+SOAP+UDDI(webservice的注册)

Soap是由Soap的part和0个或多个附件组成,一般只有part,在part中有Envelope和Body

EJB中使用WebService

@WebService(serviceName="",portName=""),使用这个标注可以将SessionBean中用@WebMethod标注来表示的方法发布成WebService

@Stateless @WebService(serviceName="Greeter",portName="GreeterPost") public class HelloSessionBean implements HelloSessionRemote { @WebMethod public String hello(String name) { return "Hello world "+name+"!"; } }

soap(Service的请求者)

<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://ejb/"> <soapenv:Body> <ns1:hello> <arg0>li</arg0> </ns1:hello> </soapenv:Body> </soapenv:Envelope>

<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://ejb/"> <soapenv:Body> <ns1:helloResponse> <return>Hello world li!</return> </ns1:helloResponse> </soapenv:Body> </soapenv:Envelope>

UDDI (注册Service) WSDL (Service的提供者)

<?xml version="1.0" encoding="UTF-8" ?> <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://ejb/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="http://ejb/" name="Greeter"> <types> <xsd:schema> <xsd:import namespace="http://ejb/" schemaLocation="http://tarena- 59db236e:8088/Greeter/HelloSessionBean/__container

实体编程

EJB3.0的JPA(Java持久化API)

O/R Mapping(对象关系映射) TopLink,JDO,Hibernate

类型对应表,属性对应字段,关系对应引用 BO(商业对象,操作数据对象) DO(数据对象) 持久化的数据对象,也就是已将对象信息同步到数据库中的对象,持久化对象也叫实体。 操作实体也就使操作实体在数据库中所对应的数据。 实体和SessionBean的区别 实体本身不支持远程访问,他的生命周期是比较长的。 实体有唯一性标识,也就对应数据库表中的主键。 注意:在实体中不要写商业方法

实体的唯一标识,可以使用标签@Id(标识属性可以使用public描述,也可以完全封装为其提供set,get方法),也可以使用XML文件来进行配置。

@Entity(name="Account"),实体类标注,其属性name是指定实体名,在EJB-QL中使用,默认是类的全名 @Id,指定实体的唯一标识属性,默认这个属性会合数据库中对应表的主键对应。 @GeneratedValue(strategy = GenerationType.AUTO)指定主键的生成策略。 @Colum(name="...",unique="true|false",nullable="true|false",insertable="true|false", updateable="true|false",table="..."), 指定类中属性对应的列名以及约束, name属性指定类中属性对应的列名,默认为属性名 unique属性指定类中属性对应的列是否唯一,默认为false nullable属性指定类中属性对应的列是否可空,默认为true insertable="true|false"属性指定类中该属性是否会出现在insert语句中,也就是会不会被同步到数据库,默认为true,也就数会同步到数据库 updateable="true|false"属性指定类中该属性是否会出现在update语句中,也就是会不会被修改,默认为true可以被修改。 table属性指定类中属性的列所对应的表,默认为实体类所对应的表。

在使用实体同步到数据库时,SessionBean中要写EntityManager类型的属性,这个属性在Bean部署在容器中后,在运行时会容器依赖注入,如果没有容器也可以使用,但需要为其赋值。 EntityManager是一个接口,也就是规则,可以有不同的实现,Hibernate3.2就实现了这些JPA的接口。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-10-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档