Spring2.X+EJB3.X(一)

系统 1285 0
    最近想想,成为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目录,放在里面就可以了,今天先写到这里

Spring2.X+EJB3.X(一)


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论