本人以前很少接触EJB,现在由于工作需要接触到EJB,用到的也不多,对它也不是很了解,所以叫上网罩壳一些资料,学习了一下,学习心得分享如下。
本人用的是jboss发布的EJB,版本jboss-4.2.3.GA,具体操作如下
1,新建一个接口类
public interface Hello
{
public String sayHelloWorld(String name);
}
2.新建一个实现类
@Stateless //这里使用了注解,无状态
@Remote(Hello.class) //远程的
public class HelloBean implements Hello
public String sayHelloWorld(String name)
{
return "hello "+name;
}
}
3,将 jboss-4.2.3.GA\client里面的jar添加到工程里面
4.,新建测试类
public class HelloClient {
public static void main(String[] args)
{
Hashtable<String,String> env = new Hashtable<String,String>();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
env.put(Context.PROVIDER_URL, "localhost:1099");
env.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
try
{
Context ctx = new InitialContext(env);
Hello hello = (Hello)ctx.lookup("HelloBean/remote");
System.out.println(hello.sayHelloWorld("lishuai is a prince!"));
}
catch (Exception e)
{
e.printStackTrace();
System.out.println("Exception: " + e.getMessage());
}
}
}
5.将工程达成jar包
名字和工程名字一致 接口的名字一致,放在jboss-4.2.3.GA\server\default\deploy这里
6.启动jboss,运行HelloClient 文件即可。
7.新建数据源jboss-4.2.3.GA\docs\examples\jca下的mssql-ds.xml
修改如下<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: mysql-ds.xml 71535 2008-04-01 07:05:03Z adrian@jboss.org $ -->
<!-- Datasource config for MySQL using 3.0.9 available from:
http://www.mysql.com/downloads/api-jdbc-stable.html
-->
<datasources>
<local-tx-datasource>
<jndi-name>9zhoulongcar</jndi-name>
<connection-url>jdbc:mysql://mysql-hostname:3306/9zhoulongcar</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password>root</password>
<min-pool-size>2</min-pool-size>
<max-pool-size>100</max-pool-size>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
<!-- should only be used on drivers after 3.22.1 with "ping" support
<valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
-->
<!-- 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 - MySQLValidConnectionChecker is preferred for newer drivers
<check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
-->
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
8.将mysql-connector-java-5.1.10-bin.jar考到D:\jboss-4.2.3.GA-jdk6\jboss-4.2.3.GA\server\default\lib下面,
9.启动jboss,就可以看到
INFO [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=9zhoulongcar' to JNDI name 'java:9zhoulongcar'
信息,该'java:9zhoulongcar'jndi只可以在ejb工程里面使用,其他不可以
10、可以通过http://localhost:8080/jmx-console/HtmlAdaptor查看数据源的配置,是否成功。
这只是我的一些小小的学习,有很多不健全的地方,望见谅。
这里很浅显,希望可以帮到该开始学习ejb的同学们