本人以前很少接觸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 [email protected] $ -->
<!-- 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的同學們