`
gaoguang
  • 浏览: 855 次
  • 来自: ...
最近访客 更多访客>>
社区版块
存档分类
最新评论

Spring2.X+EJB3.X(一)

阅读更多
    最近想想,成为Javaeye的会员已经有年头了,但是没有在上面发表过一篇文章,感觉惭愧,做了这么多年的程序,一直没有把自己的一些经验和想法和大家一起分享。
     我在一家中小软件企业里面负责公司的技术,脑子里面成天想的是如何建立一套符合自己公司业务的技术框架,虽然公司小,但是项目不小,我们在为一家煤炭企业做ERP,系统的部署环境比较复杂,数据库是集群,web中间件也要集群,此时普通的技术方案和轻量级框架就不能满足了,我就想到了EJB3.0 ,我在网上找到了一篇讲述两者结合的文章,但是写的不是很清楚,给出的代码,我进行了加工和调整,才跑起来,不多说了,看看下面的代码:
代码1:
package com.ejb3.service;

import com.ejb3.domain.Customer;   
import java.util.Collection;   
import javax.ejb.Stateless;   
import javax.jws.WebService;   
import javax.jws.soap.SOAPBinding;   
import javax.persistence.EntityManager;   
import javax.persistence.PersistenceContext;   
import javax.persistence.Query;   
import javax.jws.WebMethod;   
   
@Stateless
@Remote( { CustomerService.class })  
public class CustomerServiceImpl implements CustomerService {   
    //unitName是指你数据库的用户名,我用的是oracle10g,如果是别的数据库就是数据库名称
    @PersistenceContext(unitName="ERP")   
    private EntityManager manager;   
  
        public Customer create(Customer info) {   
        this.manager.persist(info);   
        return info;   
    }   
  
    
    public Customer update(Customer info) {   
        return this.manager.merge(info);   
    }   
  
    
    public void remove(Long customerId) {   
        this.manager.remove(this.manager.getReference(Customer.class, customerId));   
    }   
  
    public Collection<Customer> findAll() {   
        Query query = this.manager.createQuery("SELECT c FROM Customer c");   
        return query.getResultList();   
    }   
  
        public Customer[] findAllAsArray() {   
        Collection<Customer> collection = findAll();   
        return (Customer[]) collection.toArray(new Customer[collection.size()]);   
    }   
  
        public Customer findByPrimaryKey(Long customerId) {   
        return (Customer) this.manager.find(Customer.class, customerId);   
    }   


代码2:
package com.ejb3.service;

import com.ejb.domain.Customer;   
import java.util.Collection;   

import javax.ejb.Local;
import javax.ejb.Remote;   

public interface CustomerService {   
  
    Customer create(Customer info);   
  
    Customer update(Customer info);   
  
    void remove(Long customerId);   
  
    Collection<Customer> findAll();   
  
    Customer[] findAllAsArray();   
  
    Customer findByPrimaryKey(Long customerId);   
} 

    此时我的ejb代码已经完成,我是用M2来管理我的工程,进行打包编译,不需要产生客户端程序。我用的测试服务器是Jboss4.2.3的版本,下来我们要发布我们的ejb了,此时先要编写oracle-ds.xml:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
	<local-tx-datasource>
		<jndi-name>OracleDS</jndi-name>
		<connection-url>jdbc:oracle:thin:@192.168.1.222:1521:oracle</connection-url>
		<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
		<user-name>ERP</user-name>
		<password>ERP</password>
		<SetBigStringTryClob>true</SetBigStringTryClob>
		<exception-sorter-class-name>
			org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
		<metadata>
		<type-mapping>Oracle9i</type-mapping>
		</metadata>
		</local-tx-datasource>
</datasources>

然后我们就要编写JAP相应的持久化文件persistence.xml名称应该是不能变动的,我没有测试过,但是文档描述文件名称是不能变的
<?xml version="1.0" encoding="UTF-8"?>  
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">  
  <persistence-unit name="ERP" transaction-type="JTA">  
    <jta-data-source>java:/OracleDS</jta-data-source>  
    <properties>  
      <property name="hibernate.hbm2ddl.auto" value="create-drop"/> 
    </properties>  
  </persistence-unit>  
</persistence> 

    此时,相应的persistence.xml文件一定要放在已经打好包的ejb里面,在打好的ejb包里,根目录下有META-INF目录,放在里面就可以了,今天先写到这里

分享到:
评论

相关推荐

    精通Spring+4.x++企业应用开发实战

    spring已经成为Java应用首先的一个轻量级框架,它本着“从实践中来,到实践中去"的原则,对传统的EJB重量级框架的思想进行了颠覆性的革新。

    计算机软件编程学习笔记.rar

    计算机软件编程学习笔记: 01. Unix note.txt 02. SQL note.txt 03. PL SQL note.txt 04. CVS note.txt ...14. Struts2.x note.txt 15. Spring note.txt 16. EJB note.txt 17. WebService note.txt

    Spring 2.5 jar 所有开发包及完整文档及项目开发实例

     这个jar文件包含Spring对Hibernate 2及Hibernate 3进行封装的所有类。 (7) spring-jdbc.jar  这个jar文件包含对Spring对JDBC数据访问进行封装的所有类。 (8) spring-orm.jar  这个jar文件包含Spring对DAO特性集...

    Spring Framework 5 中文文档

    2. 介绍Spring框架 3. IoC容器 4. 资源 5. 验证、数据绑定和类型转换 6. Spring表达式语言 9. Spring框架下的测试 10. 单元测试 11. 集成测试 14. DAO支持 15.使用JDBC实现数据访问 16. ORM和数据访问 17. 使用 O/X...

    Spring-Reference_zh_CN(Spring中文参考手册)

    13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. radiobutton标签 13.9.6. ...

    Spring中文帮助文档

    13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. checkboxes标签 13.9.6. radiobutton标签 13.9.7. radiobuttons标签 13.9.8. password标签 13.9.9. select标签 13.9.10. option标签 ...

    spring chm文档

    13.11.2. 对模型的支持:ModelMap (ModelAndView) 13.11.3. 对视图的支持: RequestToViewNameTranslator 13.12. 其它资源 14. 集成视图技术 14.1. 简介 14.2. JSP和JSTL 14.2.1. 视图解析器 14.2.2. 'Plain-...

    Spring API

    11.7.2. 处理BLOB 和 CLOB对象 11.7.3. 在IN语句中传入一组参数值 11.7.4. 处理复杂类型的存储过程调用 12. 使用ORM工具进行数据访问 12.1. 简介 12.2. Hibernate 12.2.1. 资源管理 12.2.2. 在Spring容器中...

    Spring 2.0 开发参考手册

    13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. radiobutton标签 13.9.6. password标签 13.9.7. select标签 13.9.8. option标签 13.9.9. options标签 13.9.10. textarea标签 13.9.11. ...

    MyEclipse.6.Java.开发中文教程

    开发Struts.2.Spring应用 第十三章.开发JPA应用 第十四章.开发JSF应用 第十五章.开发XFire.Web.Service应用 第十六章.开发.EJB.应用 第十七章.MyEclipse.UML.建模 第十八章.图形界面开发--AWT,Swing,SWT 全部...

    达内培训五个月以来的笔记:tarena_note

    14. Struts2.x note.txt 15. Spring note.txt 16. EJB note.txt 17. WebService note.txt 18. English.txt 有朋友反映打开有些乱码,建议使用UltraEdit打开,可以无障碍使用. UltraEdit在我的资源里也有下载.

    Java 面试宝典

    一. Java 基础部分..................................................................................................................... 7 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么...

    Spring攻略(第二版 中文高清版).part2

    6.3 将Spring与Struts 1.x集成 220 6.3.1 问题 220 6.3.2 解决方案 220 6.3.3 工作原理 220 6.4 将Spring与JSF集成 226 6.4.1 问题 226 6.4.2 解决方案 226 6.4.3 工作原理 227 6.5 将Spring与DWR...

    web项目常用jar包及说明.zip

    8.slf4j-nop-1.6.4.jar(对slf4j-api-x.x.x.jar的一个实现) 9.ojdbc14.jar (oracle驱动) 10.mysql-connector-java-5.1.6-bin.jar (mySql驱动) 如果使用注解还需添加hibernate-annotations-3.4.0.GA包: 11....

    Java Web整合开发王者归来(JSP+Servlet+Struts+Hibernate+Spring)

    第9篇为实战篇,内容为两个典型的应用系统:论坛系统(Spring+Struts+Hibernate)、宠物商店(EJB 3+JPA+Struts 2)。 《Java Web整合开发王者归来(JSP+Servlet+Struts+Hibernate+Spring)》附1张DVD光盘,内容为《Java ...

    Spring攻略(第二版 中文高清版).part1

    6.3 将Spring与Struts 1.x集成 220 6.3.1 问题 220 6.3.2 解决方案 220 6.3.3 工作原理 220 6.4 将Spring与JSF集成 226 6.4.1 问题 226 6.4.2 解决方案 226 6.4.3 工作原理 227 6.5 将Spring与DWR...

    Spring攻略PDF版

     第6章 Spring 2.x AOP和AspectJ支持  第二部分 基础主题  第7章 Spring对JDBC的支持   第8章 Spring中的事务管理   第9章 Spring对ORM的支持   第10章 Spring MVC框架   第11章 整合Spring...

    Spring in Action(第二版 中文高清版).part2

    A.2 把Spring添加为一个Maven 2依赖项 A.3 Spring与Ant A.4 Spring与Log4j 附录B 用(和不用)Spring进行测试 B.1 测试简介 B.1.1 理解不同类型的测试 B.1.2 使用JUnit B.1.3 Spring在测试中的角色 B.2 单元...

Global site tag (gtag.js) - Google Analytics