因为费了很长时间才做出来,所以倍加珍惜。。。。
由于是刚学EJB,开始写了一个测试用例,但是写完之后进行部署时则成了大问题,花费了我两天的时间才能在jboss下进行部署和运行。为了避免一些初学EJB者在类似EJB工程部署问题上浪费时间,我就把我的经验写一写,希望能带来一些帮助。
一般一个成功完整的EJB工程是必须要有客户端和服务器端两个工程的,所以把写好的服务器端的工程封装成*.jar文件放到jboss5/server/default/deploy下面就可以了。而客户端的工程则要封装成*.war文件的形式放到jboss5/server/default/deploy下面就可以了。(当然可以把*.war放到其他web容器下面)。这样当启动Jboss时会自动部署放到这个路径下面的*.jar和*.war文件。
对于初学者来说,很可能一次测试不能成功,会遇到很多问题,有几点我要说明一下:第一,是persistence.xml文件,
<?xml version="1.0" encoding="UTF-8"?>
<persistence 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"
version="1.0">
<persistence-unit name="aa">
<jta-data-source>java:/MSSQLDS</jta-data-source>
<properties>
<property name="hibernate.hbm2ddl.auto" value="update" />
</properties>
</persistence-unit>
</persistence>
“aa”这个名字可以随便起名,而“java:/MSSQLDS”必须要和MSSQL .mssql-ds.xml文件中的<jndi-name>MSSQLDS</jndi-name>保持一致,否则就会报错。MSSQL .mssql-ds.xml文件的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- ===================================================================== -->
<!-- -->
<!-- JBoss Server Configuration -->
<!-- -->
<!-- ===================================================================== -->
<!-- $Id: mssql-ds.xml 71536 2008-04-01 07:05:26Z adrian@jboss.org $ -->
<!-- ======================================================================-->
<!-- New ConnectionManager setup for Microsoft SQL Server 2005 driver -->
<!-- Further information about the Microsoft JDBC Driver version 1.1 -->
<!-- can be found here: -->
<!-- http://msdn2.microsoft.com/en-us/library/aa496082.aspx -->
<!-- ===================================================================== -->
<datasources>
<local-tx-datasource>
<jndi-name>MSSQLDS</jndi-name>
<connection-url>jdbc:sqlserver://localhost:1433;DatabaseName=ejb</connection-url>
<driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
<user-name>sa</user-name>
<password>123</password>
<!-- sql to call when connection is created
<new-connection-sql>some arbitrary sql</new-connection-sql>
-->
<!-- sql to call on an existing pooled connection when it is obtained from pool
<check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
-->
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<metadata>
<type-mapping>MS SQLSERVER2000</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
这个MSSQL .mssql-ds.xml文件在jboss5\docs\examples\jca下面有模板,可以参考看一下。
